Can AI engines read JavaScript-rendered content?

Mostly no. Google renders JavaScript, but ChatGPT's and Claude's crawlers read raw HTML only. Server-render what you want cited; Prefer tracks what gets cited.

Javed Khatri Javed Khatri Co-founder, Prefer

2 min read Answer

The short answer

Do AI crawlers execute JavaScript?

Mostly no: OpenAI's and Anthropic's crawlers (GPTBot, OAI-SearchBot, ClaudeBot) fetch raw HTML and do not run JavaScript, so client-only content is invisible to them, while Google renders JS and can still reach AI Overviews. Server-render what you want cited, and Prefer tracks which of your pages the engines then cite.

Key takeaways

  • 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)

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

  1. 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
  2. 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
  3. 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

Frequently asked questions.

Updated 5 September 2026

Can AI engines read JavaScript-rendered content?

Mostly no: OpenAI's and Anthropic's crawlers (GPTBot, OAI-SearchBot, ClaudeBot) fetch raw HTML and do not run JavaScript, so client-only content is invisible to them, while Google renders JS and can still reach AI Overviews. Server-render what you want cited, and Prefer tracks which of your pages the engines then cite.

Does this mean I need server-side rendering?

For anything you want cited, yes, and Prefer then tracks whether ChatGPT, Gemini, Perplexity and Google's AI surfaces cite those pages. If your important text, headings, and links only appear after JavaScript runs, GPTBot and ClaudeBot see an empty shell. Server-side rendering or static HTML makes the content present in the raw response every crawler reads.

How do I check what AI crawlers actually see?

Prefer's Agent Analytics reads your server logs to show which AI crawlers visit your pages. To see what they get, fetch your page the way a bot does: request the raw HTML without running JavaScript (curl, or view-source rather than the rendered DOM) and confirm your answer text is there. Then check server logs for GPTBot, OAI-SearchBot, ClaudeBot, and PerplexityBot to see what they pulled.

Will Google AI Overviews still see my JavaScript content?

Usually, because AI Overviews run on Google's standard index and Googlebot renders JavaScript, and Prefer tracks whether those Overviews cite your pages. The catch is the delay: Google queues rendering, so JS-dependent content is slower to appear and update than server-rendered HTML.

Get your free AI visibility report
in about 10 minutes.

See how answer engines describe your brand today, and where the openings are to outpace the competition.