Technical GEO

Why AI Crawlers Can't See Your JavaScript Site

AI crawlers generally don't execute JavaScript. So if your content only appears after JS runs in the browser, ChatGPT, Perplexity, and Google's AI see the empty shell your server sent — not your content. Here's how to check, and how server-side rendering fixes it.

By AIExposureTool teamPublished on July 15, 20267 min read
On this page

1The Problem

Most AI crawlers fetch your raw HTML and do not run JavaScript — so any content that only appears after JS executes is invisible to them. You can have perfect content, schema, and crawler permissions, but if your page ships an empty shell and paints the real content client-side, AI engines see nothing worth citing. This single issue silently sinks a lot of otherwise well-built sites, especially single-page apps.

2How to Check (60 Seconds)

Don't trust what you see in the browser — that's the rendered DOM after JS ran. Check the source:

  1. Open your page, right-click, and choose "View Page Source" (not "Inspect").
  2. Search (Ctrl/Cmd+F) for a sentence from your main content and your H1.
  3. If they're there, AI crawlers can see them. If the source is mostly empty <div>s and <script> tags, your content is client-side only.

Also confirm your structured data is in that source — schema injected client-side has the same invisibility problem.

Check what AI actually reads

Run a free scan to see whether your content and schema are in the server-rendered HTML AI crawlers fetch.

Run free scan

3Why It Happens

Rendering JavaScript is expensive — it requires running a full browser engine per page. Google's traditional crawler does it in a slower second pass, but AI crawlers and AI-search fetchers generally skip rendering entirely to stay fast and cheap at scale. That's a deliberate trade-off on their side, and it means the burden is on you to serve real HTML.

It compounds with crawler access: even if you've allowed the bots (see robots.txt for AI crawlers), an empty shell gives them nothing. Both have to be right — as does ChatGPT use my website explains.

4How to Fix It

  • Server-side rendering (SSR) — the server sends fully-formed HTML on each request. Frameworks like Next.js, Nuxt, and SvelteKit support it natively.
  • Static site generation (SSG) — pre-build HTML at deploy time. Great for content that doesn't change per request (blogs, docs, marketing pages).
  • Prerendering — a service serves static HTML snapshots to crawlers. A retrofit option if you can't change the app easily.

The goal is identical in all three: your content and schema live in the HTML the server returns, before any JavaScript runs.

5What to Prioritize

You don't need a full rewrite. Convert your highest-value pages first — homepage, key product and comparison pages, and cornerstone content — then work down. A single well-rendered page that AI can cite beats a fully-migrated app you finish in six months. Verify each page's source after you ship it.

Frequently Asked Questions

Do AI crawlers execute JavaScript?

Generally no. Most AI crawlers — including those behind ChatGPT, Perplexity, and Claude — fetch the raw HTML and do not run JavaScript the way a browser does. If your content is rendered client-side, they see the empty shell your server sent, not the content that appears after JS executes.

How do I check if my content is visible to AI crawlers?

View the page source (not the rendered DOM): right-click and choose 'View Page Source', or fetch the URL with a plain HTTP request. If your headings, body text, and structured data appear in that raw HTML, AI crawlers can see them. If the source is mostly empty divs and script tags, your content is client-side only.

What's the difference between SSR, SSG, and CSR?

CSR (client-side rendering) builds the page in the browser with JavaScript — bad for AI crawlers. SSR (server-side rendering) sends fully-formed HTML from the server on each request. SSG (static site generation) pre-builds HTML at deploy time. Both SSR and SSG put your content in the raw HTML, which is what AI crawlers need.

Does Google render JavaScript even if AI crawlers don't?

Google's traditional crawler can render JavaScript in a second pass, but it's slower and not guaranteed for every page. AI crawlers and AI-search fetchers typically don't render at all. So relying on client-side rendering is risky for classic SEO and effectively fatal for AI visibility.

Do I have to rebuild my whole site to fix this?

Usually not. Modern frameworks (Next.js, Nuxt, Astro, SvelteKit) support SSR or SSG out of the box, and you can often convert key pages incrementally. Prerendering services can also serve static HTML to crawlers. Prioritize your most important pages first rather than a full rewrite.

Is your content visible to AI?

Run a free scan to check server-side rendering, crawler access, and structured data — with a prioritized fix list.

Share this article

Free newsletter

AI visibility tactics, every Tuesday

One email a week — what's moving the needle in ChatGPT, Perplexity, and Gemini. No fluff, no spam.

Join founders building visibility in AI search. Unsubscribe anytime.

AI

Track your visibility

See if ChatGPT recommends you — in 60s

Free 25-signal scan + auto-generated llms.txt, JSON-LD, and FAQ schema. No card required.

Run free audit

Used by 1,000+ teams to improve AI search visibility.