Server-Side Rendering
Checks that main content renders in the initial HTML response, not only after JavaScript executes.
What this check measures
We fetch the page without executing JavaScript and measure how much content is present in the raw HTML. An SPA with `<div id="root"></div>` and nothing else scores zero.
Why it matters
AI crawlers (GPTBot, ClaudeBot, PerplexityBot) do not execute JavaScript. Pure SPAs are invisible to them — no matter how good the content is. Google renders JS but with a delay and reliability penalty. SSR solves both problems.
How our audit detects it
Fetch page with JS disabled. Measure text-to-HTML ratio and check for main content elements (H1, first paragraph) in the raw HTML body.
Typical findings
- error_outlineLovable app: only <div id="root"></div> in body.
- error_outlineCreate React App: no content without JS.
- error_outlineBolt Vite SPA: loading skeleton in HTML, real content only post-hydrate.
How to fix
Migrate to a framework with SSR (Next.js, Remix, Astro, SvelteKit) or add a static-site-generation layer (vite-plugin-ssr, vite-plugin-prerender). At minimum, put critical copy statically in index.html.
Copy-paste fix prompt for your stack
Lovable · Cursor · Bolt · v0 · Replit · Windsurf · Claude Code · Base44
Frequently asked questions
Do I need to migrate my whole app to Next.js?expand_more
Does Google render JS?expand_more
Want this checked on your site?
Pantra runs the full audit (SEO, Security, GEO, Performance, Schema, Technical, Images) in 10 seconds and generates stack-specific fix prompts.
Scan my siteRelated checks
AI Crawlers Allowed
Checks that GPTBot, ClaudeBot, PerplexityBot, and Google-Extended are not blocked in robots.txt.
AI Search (GEO)JSON-LD Structured Data
Checks for JSON-LD structured data in the page <head> — essential for rich results and AI citations.
AI Search (GEO)llms.txt File
Checks for a /llms.txt file — an AI-specific guide to your site content.
AI Search (GEO)Static Content Density
Checks how much meaningful text ships in the initial HTML without JS execution.