AI Visibility Tracking ToolFree checker

Vercel's AI Crawler Study: AI Crawlers Fetch JavaScript but Don't Execute It

99Visibility Research · Updated October 21, 2026 · 5 min read

Short answer

Vercel's study found that ChatGPT and Claude crawlers download JavaScript files (11.50% and 23.84% of their requests) but don't execute them, so they can't read client-side rendered content. Independent re-testing in June 2026 found the same for the major AI crawlers, with Googlebot and Applebot as the exceptions. If a fact only appears after JavaScript runs, assume most AI crawlers never see it.

Key takeaways

  • Vercel found ChatGPT and Claude crawlers fetched JavaScript files on 11.50% and 23.84% of requests but did not execute them.
  • Independent re-testing in June 2026 found that GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Meta-ExternalAgent and Bytespider do not render JavaScript.
  • Googlebot and Applebot render pages, so a client-side rendering gap matters for non-Google AI engines, not Google's AI features.
  • The original data is a one-month December 2024 snapshot of one Next.js site, excludes Microsoft Copilot, and comes from a company that sells server-side rendering.
  • The action is a diff: compare raw HTML with the rendered DOM and make sure your key facts exist before JavaScript runs.

What was studied and by whom

Vercel, the hosting company behind Next.js, published "The rise of the AI crawler" on 17 December 2024 and updated it on 6 February 2025. The post looked at how AI crawlers behave when they request pages, and one finding has outlasted the rest: they fetch JavaScript but don't run it.

That matters because many modern sites use client-side rendering. The server sends a near-empty HTML shell, and the browser builds the visible page by executing JavaScript. A crawler that skips that step sees the shell, not your pricing, product names or headings.

The study is the strongest single piece of evidence behind any on-site AI visibility fix. It explains a failure that is common, invisible from a normal browser, and fully in the publisher's control.

The method

Vercel's data is a one-month snapshot from December 2024, taken on nextjs.org. Crawlers were identified by user agent. That is why Microsoft Copilot was left out: it did not have a unique user agent to separate it from other traffic.

The analysis counted what crawlers requested, including how often those requests were for JavaScript files, and checked whether the crawlers acted on that JavaScript to read rendered content.

The evidence base records no further method detail, such as sample counts per crawler. Read the figures below as one site's traffic over one month, not a web-wide census.

The findings

Vercel's headline sentence, quoted exactly: "The data indicates that while ChatGPT and Claude crawlers do fetch JavaScript files (ChatGPT: 11.50%, Claude: 23.84% of requests), they don't execute them. They can't read client-side rendered content."

The download is the puzzling part. If a crawler won't run JavaScript, why fetch it? We cover the likely reasons in why AI crawlers download JavaScript files they don't run. For your site, the practical point is simple: a request for a .js file in your logs does not mean the crawler saw what that file renders.

Re-confirmed in 2026

Independent re-testing in June 2026 found that none of these crawlers render JavaScript:

  • GPTBot, OAI-SearchBot and ChatGPT-User (OpenAI)
  • ClaudeBot and Claude-SearchBot (Anthropic)
  • PerplexityBot (Perplexity)
  • Meta-ExternalAgent (Meta)
  • Bytespider (ByteDance)

The exceptions

Googlebot renders JavaScript, and Applebot renders through a browser-based crawler. So a client-side rendering gap is mostly irrelevant to Google AI Overviews, AI Mode and Gemini's Google-backed paths. It is decisive for ChatGPT search, Claude, Perplexity and Meta AI.

One nuance from Vercel: JSON or React Server Component payloads included in the initial HTML response may still be indexed. Content loaded later, by a separate request after the page boots, is the risk.

What the study does not show

The finding is solid. The study still has limits worth stating plainly.

  • One site, one month. nextjs.org is a developer documentation site built on Next.js. Its traffic is not a random sample of the web.
  • Copilot is missing. Without a unique user agent, Microsoft's crawler could not be measured.
  • The vendor has an interest. Vercel sells server-side rendering and hosting. That doesn't make the data wrong, and the result has since replicated independently, but the incentive is real.
  • It is a snapshot of behavior. Crawler capabilities can change. As of October 2026, the June 2026 re-test is the most recent confirmation in our evidence base.
  • It is about access, not selection. Fixing a rendering gap puts your content into the candidate pool. It does not make an engine more likely to choose or cite you. We explain that distinction in whether switching to server-side rendering increases AI citations.

That last point is the one most often overstated. Rendering is hygiene. It removes a block. Nobody controls what the model then retrieves or says.

What to do with it

Treat this as a check you run, not a rewrite you commission. The goal is to confirm that the facts you care about exist in the HTML before any JavaScript executes.

  1. List your load-bearing facts. Prices, plan names, product names, what you do in one line, location, key numbers.
  2. Fetch the raw HTML. Request the page with JavaScript off, the way a non-rendering crawler does. A quick test from a terminal:
curl -s https://example.com/pricing | grep -i "per month"
  1. Render the same URL in a headless browser and extract the visible text.
  2. Diff the two. Anything present only after rendering is invisible to the AI crawlers listed above. Our raw HTML vs rendered DOM playbook walks through this step by step.
  3. Check interactive content. Tabs, accordions, "load more" buttons and infinite scroll often inject text by fetch. Use the hidden-facts playbook to find them.
  4. Fix the gap at the source. Server-side rendering, static generation or prerendering for the affected pages. The guide to JavaScript rendering and AI crawlers compares the options.

Rendering is one gate. A crawler also has to be allowed in by robots.txt and let through by your CDN or firewall. Check all three before drawing conclusions about why an engine doesn't mention you.

Frequently asked questions

Does this mean ChatGPT can't read my React site?

Not necessarily. It depends on how the React site is built. If your framework renders pages on the server or at build time, the HTML already contains your content and ChatGPT's crawlers can read it. If the server sends an empty shell and the browser builds everything, they can't. Run the raw HTML check to find out. Our page on [whether ChatGPT can read a React website](/questions/can-chatgpt-read-react-website) covers the common setups.

Does Google's AI Overviews have the same problem?

No. Googlebot renders JavaScript, so Google AI Overviews and AI Mode can use content that appears after hydration, subject to Google's normal indexing and snippet eligibility. The rendering gap matters for engines whose crawlers don't execute JavaScript, which as of the June 2026 re-test includes OpenAI's, Anthropic's, Perplexity's and Meta's crawlers.

Is the 11.50% figure the share of pages ChatGPT can't see?

No. The 11.50% for ChatGPT and 23.84% for Claude are the share of each crawler's requests that were for JavaScript files on nextjs.org during the study month. They describe what the crawlers downloaded, not how much content they missed. How much a crawler misses on your site depends entirely on how much of your content needs JavaScript to appear.

Why was Microsoft Copilot left out of the study?

Vercel identified crawlers by user agent, and Copilot did not have a unique user agent at the time. Its requests could not be separated from other traffic, so the study says nothing about whether Copilot's crawling executes JavaScript. Don't infer either answer for Copilot from this study.

Will fixing rendering get me cited by AI engines?

Nobody can promise that. Fixing a rendering gap means your content exists when a crawler fetches the page. Whether an engine then retrieves it for a given question, and cites it, is decided by the engine. The fix removes a block you control. It does not create a ranking or citation outcome.

Sources

  1. The rise of the AI crawler - Vercel
  2. Understand JavaScript SEO Basics
  3. Overview of OpenAI Crawlers
  4. Does Anthropic crawl data from the web, and how can site owners block the crawler?
  5. Perplexity Crawlers - Perplexity

This page is AI-assisted. It was written from a verified evidence base and checked against our editorial policy. Engine behaviour changes often; facts are as of October 21, 2026.

Keep reading