Indexing

Does Google Index JavaScript? How JS Rendering and Indexing Actually Work

Google does index JavaScript, but on a delay and in two passes. Here's how the render queue works, how long it takes, what breaks it, and how to check your own pages.

SearchOptimo Team6 min read

"Does Google index JavaScript?" is the wrong question if you stop at yes or no. Google does index JavaScript, but how and when it does explains nearly every "my page is crawled but not indexed" mystery on modern sites. This is the reference guide to how JavaScript rendering and indexing actually work, and what to do about it.

Does Google index JavaScript?

Yes, Google indexes JavaScript-generated content, but it does so in two separate passes rather than all at once. Google's documentation describes three phases: crawling, rendering, and indexing. First it crawls the raw HTML your server returns. Then, because "all pages with a 200 HTTP status code are sent to the rendering queue," it schedules the page for a headless browser to run the JavaScript. Only after that render finishes does the JavaScript-generated content become indexable. Google runs this render with an evergreen version of Chromium, meaning it tracks current stable Chrome, a setup it has used since 2019 that closes most of the gap with a real browser. So capability is not the issue. The issue is that anything depending on that second pass, your main content, internal links, even your title tag, is indexed later than the static HTML, and only if the render succeeds.

How does the JavaScript render queue work?

Google separates crawling from rendering, and the gap between them is the render queue. When Googlebot crawls a URL, it immediately indexes whatever is in the raw HTML, then places the page in a queue to be rendered by its Web Rendering Service. Google's docs note a page "may stay on this queue for a few seconds, but it can take longer than that." This is the origin of the widely cited "two waves of indexing" model from Google I/O 2018: the first wave indexes the server HTML, and a second wave indexes the rendered content once the queue clears. The practical consequence is that discovery of links buried inside JavaScript is slower. An Onely experiment found Googlebot took roughly 9 times longer to follow a JavaScript-injected link than a plain HTML link, and the gap widened deeper into the site. If your navigation and internal links only exist after rendering, your whole site is crawled more slowly.

How long does Google take to render JavaScript?

The median render is fast, but the slow tail is measured in hours. The strongest current data comes from a 2024 study by Vercel and MERJ analyzing more than 37,000 matched crawl-and-render pairs:

Percentile Time from crawl to render
25th about 4 seconds
50th (median) about 10 seconds
75th about 26 seconds
90th about 3 hours
95th about 6 hours
99th about 18 hours

For most pages, JavaScript is rendered almost immediately, which is why many JS sites index fine. The risk lives in the long tail: the slowest 10% of pages wait hours, and any rendering error during that window can drop the content entirely. The same study found Google fully rendered 100% of pages returning a 200 status regardless of JavaScript complexity, so when JS content fails to index, the cause is almost always a specific, fixable problem rather than Google's inability to render.

What stops Google from indexing JavaScript content?

When JavaScript content does not get indexed, it is usually one of a few concrete failures, not a general rendering limit:

  • JavaScript blocked in robots.txt. Google's docs are explicit: "Google Search won't render JavaScript from blocked files or blocked pages." A single disallowed script directory can strip your content.
  • Hash-based routing. URLs built with # fragments are not crawled as separate pages. Google's guidance is to use the History API so routes are real, crawlable URLs.
  • Soft 404s. A JavaScript route that shows "not found" but returns HTTP 200 looks like a thin real page. Return a genuine 404 status or a noindex.
  • A noindex you try to strip with JS. Google's docs warn that when it sees noindex in the raw HTML, "it may skip rendering," so removing the tag later with JavaScript does not work.
  • Rendering that errors or times out. Hydration mismatches, render-blocking scripts, or content that loads too slowly can leave the rendered DOM incomplete.

These are also the same patterns that land pages in crawled but not indexed.

Do Bing and AI search engines render JavaScript?

No, not reliably, and this is the part that has changed the stakes in 2026. Bing's own guidelines say it "is generally able to process JavaScript" but warns of "limitations to processing JavaScript at scale" and still recommends dynamic rendering. The bigger shift is AI search. Vercel's 2024 "Rise of the AI Crawler" analysis concluded that "none of the major AI crawlers currently render JavaScript." GPTBot fetched JavaScript files in about 11.5% of requests without executing them; ClaudeBot downloaded JavaScript in about 23.84% of requests "and never executes them"; Perplexity parses static HTML only. The lone exception is Google's Gemini, which uses Googlebot's rendering service. So if your content is client-rendered, it can be entirely absent from AI Overviews and AI answer engines even when classic Googlebot eventually renders it. We cover this in depth in do AI crawlers render JavaScript.

How do I check whether my content is rendered or in the HTML?

Compare the raw HTML to the rendered DOM, because the difference tells you exactly what is at risk. The fastest manual check: open the page, view source, and search for a sentence of your main content. If it is there, every crawler can see it. If the content only appears in your browser's DevTools "Elements" panel but not in view source, it is client-rendered and depends on the render queue, which AI crawlers will never run. To see what Google specifically got, use the URL Inspection tool in Search Console, run "Test Live URL," then "View Crawled Page" to inspect the rendered HTML. The durable fix is to put critical content in the server response using server-side rendering, static rendering, or incremental regeneration. Note that Google has deprecated dynamic rendering, calling it "a workaround and not a long-term solution." For a framework-specific walkthrough, see why React and Next.js pages don't get indexed.

Keeping JavaScript pages indexed over time

Even a correctly rendered page is not indexed forever. A framework upgrade, a new client-only component, or a slow third-party script can quietly move content out of the HTML on the next deploy, and you usually discover it from a traffic drop weeks later. SearchOptimo re-checks the index status of every URL on a schedule and alerts you the moment a page falls out, so a rendering regression shows up in a dashboard instead of in your analytics.

If you run a JavaScript-heavy site, see whether SearchOptimo is worth it for your case, or start free and watch your own URLs.

Frequently asked questions

Does Google index JavaScript-generated content?
Yes. Google renders JavaScript using a headless, evergreen version of Chromium and indexes the content it produces. But it happens in two steps: Google crawls the raw HTML first, then queues the page for rendering, then indexes the rendered result. Content that only appears after JavaScript runs is indexed on that second pass, which can lag from seconds to hours.
How long does Google take to render JavaScript?
A 2024 Vercel and MERJ study of more than 37,000 crawl-and-render pairs found the median page was rendered about 10 seconds after it was crawled. The 75th percentile was about 26 seconds, but the 90th percentile was around 3 hours and the 99th percentile about 18 hours. Most pages render fast, but the slowest tenth wait hours.
Will Google fail to index my JavaScript site?
Not because of rendering capability alone. The same 2024 study found Google fully rendered 100% of pages that returned a 200 status, regardless of JavaScript complexity. Failures come from specifics: JavaScript blocked in robots.txt, content that times out or errors during rendering, hash-based URLs Google can't crawl, or soft 404s. Fix those and Google can index JS content.
Do Bing and AI search engines index JavaScript too?
Much less reliably. Bing says it can process JavaScript but not at scale, and still recommends dynamic rendering. The AI crawlers behind ChatGPT, Claude, and Perplexity do not execute JavaScript at all, per Vercel's 2024 analysis. So content that depends on client-side rendering can be invisible to AI search even when Google can eventually render it.

Monitor your index status automatically

SearchOptimo re-checks your URLs on a schedule and alerts you when something drops. Start free — no credit card.

Start free

Keep reading