AI crawlers fetch your JavaScript files. Almost none of them run it
No, with one exception. GPTBot, ClaudeBot, PerplexityBot and most other AI crawlers request a page's raw HTML and generally do not execute its JavaScript, so any content that only appears after the page hydrates in a browser is invisible to them. Google is the exception: the crawling infrastructure behind Search and AI Overviews renders JavaScript the way a browser would.
Short answer
Most AI crawlers do not run JavaScript. They fetch a page's initial HTML response and parse whatever is already in the document. Content injected afterward by a script, common on single-page apps built with client-side rendering, is simply not there when these crawlers read the page, regardless of how complete it looks to a person browsing normally. Google's crawling infrastructure is the documented exception.
What actually happens when GPTBot or ClaudeBot fetches a page
A crawler making an unrendered fetch requests a URL and reads back exactly what the server returns before any script runs: the initial HTML document. If a page's content, an explanation of what a business does, its offer, its proof, is written directly into that HTML, the crawler sees it. If that content only appears after a JavaScript bundle downloads and runs in a browser, the crawler's copy of the page never contains it.
This is not a policy choice a business can appeal. It is a difference in what each crawler's fetcher is built to do. A non-rendering fetch is cheaper and faster at the scale these systems operate, and most were built that way from the start.
The gap this creates on a JavaScript-heavy site
A modern single-page app commonly ships a near-empty HTML shell and builds the actual page in the browser after the JavaScript bundle loads. A person visiting the site never notices, because their browser runs the script in a fraction of a second. A crawler that does not execute JavaScript receives that same near-empty shell and stops there.
The practical effect is that a business can have a polished, fully functional website and still hand most of its AI crawler traffic a page with no category, no offer, and no proof on it, purely because of how the content was rendered rather than what the content says.
Google renders JavaScript. Most others do not.
Google's crawling infrastructure runs a rendering pass using an evergreen version of Chromium, so it can generally see content that appears after JavaScript executes, and that rendering capability extends to the systems behind Google's AI features. That makes Google the exception among major AI-relevant crawlers rather than the rule.
Google's own developer documentation still recommends server-side or static rendering over relying on client-side rendering alone, since it is faster for users and available to crawlers that do not render JavaScript at all. The crawler that renders JavaScript best is the one telling site owners not to depend on it.
How to check what your own site hands over
Disable JavaScript in a browser and reload the page. Whatever remains, headings, body copy, the details that state what the business does, is close to what a non-rendering crawler receives. A page that goes blank or loses its core message under this test is giving most AI crawlers nothing to work with.
Server-side rendering, static site generation, and pre-rendering at build time all solve this the same way: by putting real content into the HTML response before any script runs, so it exists whether or not the reader executes JavaScript.
11.50%
of ChatGPT's crawler requests fetch a JavaScript file, and none of them are executed, so anything depending on that script running is never seen.
Vercel, The rise of the AI crawler23.84%
of Claude's crawler requests fetch a JavaScript file, with the same result: the file is downloaded but never run.
Vercel, The rise of the AI crawlerA crawler downloading your JavaScript is not the same as a crawler reading what that JavaScript builds.
Common questions
Does this mean single page apps never work for AI visibility?
Not never, but they need help. A single-page app rendered entirely client-side has to add server-side rendering, static generation, or pre-rendering to put real content into the initial HTML. Without one of those, most AI crawlers see an empty shell no matter how the app performs for a human visitor.
Will Google's AI features see a JavaScript-only site correctly?
Generally yes, because Google's crawling infrastructure renders JavaScript before the AI features built on top of it read the page. That is specific to Google's own systems and does not extend to ChatGPT, Claude, Perplexity, or most other AI crawlers, which do not share that rendering step.
How do I know if my own site is affected?
Reload the page with JavaScript disabled. If the core content, what the business does, its offer, its proof, disappears or goes blank, an AI crawler that does not execute JavaScript is seeing that same empty page.
Is switching to server-side rendering a big project?
It depends on the framework and how deeply client-side rendering is built in, but it is usually a targeted fix rather than a full rebuild. Most modern frameworks support server-side rendering or static generation as a configuration choice, not a different architecture.
AI-readable websites
The full standard: what Reidify builds into every site by default.
What is semantic HTML
The markup layer a non-rendering crawler actually reads.
Is my website AI readable
The full checklist this JavaScript test is the first step of.
Run the checker
Free. Paste any URL and see what machines can read on it.
See exactly what a non-rendering crawler receives from your site right now.
