Skip to content

JavaScript rendering

Concept in AI search and SEO
Volatile, last checked 2026-09-04 This page carries measured figures that move quickly.Reviewed 2026-09-04

JavaScript rendering is the step in which a crawler executes a page's scripts before reading its content. Google queues every page it fetches with an HTTP 200 status for rendering, unless a robots meta tag says otherwise, and runs the scripts in an evergreen build of Chromium[1]. Server log measurements published by Vercel and MERJ in December 2024 found the crawlers behind ChatGPT, Claude, Perplexity and Meta do not[2], and neither does Common Crawl's CCBot[3], so anything a client-side script writes into the page is invisible to them.

How Google handles it

Googlebot keeps crawling and rendering in separate queues. Every response with an HTTP 200 status is queued for rendering unless a robots meta tag says otherwise, and a headless Chromium then runs the scripts[1]. Across more than 100,000 Googlebot fetches of nextjs.org, excluding error status codes and non-indexable pages, every HTML page rendered fully, including content fetched asynchronously and streamed React Server Components[4]. The wait is usually short: over 37,000 rendered pages matched with server-beacon pairs gave a median delay of 10 seconds and a 75th percentile of 26 seconds, with a tail near 18 hours at the 99th[5]. A noindex tag in the initial HTML cancels rendering entirely, so a script written to remove it never runs[6].

AI crawlers stop at the first response

The same partnership measured the main AI crawlers and found none of them executing JavaScript, covering OpenAI's GPTBot, OAI-SearchBot and ChatGPT-User, Anthropic's ClaudeBot, Meta-ExternalAgent, Bytespider and PerplexityBot[2]. They download script files without running them, at 11.50% of ChatGPT's requests and 23.84% of Claude's[7]. Gemini is the exception, riding Googlebot's infrastructure and rendering in full, as does AppleBot through a browser-based crawler, while Common Crawl's CCBot does not render[3]. Volumes in the month measured were 4.5 billion Googlebot fetches across Gemini and Search, against 569 million for GPTBot and 370 million for Claude[8].

Rendering support by crawler

CrawlerOperatorExecutes JavaScript
GooglebotGoogleYes, evergreen Chromium
GeminiGoogleYes, on Googlebot infrastructure
AppleBotAppleYes, browser-based crawler
BingbotMicrosoftGenerally yes
GPTBotOpenAINo
OAI-SearchBotOpenAINo
ChatGPT-UserOpenAINo
ClaudeBotAnthropicNo
PerplexityBotPerplexityNo
Meta-ExternalAgentMetaNo
BytespiderByteDanceNo
CCBotCommon CrawlNo

Compiled from the Vercel and MERJ log study[2][3], Google's rendering documentation[1] and Microsoft's 2018 statement on bingbot[9]. Support is a moving target and is worth rechecking against each operator's own documentation.

Consequences for client-rendered sites

Google's documentation still advises server-side or pre-rendering, since not all bots run JavaScript[10], and Google's answer surfaces add no requirement of their own: a page must be indexed and eligible for a snippet before it can appear as a supporting link in AI Overviews or AI Mode[11]. Microsoft's 2018 guidance describes bingbot as generally able to render while still recommending dynamic rendering for sites that rely heavily on JavaScript[9]. For assistants that read only the first response, a single-page application delivers an empty shell, and titles, prices, body copy and structured data injected after load are absent from what the model sees[7]. MERJ's 2026 guidance frames the fix as one canonical URL served in several representations rather than a second site[12].

Data

Monthly crawler fetches across Vercel's network, late 2024012502500375050004500Googlebot569GPTBot370Claude314AppleBot24.4PerplexityBot
Monthly crawler fetches across Vercel's network, late 2024. Figures in million fetches.Source: vercel.com
Show the numbers (5)
Pointmillion fetches
Googlebot4500
GPTBot569
Claude370
AppleBot314
PerplexityBot24.4
References (12)
  1. Understand the JavaScript SEO basics - Google Search Central documentation Archive
    Documentation Retrieved 2026-09-04
  2. The rise of the AI crawler - Vercel and MERJ Archive
    Empirical study Published 2024-12-17 Retrieved 2026-09-04
  3. The rise of the AI crawler - Vercel and MERJ Archive
    Empirical study Published 2024-12-17 Retrieved 2026-09-04
  4. How Google handles JavaScript throughout the indexing process - Vercel and MERJ Archive
    Empirical study Published 2024-07-31 Retrieved 2026-09-04
  5. How Google handles JavaScript throughout the indexing process - Vercel and MERJ Archive
    Empirical study Published 2024-07-31 Retrieved 2026-09-04 Single-source Volatile, last checked 2026-09-04
  6. How Google handles JavaScript throughout the indexing process - Vercel and MERJ Archive
    Empirical study Published 2024-07-31 Retrieved 2026-09-04
  7. The rise of the AI crawler - Vercel and MERJ Archive
    Empirical study Published 2024-12-17 Retrieved 2026-09-04
  8. The rise of the AI crawler - Vercel and MERJ Archive
    Empirical study Published 2024-12-17 Retrieved 2026-09-04 Single-source Volatile, last checked 2026-09-04
  9. bingbot Series: JavaScript, Dynamic Rendering, and Cloaking - Bing Webmaster Blog Archive
    Vendor documentation Published 2018-10-31 Retrieved 2026-09-04
  10. Understand the JavaScript SEO basics - Google Search Central documentation Archive
    Documentation Retrieved 2026-09-04
  11. AI features and your website - Google Search Central documentation Archive
    Documentation Retrieved 2026-09-04
  12. The agent-readable web: serving the right representation to the right crawler - MERJ
    Vendor documentation Published 2026-05-29 Retrieved 2026-09-04 Single-source

Last updated 2026-09-04. Written and maintained by Baseline Labs.

George
Online
0%