GlossaryCrawling & Rendering

Rendering (JavaScript SEO)

Rendering is the stage where Google executes a page's JavaScript in a headless Chromium browser to see the final content. Pages that depend on client-side JavaScript are indexed from this rendered output, not the raw HTML.

Updated Jul 18, 2026

Google renders pages with the Web Rendering Service (WRS) — a headless Chromium kept evergreen, updated in step with the stable Chrome release, since 2019. Rendering sits between crawling and indexing: after Googlebot fetches a URL, WRS executes its JavaScript, and the DOM that results is what Google's indexing systems analyze.

Rendering is expensive — executing JavaScript costs far more compute than fetching HTML — so Google defers it: pages queue until WRS resources are available. Content that exists only after scripts run is therefore indexed on a delay relative to static HTML, and links injected by JavaScript are discovered late, which slows crawl coverage of deep pages on client-rendered sites.

For client-side rendered sites the stakes are binary. When rendering succeeds, a React or Vue single-page app indexes like any other page; when it fails — blocked resources, script errors, timeouts — Google indexes the empty HTML shell that came over the wire. Server-side rendering removes the dependency by delivering finished HTML in the first place.

Quick facts

Performed by
Google's Web Rendering Service (WRS)
Engine
Headless evergreen Chromium, in step with stable Chrome since 2019
Pipeline position
After crawling, before indexing of JavaScript-dependent content
Queue delay
Median ~5 seconds, 90% within minutes (Google, 2019); longer on failures
Never simulated
Clicks, scrolls, hovers, typing — no user interaction of any kind
State
Stateless — no persistent cookies or storage; permission prompts declined
Tested with
URL Inspection live test → rendered HTML and screenshot

How does Google's render queue work?

After Googlebot fetches a page, the raw HTML is processed immediately and the page enters a queue to wait for the Web Rendering Service. Google reported in 2019 that the median wait is around five seconds and 90% of pages render within minutes — but queue time stretches when rendering fails and retries, or when WRS resources are constrained.

The practical consequence is two-pass processing: content and links present in the initial HTML are seen immediately, while content that only exists after JavaScript executes is seen at render time. On JavaScript-dependent sites this delays both the indexing of each page and the discovery of the links it contains.

How do client-side and server-side rendering differ for indexing?

Server-side rendering (SSR) and static generation put the full content in the HTML response, so Google indexes it in the first pass with no dependence on the render queue. Client-side rendering (CSR) ships an app shell whose content exists only after JavaScript runs — indexing then depends entirely on WRS executing the page successfully.

CSR inherits every rendering failure mode: JavaScript files blocked by robots.txt, script errors in WRS's Chromium, API calls that time out, and content gated behind interaction. Frameworks with SSR or prerendering modes exist largely to remove that dependency; the diagnosis and fixes are covered in the guide to JavaScript pages not indexed.

What JavaScript content does Google never see?

Content that appears only after user interaction. WRS loads the page with a tall viewport and executes load-time JavaScript, but it never clicks, scrolls, hovers, or types — so anything gated behind those events is invisible to indexing:

  • Content loaded by a Load more button click
  • Tab panels that fetch their content on click
  • Infinite scroll without paginated, directly linkable URLs
  • Content that requires cookies, localStorage, or granted permissions — WRS is stateless and declines permission prompts

Verify what Google sees with the URL Inspection tool: the live test returns the rendered HTML after WRS execution. Pages whose rendered HTML is an empty shell routinely end up Crawled – currently not indexed.

JavaScript pages lose enough time in the render queue already — IndexBolt gets them crawled within hours of submission, so rendering is the only wait left.

Frequently Asked Questions

Does Google index JavaScript content?+

Yes. WRS executes JavaScript with a current Chromium, and successfully rendered content indexes normally. The caveats are the render-queue delay and the failure modes — blocked resources, script errors, interaction-gated content — that leave pages partially or entirely unindexed.

How do you check what Google renders?+

Run a live test in Search Console's URL Inspection tool and open the rendered HTML and screenshot. Content missing there cannot be indexed. An SEO crawler with JavaScript rendering enabled gives the same signal across the whole site.

Is client-side rendering bad for SEO?+

It adds risk, not an automatic penalty. CSR makes indexing conditional on successful rendering and adds queue latency; server-side rendering or static generation removes both. Sites whose revenue depends on fast, reliable indexing render on the server.

Ready to get your URLs indexed?

Start with 100 free credits. No credit card required.