Back to Learn

Help

Why your React SPA is invisible to AI search

Client-rendered apps hand agents an empty shell. Answer engines cannot quote what they cannot read — and no amount of SEO metadata fixes a blank body.

You shipped a React SPA. Lighthouse scores look fine. Google Search Console shows indexed pages. But when someone asks ChatGPT or Perplexity about your product, your company does not appear. The problem is not SEO. The problem is what machine visitors receive.

The empty shell problem

A typical client-rendered app returns HTML like:

<div id="root"></div>
<script src="/assets/main.js"></script>

Browsers execute the script and render your UI. Most AI crawlers and answer-engine fetchers do not. They tokenize the initial response — which is an empty div and a script tag.

Your pricing page, feature list, and value proposition literally do not exist in what they read.

Why meta tags are not enough

Open Graph tags and JSON-LD in the head help social previews and some search features. But answer engines quote body content. A meta description is 160 characters. Your landing page is 2,000 words of persuasion that never arrives.

Who is affected

Answer engines (Perplexity, ChatGPT browse, Bing Copilot) — fetch on user query, no JS execution

Training crawlers — bulk-fetch HTML, rarely execute scripts

IDE agents — scrape docs and marketing sites for context

Googlebot is the exception — it runs JavaScript, slowly. AI discovery channels are not.

Fixes that do not require a rewrite

ApproachEffortAgent impact
Full SSR/SSG migrationHighFixes root cause
Prerender serviceMediumStatic HTML snapshot
Agent-friendly gatewayLowServes Markdown from ingest pipeline
Parallel /docs in MarkdownLowGives agents a readable surface

ADN's gateway extracts and serves clean Markdown for answer_engine and live_fetch classes — without touching what Googlebot receives (passthrough) or what humans see in the browser.

Measure before you fix

Run the free scan at https://www.agent-delivery.network/#scan on your marketing URL. If extractable text is a fraction of page weight, you have the empty-shell problem.

For SaaS teams where one AI-referred lead pays for the year, fixing discoverability is often the highest-ROI growth work you can do without a product change.

Frequently asked

Does Google index SPAs?
Googlebot can execute JavaScript, but with delays and quotas. AI answer engines and most training crawlers do not — they see the initial HTML shell, which is often empty.
Do I need to rebuild my app as SSR?
Not necessarily. An agent-friendly gateway can serve clean Markdown extracted from your rendered content, or from a parallel content source, without changing your frontend.

See how this applies to your stack: Small SaaS guide.

Continue reading

Run the free efficiency scan on your URL to see what machines receive today.