Crawlsonar
AI readiness & GEO2 min readUpdated 2026-07-09

Why AI can't read your page — and how server-side rendering fixes it

If your content only appears after JavaScript runs, crawlers and LLM fetchers see an empty shell. Here's why, and how SSR/SSG fixes it.

Open your page, then view its raw HTML (right-click → View Source, or curl the URL). If your headline and body text aren't in there, neither search engines nor most AI fetchers can reliably see them — even though your browser shows them fine.

The problem: client-side rendering#

A client-side-rendered (CSR) app ships a near-empty HTML shell plus a JavaScript bundle. The browser runs the JS, which fetches data and builds the page. That's great for logged-in app UIs — but a crawler that doesn't execute JavaScript (or gives up quickly) sees the empty shell.

Watch out: Google can render JavaScript, but it's slower and not guaranteed. Many AI fetchers (and some social/preview bots) do not execute JS at all. If your content isn't in the initial HTML, assume they can't read it.

The fix: render on the server#

  • Static Generation (SSG) — pages are built to HTML at deploy time. Fastest and most reliable for content that doesn't change per request.
  • Server-Side Rendering (SSR) — HTML is built on the server per request. Use when content is dynamic or personalized.
  • Prerendering — a build step or service snapshots your CSR app to static HTML for bots. A retrofit for existing SPAs.

Modern frameworks (Next.js, Nuxt, SvelteKit, Astro, Remix) render on the server by default. The goal is the same: the meaningful content is present in the HTML the server sends, before any JavaScript runs.

How to verify#

  1. curl -s https://yourpage.com | grep 'your headline' — if it's missing, the content isn't server-rendered.
  2. Or run the AI Readiness Checker, which fetches your page the way a bot does and reports what it can actually extract.

Frequently asked questions

Does Google index JavaScript sites?

It can — Googlebot renders JavaScript in a second pass — but it's slower, resource-limited and not guaranteed for every page. Server-rendering the content removes the risk entirely and helps non-Google crawlers too.

Do I have to rewrite my whole app?

Not necessarily. You can adopt SSR/SSG for content pages (blog, docs, marketing) while keeping a client-rendered app for logged-in areas, or add prerendering as a retrofit for an existing SPA.

How do AI crawlers differ from Googlebot here?

Most AI fetchers are simpler than Googlebot: they request the HTML and parse it, without a full browser rendering pass. So content that depends on client-side JavaScript is often invisible to them specifically.

Do it with a free tool

Related guides

Published 2026-07-09 · Updated 2026-07-09 · By Crawlsonar.