Does JavaScript rendering stop AI crawlers from reading my site?

Last updated October 14, 2026. Written by the Third Coast AI team.

Yes, for most of them: the crawlers behind ChatGPT, Claude and Perplexity fetch your HTML and do not execute the JavaScript in it, so any text that is written into the page by a script after it loads (tab panels, accordions, product data pulled from an API, reviews widgets, and entire pages built client-side by a front-end framework) is simply absent from what those engines read, while Google renders JavaScript in a deferred second pass and Bing renders it with limits, which means a JavaScript-heavy site can rank in Google and still be invisible to ChatGPT. Google's own advice is that "server-side or pre-rendering is still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript."

This page sets out what each engine's documentation and the log studies say about rendering, gives a five-minute test any marketing director can run without a developer, and lists the fixes in order of effort. It follows on from the robots.txt page, since access comes first and readability second.

Which AI crawlers run JavaScript, and which do not?

The clearest measurement is Vercel's December 2024 crawler study, which analyzed request logs across its hosting network and concluded that "none of the major AI crawlers currently render JavaScript," naming OpenAI's OAI-SearchBot, ChatGPT-User and GPTBot, Anthropic's ClaudeBot and Perplexity's PerplexityBot. The study noted that the agents do fetch JavaScript files, with 11.50% of ChatGPT's requests and 23.84% of Claude's going to script files, but do not execute them, so the fetch tells you nothing about what the engine saw. Nothing the vendors have published since contradicts that finding, and the practical rule that follows is simple: a page whose main text arrives by script can be read by Google and missed by the others.

Google is the exception, and even Google hedges. Google's JavaScript SEO documentation describes processing in three phases, crawling, rendering and indexing, says "Google Search runs JavaScript with an evergreen version of Chromium," and explains that a crawled page goes into a render queue where it "may stay on this queue for a few seconds, but it can take longer than that," with rendering happening "once Google's resources allow." Bing's 2018 post on Bingbot and JavaScript said bingbot "is generally able to render JavaScript" while admitting "it is difficult for bingbot to process JavaScript at scale on every page of every website," and recommended dynamic rendering, meaning pre-rendered static HTML served to the crawler.

Engine or crawlerExecutes JavaScriptSourcePractical reading
ChatGPT (OAI-SearchBot, ChatGPT-User, GPTBot)NoVercel's December 2024 crawler studyOnly the initial HTML is read
Claude (ClaudeBot, Claude-SearchBot, Claude-User)NoVercel's December 2024 crawler studyOnly the initial HTML is read
Perplexity (PerplexityBot, Perplexity-User)NoVercel's December 2024 crawler studyOnly the initial HTML is read
Google (Googlebot; feeds AI Overviews, AI Mode, Gemini grounding)Yes, deferredGoogle's JavaScript SEO documentationRendered in a queue that can take longer than seconds; pre-rendering still recommended by Google
Bing (Bingbot; feeds Copilot)PartlyBing's 2018 post on Bingbot and JavaScriptGenerally able, not at scale; Bing recommends dynamic rendering

How can you tell whether your text is in the HTML?

Without a developer, in about five minutes, and we suggest doing it on the three pages that matter most before reading any further. Open the page in a desktop browser, press the keys for view-source (Ctrl-U on Windows, Command-Option-U in Safari or Command-U in Chrome on a Mac), and search the source for a distinctive sentence from the part of the page you want cited: a price, a claim, a line from a testimonial. If the sentence is in the source, the AI crawlers can read it. If the source shows a near-empty body with a script tag and a root div, the page is built client-side and the crawlers see nothing. The browser's inspector is not a valid test, because the inspector shows the page after JavaScript has run, which is exactly the view the crawlers do not get.

The most expensive sentence on a client's site is usually the one a developer moved into a tab to make the page look cleaner. Google still reads it. ChatGPT never will.

Third Coast AI

What fixes work, in order of effort?

There are four, and most companies need the second. The cheapest is to move the sentences that matter out of script-loaded components and into the static HTML: the answer paragraph, the decision-factor proof, the pricing table, the testimonial. That can be done inside most CMS templates in an afternoon and solves the problem for the pages that earn citations. The second is to have the CMS or framework render pages on the server, which most modern platforms support as a setting (static generation or server-side rendering) and which Google's JavaScript SEO documentation recommends anyway for speed. The third is dynamic rendering, which Bing's 2018 post on Bingbot and JavaScript described: detect the crawler's user agent and serve a pre-rendered static version, a workable patch for a large legacy application that cannot be rebuilt. The fourth is a rebuild, which is sometimes the right answer for a site whose whole front end is a single-page application and whose owners want to be cited for years rather than months.

Whatever the fix, the schema needs the same treatment. JSON-LD placed in the HTML head by the template is read by every crawler; JSON-LD injected by a tag manager is read by Google after rendering and by nobody else. The schema page covers the detail, and for a site that has done both, the structure guide is the next step, since text that is readable still has to be quotable.

Is this really worth fixing for the traffic involved?

We think the traffic is the wrong measure. Pew measured people clicking a link in 8% of visits with an AI summary against 15% without, so most AI answers end without a click whether or not you are cited, and the value of being cited is the recommendation, with Semrush's AI search traffic study finding the visitors who do arrive from AI search convert at about 4.4 times the rate of classic organic. The Princeton researchers (Aggarwal and colleagues, KDD 2024) found quotations, statistics and cited sources lifting a page's visibility in generated answers by roughly 41%, 33% and 28%, and none of that applies to a page the engine cannot read. Rendering is the gate before every other lever, which is why it sits in the first week of our audit and in the first line of the checklist.

Frequently asked questions

Does Google see JavaScript content that ChatGPT cannot?

Yes. Google's documentation says it renders JavaScript with an evergreen Chromium in a deferred second pass, while Vercel's log study found none of the major AI crawlers execute JavaScript. A page can rank in Google and be blank to ChatGPT.

Is the browser inspector a valid test?

No. The inspector shows the page after scripts have run. Use view-source, which shows the HTML as delivered, and search it for the sentence you want cited.

Does my schema markup have the same problem?

Yes, if it is injected by a tag manager after load. JSON-LD in the template head is read by every crawler; JSON-LD added by script is read by Google after rendering and by the other engines not at all.

What is dynamic rendering and is it still acceptable?

Serving a pre-rendered static HTML version to crawlers that identify themselves. Bing recommended it in 2018 and it remains a workable patch for a legacy application, though server-side rendering is the cleaner fix.

How quickly will the engines notice after I fix rendering?

Google re-renders on its next crawl. The other engines read the new HTML the next time their crawlers fetch the page, which Vercel's volumes suggest is frequent for GPTBot and ClaudeBot and slower for PerplexityBot. Submit changed pages through IndexNow for Bing.

Have us run the rendering test

The audit fetches your key pages as each AI agent and shows you exactly what text each engine can and cannot read.