Plenty of company websites are built in React — and AI search engines cannot read them properly.
If your website is built as an SPA (single page application) in React, Vue or Angular, read this carefully. There is a strong chance AI search crawlers can barely read your site at all.
Crawlers like GPTBot (ChatGPT), PerplexityBot and Claude-Web send an HTTP request to a URL and read the HTML that comes back. They do not execute JavaScript — or if they do, a time limit stops them waiting for an SPA to render.
When a crawler hits a site built as a React SPA, this is the HTML it receives.
<!DOCTYPE html>
<html>
<head><title>My App</title></head>
<body>
<div id="root"></div>
<script src="/static/js/main.abc123.js"></script>
</body>
</html>
No content. Every line of text, every service description, case study and blog post lives inside the JavaScript bundle. The AI crawler never runs that bundle, so it never reads the content.
About 60% of the company sites Intesol Korea has diagnosed were SPAs, invisible to AI crawlers. In IT and startups that share climbs to 80%. Even teams who say they care about SEO often miss it, because Googlebot does render JavaScript and hides the symptom.
Move to Astro, Next.js in SSG mode, or Gatsby, and generate every page as static HTML at build time. The most complete fix, and page load speed improves sharply too.
Use getServerSideProps in Next.js, or Nuxt.js, to render HTML on the server. The right choice when you need live data.
Services like Prerender.io serve pre-rendered HTML to bots only. Usable as a stopgap, but not a complete fix.
Next.js depends on configuration. In SSG mode with getStaticProps or generateStaticParams, you are fine. Lean on client-side data fetching (useEffect plus fetch) and you have exactly the same problem.
Open your site and disable JavaScript (Chrome: DevTools → Settings → Disable JavaScript). If the content disappears, AI crawlers are having the same experience.
curl -s https://yoursite.com | grep -o '<p[^>]*>[^<]*</p>' | head -5
An empty result means you have the SPA problem.
{{ post.lede }}
{{ b.v }}
{{ b.v }}