Do AI crawlers run JavaScript when reading a page?
Short answer: Mostly no. As of 2026 the major AI crawlers — GPTBot, ClaudeBot, PerplexityBot and the rest — fetch your raw HTML and never execute JavaScript. The one exception is Google’s Gemini. So if your content only appears after JavaScript runs, most AI engines simply can’t see it.
Which crawlers skip JavaScript?
Nearly all of them. GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Meta-ExternalAgent and Bytespider all fetch the raw HTML response and extract text from the initial markup. They don’t run scripts, wait for rendering, or retry.
How do we know?
A Vercel and MERJ analysis of over 500 million GPTBot fetches recorded zero JavaScript execution. Even when GPTBot downloaded JavaScript files — about 11.5% of the time — it never ran them.
Is there any exception?
One: Google Gemini. It leverages Googlebot’s Web Rendering Service, so it can execute JavaScript, with the same timing and rendering-queue caveats that apply to Googlebot. Every other major AI crawler does not.
Why don’t they render it?
Speed and cost. AI crawlers impose tight timeouts — often one to five seconds — and rendering JavaScript at the scale they crawl would be enormously expensive in compute. Skipping it keeps retrieval fast and cheap.
What this means for you
If your important content is injected by JavaScript — a client-rendered single-page app, say — most AI engines see an empty shell. Serve your main content in the initial HTML, via server-side rendering, static generation, or pre-rendering, so it’s visible before any script runs.
| Crawler | Executes JavaScript? |
|---|---|
| GPTBot / OAI-SearchBot | No |
| ClaudeBot / Claude-SearchBot | No |
| PerplexityBot | No |
| Google Gemini (via Googlebot) | Yes |