— Technical SEO · 2 min read
Making a React SPA
Visible to the World
Every site I build with Lovable has the same invisible problem. Perfect in a browser. A blank page for Googlebot, Bingbot, and every AI crawler on the planet. Not a bug — just how React works. And nobody was fixing it before launch.
Hired to
Technical SEO fix for a single client project.
Ended up
Standardized, documented solution applied across all Lovable projects — first configuration, not a last-minute patch.
1
Stack
All
Pages crawlable
0
Ongoing maintenance
Lovable builds React SPAs. React renders everything in the browser via JavaScript. Googlebot doesn't wait for JavaScript — it requests a URL, reads the raw HTML, and moves on. That raw HTML is a single empty div with id="root". No content. No headings. No text. A technically perfect site, completely invisible to search engines and AI crawlers. Every internal page also returned a 404 to bots without a proper redirect rule.

↑ What Googlebot sees: a single empty div with id='root'. No content, no headings, no text. The site only exists inside the browser.

↑ Google Search Console after the fix: URL indexed, full HTML visible to the crawler. Same page that was a blank div before.
Netlify's native prerendering extension intercepts bot requests, executes JavaScript server-side, and returns a full HTML snapshot. Users still get the fast React experience. Bots get real content. A netlify.toml file with SPA redirect rules makes every route accessible. Cache set to 720 hours, auto-cleared on every deploy. Configured once. Never touched again.
↳ Why not SSR with Next.js?
It would have required rewriting the entire project architecture. Netlify prerendering is a surgical fix that touches zero lines of application code — and takes 10 minutes to configure. The tradeoff was obvious.
It's now the first thing I configure on every project — before design, before launch, before anything else. Not a fix to do later. A prerequisite.
I would have written this up as technical documentation from the start, not a case study after the fact. I figured out the pattern after applying it in emergency mode on the first project — if I'd formalized it earlier, every subsequent project would have had this baked in from day zero. Which is what eventually happened, just later than it needed to.
The best SEO fix isn't always a content strategy.
Sometimes it's a config file.