Quick Read · Technical Setup

Is Your Website Invisible to ChatGPT? The 2-Minute Test

Many AI crawlers don't run JavaScript. Here's a quick, no-tools way to see your site the way they do, and what to do if it comes up blank.

By the Moonlit teamPublished 2 min read

Short answer

Maybe. Many AI crawlers read only the raw HTML a server sends and skip JavaScript entirely. If your site builds its content with JavaScript, those crawlers may see an empty page. Open View Page Source and search for your headline. If it isn't there, neither is your content, as far as those crawlers are concerned.

Key Takeaways

  • A 2024 Vercel study found major AI crawlers didn't execute JavaScript.
  • View Page Source and search for your headline. If it's missing, many crawlers can't see your content.
  • Static generation, server-side rendering or prerendering fix it without a rebuild.
  • Logged-in app screens can stay JavaScript-only.

Your website looks great in your browser. That's because your browser is a very patient reader. It downloads the page, runs all the JavaScript and builds everything you see.

Many AI crawlers aren't that patient. In a December 2024 study of crawler traffic, Vercel found that none of the major AI crawlers it measured executed JavaScript, including OpenAI's crawlers, ClaudeBot and PerplexityBot. Googlebot does render JavaScript, though Google notes the rendering step can be delayed.

So for a lot of modern sites, the question is simple: what's in the page before the JavaScript runs?

What a person sees versus what a non-JavaScript crawler sees Left: a browser window showing a full bakery page with a headline, prices and an order button, because the browser ran the JavaScript. Right: the same page as raw HTML, which contains only an empty root div and a script tag, which is all a crawler that skips JavaScript can read. examplebakery.com/cakes Custom Birthday Cakes Order by Thursday for weekend pickup. 🎂 🧁 6-inch from $38 · 8-inch from $52 Order a cake VIEW SOURCE · NO JAVASCRIPT <html> <head> <title>Home</title> </head> <body> <div id="root"></div> <script src="app.js"> </body> No headline. No prices. No cakes. And the title says "Home" on every page. What a person sees What many AI crawlers get
Same URL, two very different readers. An illustrative example with a fictional bakery.

The Test

No tools required
  1. Open an important pageA service page, product page or pricing page works well.
  2. View the page sourceRight-click and choose View Page Source, or put view-source: in front of the URL.
  3. Search for your headlinePress Ctrl+F or Cmd+F and look for the main heading and a line from the first paragraph.
  4. Check the titleFind the title tag. Is it specific to this page, or does it say the same thing on every page?

Found your text? Nice. Crawlers can read it.

Found mostly an empty <div id="root"></div>? Your content depends on JavaScript, and many AI crawlers will see a blank page.

If It Came Up Blank

You don't need to rebuild your site. You need the important pages to send real HTML.

FixWhat it meansGood for
Static generationPages are built into finished HTML when you deployMarketing pages, blogs, docs
Server-side renderingThe server builds HTML for each visitPages that change often
PrerenderingHTML snapshots of key pages are made after each buildExisting single-page apps that need a quick fix

Frameworks like Next.js, Nuxt, Astro and SvelteKit do the first two out of the box. Google recommends server-side rendering or prerendering too, partly because not every bot can run JavaScript.

Logged-in screens like dashboards can stay JavaScript-only. Nobody needs those cited.

Frequently Asked Questions

Does Google penalize JavaScript sites?

No. Google renders JavaScript and indexes these sites. The bigger risk is AI assistants whose crawlers don't render it.

Is structured data added by JavaScript OK?

Google can read it after rendering. Crawlers that skip JavaScript won't, so putting JSON-LD directly in the HTML is the safer bet.

Sources