In tests published by Vercel and MERJ in December 2024, none of the major AI crawlers rendered JavaScript: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot and PerplexityBot read the raw HTML only. Their operators do not document JavaScript rendering, and crawler behaviour can change, so the safe assumption is that a page whose content is drawn by JavaScript can rank on Google and still be blank to ChatGPT. Google Gemini, which uses Googlebot's rendering, and Applebot were the exceptions in that test.
This difference is not obvious from a normal browser view. A browser can run a page's scripts before showing the page, while a crawler that does not run those scripts can receive only the original HTML.
Why does the same site behave differently for Google and ChatGPT?
A JavaScript-built homepage can send an HTML shell, then fill in the practice name, hours, services and reviews after the page loads. A browser runs that script before showing the completed page. A crawler that fetches the page without running the script sees only what the original HTML contains.
Google documents a rendering step for Google Search. For the AI crawlers named above, see the answer at the top of this page; the practical question for a practice is whether its key content is present in the raw HTML.
| Crawler or service | Published role | JavaScript evidence in the cited documentation |
|---|---|---|
| GPTBot / OAI-SearchBot / ChatGPT-User | Training / ChatGPT search / user-initiated visits, respectively | The cited bot-role documentation does not establish JavaScript execution capability. |
| ClaudeBot / Claude-SearchBot / Claude-User | Training / search / user-initiated visits, respectively | The cited bot-role documentation does not establish JavaScript execution capability. |
| PerplexityBot | Surfaces and links websites in Perplexity search results; not foundation-model training | The cited bot-role documentation does not establish JavaScript execution capability. |
| Googlebot / Web Rendering Service | Google Search | Google documents JavaScript rendering and use of rendered HTML for indexing. This does not establish how the separate Gemini app retrieves a page. |
It does not mean these crawlers cannot read your site at all. When a crawler can reach the server, placing the practice name, hours and services in the raw HTML makes those details available without JavaScript. It also does not mean fixing this guarantees a mention; being readable is a precondition, not a trigger. Whether a practice gets named still depends on what the engine's retrieval and ranking logic decides, which this page does not measure.
JavaScript is only one access layer. A separate policy-file baseline covers 6,497 readable US dental practice robots.txt files, read on 22 July 2026 across 13 AI and data crawlers.
What does Citevio's own site data show about this risk?
The Citevio dental practice web anatomy study, 6–26 June 2026, covered 527 US dental practice websites, 7 US metros plus 9 smaller nearby towns. It recorded platforms, not rendering methods. The platform page reports one permitted figure: WordPress: 289 of 527 sites (54.8%). That figure does not establish how any individual site renders; use the raw-HTML check below.
Citevio's dental market research is published openly under CC-BY-4.0 with a DOI, so the numbers can be checked and reused; client data is never published.
Does JavaScript affect Google AI Overviews too?
In tests published by Vercel and MERJ in December 2024, none of the major AI crawlers rendered JavaScript: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot and PerplexityBot read the raw HTML only. Their operators do not document JavaScript rendering, and crawler behaviour can change, so the safe assumption is that a page whose content is drawn by JavaScript can rank on Google and still be blank to ChatGPT. Google Gemini, which uses Googlebot's rendering, and Applebot were the exceptions in that test.
How does this connect to page speed?
Rendering and speed are separate problems. In the Citevio dental practice web anatomy study, 6–26 June 2026, Citevio's speed page reports one permitted FCP figure: 130 of 256 measurable sites (50.8%) were over 3.0 seconds, Google's “Poor” line.
First Contentful Paint measured with Google's PageSpeed Insights API, mobile strategy, one retained FCP value per measurable site. n = 256 of 527 practices scanned; the remaining records contain no usable FCP value, and do not establish why the value is missing. This is loading-speed data, not a measurement of AI visibility or citation outcomes.
That same speed data is walked through on video in the site-by-site speed video.
How do I check my own site?
Load your homepage, then view the raw page source rather than the rendered page, and search for your practice name or a sentence from your homepage. If it is missing from that raw source, a crawler that does not run JavaScript will see the same emptiness.
- Open your homepage in a desktop browser.
- View the page source — right-click and choose "View Page Source," or use
Ctrl+U/Cmd+Option+U. This shows the raw HTML before any script runs, which is close to what a non-rendering crawler receives. - Search that source (
Ctrl+F/Cmd+F) for your practice name, phone number, or a sentence you know is on the homepage. - Read the result. Found it: the content is present in the raw HTML and readable to non-rendering crawlers. Not found: that content is being added by JavaScript after the page loads, and ChatGPT, Claude and Perplexity's crawlers will not see it.
This check only confirms whether content is present in the raw HTML. It does not test crawler access at the server level — a site can pass this check and still block a crawler outright, which is a different problem covered in open to AI on paper, blocked in practice. A fuller version, including how to check individual crawlers separately, is on how to test if AI can read your dental website.
Common questions
Does ChatGPT read JavaScript on my dental website?
In tests published by Vercel and MERJ in December 2024, none of the major AI crawlers rendered JavaScript: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot and PerplexityBot read the raw HTML only. Their operators do not document JavaScript rendering, and crawler behaviour can change, so the safe assumption is that a page whose content is drawn by JavaScript can rank on Google and still be blank to ChatGPT. Google Gemini, which uses Googlebot's rendering, and Applebot were the exceptions in that test.
Why can my site rank on Google but still be invisible to ChatGPT?
Because Google and the AI assistant crawlers do not read your site the same way. Googlebot renders JavaScript before indexing a page, which is why a JavaScript-built site can rank normally in Google Search. GPTBot, ClaudeBot and PerplexityBot do not render JavaScript, so if your practice name, hours or services only appear after a script runs, those crawlers see a page with little or nothing on it.
Is Gemini affected the same way as ChatGPT?
In tests published by Vercel and MERJ in December 2024, none of the major AI crawlers rendered JavaScript: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot and PerplexityBot read the raw HTML only. Their operators do not document JavaScript rendering, and crawler behaviour can change, so the safe assumption is that a page whose content is drawn by JavaScript can rank on Google and still be blank to ChatGPT. Google Gemini, which uses Googlebot's rendering, and Applebot were the exceptions in that test.
How do I check if my dental website is JavaScript-rendered?
Load your homepage in a browser, then view the page source (not the rendered DOM) and search for your practice name, phone number or a sentence of your homepage text. If it is missing from that raw source, your content is being drawn in by JavaScript after the initial load, and a non-rendering crawler will not see it. A step-by-step version of this check is on how to test if AI can read your dental website.
What platforms are more likely to have this problem?
Platform data does not show whether an individual site is server-rendered or JavaScript-rendered. The reliable check is to inspect the raw HTML your server returns for the practice's key content.
Does this mean AI crawlers can't read my site at all?
No. When a crawler can reach your server, placing your practice name, hours and services in the raw HTML makes that content available without any JavaScript running. The problem described on this page is specific to content a script draws in after the page loads — content that's already sitting in the raw HTML is readable to GPTBot, ClaudeBot and PerplexityBot the same as anything else on the page.
If I put my key content in the raw HTML, does that guarantee ChatGPT will recommend my practice?
No. Being readable in the raw HTML is a precondition, not a trigger — it does not by itself guarantee a mention. Whether a practice actually gets named still depends on what each engine's own retrieval and ranking logic decides, and that decision process is not something this page measures.
Does passing this raw-HTML check mean my server isn't blocking AI crawlers too?
No, they're two different checks. This page's check only confirms whether your key content sits in the raw HTML; it does not test whether your server actually lets an AI crawler's request through. A site can pass the raw-HTML check and still refuse a crawler outright at the server level — a separate problem covered on our page about sites that are open to AI on paper, blocked in practice.
Does Claude have the same JavaScript-reading limitation as ChatGPT?
In the Vercel and MERJ tests, ClaudeBot did not render JavaScript either, like GPTBot, OAI-SearchBot and PerplexityBot. Content added only after a script runs can therefore be missing from the HTML such a crawler receives. Anthropic's cited crawler documentation describes bot roles, not JavaScript rendering capability; crawler behaviour can change.
What's the difference between the raw HTML my server sends and the page I actually see in my browser?
A browser runs any JavaScript on a page before showing it to you, so what appears on screen can include content a script added after the page loaded. The raw HTML is what your server sends before any of that runs — it's what "View Page Source" shows you, and it's close to what a non-rendering crawler like GPTBot or ClaudeBot actually receives. If your practice name or a homepage sentence is missing from that raw source, it exists only in the version your browser builds, not in what these crawlers get.
Does JavaScript affect Google AI Overviews too?
In tests published by Vercel and MERJ in December 2024, none of the major AI crawlers rendered JavaScript: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot and PerplexityBot read the raw HTML only. Their operators do not document JavaScript rendering, and crawler behaviour can change, so the safe assumption is that a page whose content is drawn by JavaScript can rank on Google and still be blank to ChatGPT. Google Gemini, which uses Googlebot's rendering, and Applebot were the exceptions in that test.
What does Citevio's own site data show about this JavaScript rendering risk?
The Citevio dental practice web anatomy study, 6–26 June 2026, covered 527 US dental practice websites across 7 US metros plus 9 smaller nearby towns. It recorded each site's platform, not its rendering method, so it cannot say how many of those sites are JavaScript-rendered. The one related figure it reports is on the platform page: WordPress accounted for 289 of the 527 sites, 54.8%. That figure does not establish how any individual site renders; use the raw-HTML check described earlier on this page.
Where does this page's claim that AI crawlers don't run JavaScript come from?
The operator links below document crawler identities and roles. Google's JavaScript guide documents Google Search rendering; the cited bot-role pages do not establish JavaScript execution capability for every named AI crawler or the separate Gemini app's retrieval mechanism. The blanket claim is therefore not fully verified by those sources. Citevio's own platform study measures platforms, not JavaScript rendering.
Sources and scope
Sources: Vercel and MERJ JavaScript crawler tests; OpenAI crawler documentation; Anthropic crawler documentation; Perplexity crawler documentation; Google Search Central JavaScript documentation; Citevio dental practice web anatomy study, 6–26 June 2026 (own data, methodology: how we measure AI visibility).
The data citations on this page resolve to the permanent archive identified by DOI 10.5281/zenodo.23143214.
See what ChatGPT, Claude and Perplexity actually see
Run a free check of your dental website's AI readiness, starting with whether its key content is available in raw HTML.
Run my free AI scanNo sales call — ever.