crawlmouse

Can AI Crawlers See Your JavaScript Site? (How to Check)

·9 min read
Quick answer
Most AI crawlers — GPTBot, ClaudeBot, PerplexityBot — don’t run JavaScript. They read the raw HTML your server returns and move on. So a JavaScript-heavy site can rank on Google (which does render JS) while being a blank page to ChatGPT, Claude, and Perplexity. To check yours, View Page Source or crawl it with a static-HTML tool and see whether your real content and links are actually there.

Here’s a problem most teams don’t know they have: your site can rank on the first page of Google and be completely invisible to ChatGPT at the same time. The reason is a quiet split in how crawlers work. Googlebot runs a full browser engine that executes your JavaScript before indexing the result. The AI crawlers — the bots behind ChatGPT, Claude, and Perplexity — don’t. They fetch your raw HTML, read whatever text is in it, and leave. If your content only appears after JavaScript runs, they see nothing.

Do AI crawlers actually render JavaScript?

Overwhelmingly, no. A Vercel and MERJ analysis of more than 500 million GPTBot fetches found zero evidence of JavaScript execution — and the same held for Anthropic’s ClaudeBot, PerplexityBot, and the rest. Even when these crawlers download JavaScript files (GPTBot did about 11.5% of the time), they don’t run them. There’s a logic to it: AI crawlers work under tight timeouts and enormous scale, and rendering JavaScript for every page would be hugely expensive in compute. Skipping it keeps them fast and cheap. This isn’t a temporary gap they’re rushing to close — for now, it’s a design choice.

The one meaningful exception is Google’s Gemini, which inherits Googlebot’s rendering infrastructure. Apple’s crawler renders too. But GPTBot, OAI-SearchBot, ClaudeBot, Claude-SearchBot, and PerplexityBot all read raw HTML only.

Why a page can rank on Google but be blank to ChatGPT

This is the part that’s easy to miss, because every signal you normally watch says things are fine. Googlebot fetches your page, executes the scripts, builds the full page, and indexes it — so your client-rendered content ranks. Google even removed its longstanding JavaScript SEO warning in March 2026 because its rendering is now mature. The trap is assuming that progress transfers. It doesn’t. An AI crawler fetches the same URL, reads the raw HTML, finds an empty shell, and moves on. One URL, two readers, two entirely different outcomes.

It compounds through Bing, too: roughly 92% of ChatGPT Search responses draw on Bing’s index, and Bingbot has limited JavaScript rendering. So a fully client-rendered site can lose AI visibility from two directions at once — the direct crawler fetch and the Bing index behind ChatGPT Search. And the pages most likely to be client-rendered in modern stacks — product pages, comparison pages, FAQs, and docs — are exactly the ones AI engines cite most.

Why this matters more every quarter

Because the AI channel is growing fast and converts well. AI search visits grew roughly 43% year over year, and AI-referred visitors have been measured converting far better than standard Google clicks (one dataset put it at 14.2% versus 2.8%). You don’t have to bet your whole strategy on it to care — you just don’t want your best pages to be structurally unreadable to the fastest-growing discovery channel on the web. And it’s worth being clear-eyed: AI referrals are still a fraction of traditional search. The curve is the story, not today’s share.

How to check what AI crawlers see on your site

You don’t need special software to run the basic test — you need to look at your raw HTML, the version before any JavaScript executes. Three ways:

  • View Page Source. Right-click a page and choose “View Page Source” (not “Inspect” — that shows the rendered DOM). Search it for your real text, headings, and internal links. If they’re there, AI crawlers can see them. If you find mostly an empty <div> and script tags, they can’t.
  • Disable JavaScript and reload. Turn off JS in your browser and refresh. Whatever disappears is what an AI crawler never had.
  • Crawl the static HTML. Crawlmouse crawls the same pre-JavaScript HTML an AI crawler reads and maps your internal-link graph from it. If pages or links are missing from its crawl — or it flags a JS-rendered site — that’s a strong sign those pages and links are JavaScript-dependent and invisible to AI crawlers too. It won’t diagnose every content type, but it shows you the internal structure a non-rendering crawler actually sees, for free. (It’s the same crawl behind a full internal-link audit.)

How to fix it

The fix is well-established and mostly a one-time architectural decision: get your important content and internal links into the initial HTML response, not loaded afterward by client-side JavaScript. In practice that means server-side rendering — Next.js for React, Nuxt for Vue, Angular Universal for Angular — or pre-rendering pages to static HTML. Content in the raw HTML before scripts run is readable by everyone: Google, Bing, and every AI crawler. A few specific traps to watch: content that only loads on scroll or on tab/accordion click, and product lists that render client-side after filtering — those stay invisible to AI crawlers even on an otherwise server-rendered site.

And don’t forget the plumbing: none of this helps if the crawlers can’t reach the page in the first place. Make sure your internal linking is solid and your pages are actually getting crawled and indexed — a page an AI crawler can render but never finds is just as invisible as one it finds but can’t read.

Run the View Source test on your five most important pages today. If your content and links are in the raw HTML, you’re in good shape. If they’re not, you’ve just found the reason your best pages aren’t showing up in AI answers.

Frequently asked questions

Do AI crawlers render JavaScript?
Almost none do. As of 2026, GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, and the other major AI crawlers fetch your raw HTML and read the text in it without executing JavaScript. A Vercel and MERJ analysis of over 500 million GPTBot fetches found zero JavaScript execution. The one exception is Google Gemini, which uses Googlebot’s rendering.
Can a page rank on Google but be invisible to ChatGPT?
Yes. Googlebot renders JavaScript, so a client-rendered page can rank well in Google Search. But ChatGPT, Claude, and Perplexity read only the raw HTML, so the same page can be a blank shell to them. One URL, two readers, two completely different outcomes.
How do I check if AI crawlers can see my content?
Three quick tests. Right-click the page and choose View Page Source: if your real text and links are in the raw HTML, AI crawlers can see them. Or disable JavaScript in your browser and reload to see what vanishes. Or crawl the page with a static-HTML tool like Crawlmouse, which reads the same pre-JavaScript HTML an AI crawler does.
How do I fix a JavaScript site so AI crawlers can read it?
Get your important content and internal links into the initial HTML response rather than loading them with client-side JavaScript. Server-side rendering (Next.js, Nuxt, Angular Universal) or pre-rendering is the standard fix. If the content is in the HTML before scripts run, every crawler can read it.
Does Google rendering JavaScript mean AI crawlers do too?
No, and this is the most common mistake. Google removed its JavaScript SEO warning in March 2026 because Googlebot’s rendering is mature. That applies only to Google. The AI crawlers built by OpenAI, Anthropic, and Perplexity skip rendering by design for speed, so solving JavaScript SEO for Google does not solve it for AI search.

Keep reading