Google renders JavaScript, most AI crawlers do not#
The split is simple: Google executes JavaScript, and the other major AI crawlers do not. That single difference decides whether your client-rendered content can be cited.
- Google (and Gemini) render it. Google’s documentation describes Googlebot processing JavaScript in three phases, crawling, rendering, and indexing, with a headless Chromium executing the JavaScript once resources allow. Gemini uses that same Googlebot infrastructure, so JS-rendered content can reach Google AI Overviews. Google also states its AI surfaces need no special optimization beyond standard SEO, so they inherit that rendering.
- The others fetch raw HTML. Vercel’s December 2024 analysis of real AI crawler traffic found that none of the major AI crawlers render JavaScript. OpenAI’s GPTBot, OAI-SearchBot, and ChatGPT-User, along with Anthropic’s ClaudeBot, request pages but do not execute their JavaScript. They will even download JS files (ChatGPT on about 11.5% of requests, Claude on 23.8%) without running them.
So if your headline, body copy, or links only exist after a framework hydrates in the browser, ChatGPT and Claude see a near-empty page. You cannot be cited for content the crawler never rendered.
There is one honest caveat: crawler behavior changes, and Google’s rendering is deferred, not instant, because pages sit in a render queue. Do not treat any of this as permanent. Verify with your own server logs and raw-HTML checks rather than assuming.
What to do about it#
Server-render anything you want an AI engine to cite. The fix is the same one that helps classic SEO, applied strictly:
- Serve the content in the initial HTML. Use server-side rendering or static generation so your answer text, headings, and internal links are present in the raw response, before any JavaScript runs. That is the version GPTBot and ClaudeBot read.
- Reserve JavaScript for enhancement. Interactive widgets are fine, but the substance an engine needs to quote should not depend on client-side rendering.
- Confirm what bots see. Fetch your page without executing JavaScript (curl or view-source, not the rendered DOM) and check that your key claims are there. Then read your logs for GPTBot, OAI-SearchBot, ClaudeBot, and PerplexityBot to confirm they are pulling real content.
For Google specifically, JS content will usually still be indexed and eligible for AI Overviews, but on a delay, since rendering is queued. Server-rendered HTML is faster to crawl and update on every engine, which is why it is the safe default for pages you want cited.
For the on-page work that earns citations once your content is crawlable, see our guide to appearing in Google AI Overviews, and to watch whether engines actually read your pages, start with tracking your AI citations. To see whether AI engines are reading and citing your pages today, run a free AI visibility audit.
Sources
- Vercel's December 2024 analysis of AI crawler traffic found none of the major AI crawlers render JavaScript: OpenAI's GPTBot, OAI-SearchBot and ChatGPT-User and Anthropic's ClaudeBot fetch pages but do not execute JavaScript (ChatGPT fetched JS files on 11.5% of requests, Claude 23.8%, without running them), while Google's Gemini uses Googlebot's full rendering. Vercel: the rise of the AI crawler
- Google's documentation says Googlebot processes JavaScript in three phases (crawling, rendering, indexing) and defers rendering to a queue where a headless Chromium executes the JavaScript, so JS content is indexed but on a delay. Google Search Central: JavaScript SEO basics
- Google states AI Overviews and AI Mode need no special optimization beyond standard SEO, so they inherit Googlebot's indexing, including its JavaScript rendering. Google Search Central: AI features and your website
People also ask
- Do AI crawlers execute JavaScript?
- Can ChatGPT read JavaScript-rendered pages?
- Does GPTBot render JavaScript?