Many AI Crawlers Never Run Your JavaScript
- The crawlers behind ChatGPT and Claude read the raw HTML your server sends and do not run JavaScript.
- Vercel and MERJ counted 569 million GPTBot requests and 370 million from Claude in one month on Vercel's network.
- Some systems do render pages, including Gemini, AppleBot and Bing Copilot, but the published tests disagree on which ones.
- A one-minute check shows the problem: fetch the page with no JavaScript and look for the facts you need an AI answer to quote.
- The fix is server-side rendering or pre-rendering for important content, confirmed against your server log.
If the words that matter on your site appear only after a browser runs JavaScript, a large share of the bots that feed AI answers may see an empty page. The crawlers behind ChatGPT and Claude download your page as text and read it as it arrived, without running the code that would fill it in.
I'm Bob Michaels. I started building for the web in 1992, and now I rebuild how companies are understood on the web and by AI. Part of that work is making sites readable by AI systems through a machine-readable website audit, and the test in this post is one I give every client. I'm primarily interested in remote work, and I'm open to part-time, full-time, fractional or consulting work.
The measurements below were published between December 2024 and July 2026. This post is current as of October 20, 2026.
The takeaway
Put the text you need AI systems to quote in the HTML your server sends, because the crawlers behind ChatGPT and Claude read that raw HTML and do not run your JavaScript.
What does an AI crawler see on a page built with JavaScript?
An AI crawler that does not run JavaScript sees only the raw HTML, the text file your server sends before any code runs. JavaScript is code that runs in a visitor's browser and can build the page after it loads. A page built that way can look complete to a person and still be nearly empty in the raw HTML a simple bot downloads.
Running that code and reading the finished page is called rendering. A bot that skips rendering takes the file, pulls out whatever words are already in it, and moves on. Anything your code would have added later never reaches it.
Google Search does render. Google's Search Central page on JavaScript SEO basics, last updated 2026-03-04 UTC, says Google Search runs JavaScript with an evergreen version of Chromium. A page that Google reads correctly can still come up empty for the bots that skip this step, so it needs its own check.
Do the ChatGPT and Claude crawlers run JavaScript?
As of the tests published through July 2026, the ChatGPT and Claude crawlers read raw HTML and do not run JavaScript, and all three sources I cite agree on that much. The first came from Vercel, which worked with the firm MERJ and published The rise of the AI crawler on December 17, 2024. It says: "The results consistently show that none of the major AI crawlers currently render JavaScript." The list after that sentence includes OpenAI's OAI-SearchBot, ChatGPT-User and GPTBot, and Anthropic's ClaudeBot.
In the month before that post, OpenAI's GPTBot generated 569 million requests across Vercel's network, and Anthropic's Claude followed with 370 million. Together that is about 20% of Googlebot's 4.5 billion requests in the same period.
The ChatGPT and Claude crawlers do download JavaScript files: 11.50% of ChatGPT's requests and 23.84% of Claude's. They don't execute them. Downloading a file of code and running it are different acts, and only running it builds the page.
Vercel's data came from monitoring nextjs.org and the Vercel network for the few months before its December 2024 report, plus two job board websites.
Resoneo published its own test in January 2026. It deployed a test page using 15 distinct content injection methods, meaning different ways of putting content onto a page. Its crawler test results found that ChatGPT parses raw HTML source without any JS execution, and that Claude behaves the same way.
Which AI systems do render JavaScript?
Some do, and the list depends on which test you read. Vercel's own post reports that Google's Gemini runs on Googlebot's infrastructure and gets full JavaScript rendering from it, and that AppleBot renders JavaScript through a browser-based crawler. Resoneo found that Bing Copilot executes JavaScript, with a very short timeout. A timeout is how long a bot waits for a page to finish building before it gives up.
Search Engine World published a test on June 9, 2026, updated July 2, 2026, by Andre Alpar: Do AI assistants actually render your JavaScript when grounding? It ran on one production domain against 12 AI assistants, with one prompt each. Its summary is plain: "The headline finding is blunt: the entire US top tier reads raw HTML only." It adds: "The systems that did render were the four Chinese assistants and Mistral."
The sources disagree on which assistants render. Search Engine World's authors call their results a snapshot and say behavior will change, and I apply that caution to every figure in this post, including Vercel's and Resoneo's. One prompt per assistant on one domain is a small sample. Before a decision rests on any of these findings, re-test it on your own site.
How can a non-engineer check what an AI crawler sees?
Ask a developer to fetch the page the way a simple bot does, with no JavaScript, and send you the text that comes back. It takes about a minute. Then read it yourself. If your price, your service description or your policy is not in that text, a crawler that does not run JavaScript cannot quote it.
Start with the pages that carry facts you'd want an AI answer to repeat, such as the pricing page and the main service pages. Look for the exact sentence a customer would want quoted back to them. If the page returns its layout but the spot where the price should be is blank, you have found the problem on that page, and you know which text needs to move.
The second half of the check is the server log, the record your web server keeps of every request, including which bot asked for which page. I never trust a chat assistant's own statement of what it fetched. The server log is the evidence. Search Engine World reached the same rule in its test. Ask your developer to search the log for GPTBot, ClaudeBot, OAI-SearchBot and ChatGPT-User and tell you which pages each one requested.
How do you fix a page AI crawlers can't read?
Move the important text into the HTML your server sends. The usual way is server-side rendering: your server builds the finished page, words included, before sending it, so every visitor and every bot gets the same text whether or not it runs code.
Vercel's advice is direct: "Prioritize server-side rendering for critical content." Its reason is that ChatGPT and Claude do not execute JavaScript, so any important content should be server-rendered.
Google's JavaScript SEO page gives its own reasons, speed and the bots that can't render: "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." Google's crawler renders JavaScript, and Google still recommends this.
For a business owner, the practical step is a short instruction to your developer: on these named pages, the price, the service description and the policy must be in the server's HTML. Then rerun the no-JavaScript fetch to confirm the text is there. Keep that output, so the next check has something to compare against.
Getting the words into the HTML is the first layer. How an agent then reads the page's structure is the next one, and I cover it in how agents read a page through the accessibility tree.
Common questions
Do I have to stop using JavaScript on my site?
Neither Vercel nor Google tells you to drop it. Their advice is about where your important content lives: in the HTML the server sends, built server-side or pre-rendered. Scripts can stay for whatever else they do on the page, as long as the text a crawler needs is already in the file before they run.
How often should I re-run the no-JavaScript check?
Re-run it after any redesign, platform migration or change to how your pages are built, because those are the moments text tends to slip out of the HTML. Run it again when a new crawler test is published, since the published results disagree with each other and shift over time. A check from last year describes last year's site.
What does passing the check not prove?
Passing means the text is reachable by a crawler that reads raw HTML. It does not prove that an assistant will visit the page, use it, or quote it accurately. It also covers only the pages you fetched, so any page you skipped is still unchecked.
Sources
If you want me to run this check on your site and tell you what to fix first, start a conversation about your website.