In December 2025, AI SaaS startup Kanaeru AI discovered its Lovable-built marketing site was invisible to Google. Search Console flagged blog posts as "Crawled - currently not indexed" for months, despite polished design and strong content. The problem wasn't quality; it was architecture. This article breaks down exactly why Lovable and other React-based site builders create this trap, and the documented, real-world fixes that got sites like Kanaeru AI properly indexed.
What Lovable SEO Actually Means
Lovable is an AI tool that generates full websites and apps from prompts, built on React with Vite. That's the same stack Kanaeru AI's founder, Shreyas Shinde, used to build the company's original marketing site in 2025, praising its rapid initial development speed and polished visual result.
The catch is architectural. Lovable ships a single-page application, or SPA. The server sends one nearly empty HTML file, and JavaScript fills in the headings, text and links after the page loads in a browser. Kanaeru AI's team found this out directly when Google Search Console started marking their blog posts "Crawled - currently not indexed," with duplicate homepage HTML appearing under every blog URL instead of unique content.
This isn't a Lovable-only flaw. It affects any React, Vue, or Angular SPA that doesn't add server-side rendering or prerendering on top of client-side rendering. Lovable's own documentation acknowledges that indexing on unmodified SPAs can take days instead of hours, and that social sharing previews are broken by default until extra configuration is added. Fixing it is squarely the job of technical SEO rather than design.
How Kanaeru AI Achieved Results
Over roughly two months, from October to December 2025, Kanaeru AI ran a seven-phase fix that the team documented publicly on its own blog and cross-posted to DEV Community.
Phase 1, Foundation, October 2025. The team generated a dynamic sitemap.xml on every build. They rewrote robots.txt to explicitly allow Googlebot, ChatGPT-User, Claude-Web and PerplexityBot. They also added JSON-LD Organization schema to the homepage.
Phase 2, Indexing fixes, October 2025. Blog posts had canonical tags pointing at the homepage. That literally told Google to ignore the post and index the homepage instead. The team corrected canonical URLs per page and added dedicated BlogPosting schema, with headline, publish date, author and publisher fields.
Phase 3, Performance, October 2025. Google Fonts loaded via CSS @import were blocking rendering for over 1.6 seconds. The team switched to async font loading and retargeted the Vite build to ES2020 with manual code-splitting. Desktop PageSpeed Insights scores reached Performance 99, Accessibility 93, Best Practices 96 and SEO 100.
Phase 4, Off-page SEO, October to November 2025. The team built an internal tool to cross-publish blog content to LinkedIn, Medium and DEV.to. Each copy carried a canonical link back to the original post. The team also submitted the site to startup directories, including Product Hunt, for initial backlinks.
Phase 5, Ahrefs audit, December 2025. A full site audit surfaced orphan pages with zero internal links pointing to them. It also found duplicate metadata, caused by the SPA serving identical HTML shells for different URLs. The team added a Featured Articles component linking every post from the homepage, and deployed crawler-targeted prerendering through Vercel rewrite rules that detected bot user agents.
Phase 6, Framework migration, December 2025. Rather than keep patching around client-side rendering, the team migrated the entire codebase, 166 files, from Vite and React to Next.js 16 with the App Router. Next.js handles metadata, sitemaps and rendering natively.
Phase 7, Final polish, December 2025. The team added ProfilePage schema to team bios, cleaned up canonical URL prefixes, and fixed Open Graph image paths so social previews displayed correctly.
Measurable Outcomes and ROI
The before-and-after is documented directly in Kanaeru AI's own Search Console and Ahrefs dashboards.
- Blog posts moved from "Crawled - currently not indexed" to indexed within days of publishing, once prerendering and correct canonical tags were in place.
- Desktop PageSpeed Insights scores reached Performance 99, Accessibility 93, Best Practices 96 and SEO 100 after the font-loading and code-splitting fixes.
- Ahrefs Site Health Score improved to 100 following the orphan-page and duplicate-metadata fixes.
- Rich snippets began appearing in search results once BlogPosting and ProfilePage schema replaced the single generic Organization schema used at launch.
The trade-off is real. Reaching these results required a genuine framework migration: 166 changed files and roughly two months of engineering time. Patch-level fixes like sitemaps, robots.txt and Vercel rewrite rules reduced the problem, but did not fully eliminate it. The team's own conclusion was direct: fighting a framework's client-side rendering nature is exhausting, and a native SSR framework removed the need for ongoing workarounds.
Comparing Industry Approaches
Four documented approaches show the range of how teams handle React and Lovable SEO problems, each with different cost and reliability trade-offs.
Full SSR framework migration, Kanaeru AI, December 2025. Moving the entire app to Next.js 16 eliminated crawler-detection logic and prerendering scripts entirely, at the cost of a 166-file migration.
Static Site Generation at build time, David Kloeber, January 2026. This Melbourne-based performance marketing consultant kept his Lovable-generated React app. He added Static Site Generation, so each page prerenders to HTML at build time. Using Google Search Console's View Crawled Page feature, he found his homepage was showing as an empty loading shell before the fix, a diagnostic step any team can repeat.
Edge-proxy prerendering, Prerender.io and DataJelly, 2026. Rather than touching the app's code, this approach adds middleware or a routing rule. It works with Express, Nginx, Apache and Cloudflare Workers. It detects bot traffic and serves a cached, prerendered HTML snapshot in under 50 milliseconds, leaving the live React app untouched for human visitors.
Cloudflare Worker edge interception, LovableHTML tutorial, February 2026. A Cloudflare Worker sits in front of the domain and checks whether a request comes from a crawler, covering more than 30 documented bot user agents, including Googlebot, Bingbot, ClaudeBot and PerplexityBot. It calls a prerendering API only for those requests, passing everything else straight to the unmodified SPA.
All four approaches share one conclusion: an unmodified Lovable or React SPA will not reliably get indexed. Closing that gap requires either changing the rendering architecture or intercepting bot traffic before it reaches the SPA.
Practical Implementation Guide
Diagnose first. Use Google Search Console's URL Inspection tool and its View Crawled Page feature to see exactly what Googlebot receives. Kloeber's audit found a literal empty shell where his content should have been. This is the same first step in how we approach technical site audits.
Fix the fundamentals before anything else. Add a dynamic sitemap.xml. Add an explicit robots.txt allowing both search bots and AI crawlers, such as GPTBot, ClaudeBot and PerplexityBot. Then correct per-page canonical tags. Kanaeru AI's canonical bug alone was telling Google to ignore every blog post.
Add structured data per content type, not just once. A single Organization schema on the homepage is not enough. Blog posts need BlogPosting schema, team pages need ProfilePage schema, and every schema needs a populated image field or validation fails. The Schema.org vocabulary defines the type for nearly every page you publish, and correct markup is also what makes a page quotable in answer engine optimization.
Choose a rendering fix that matches your resources. Small teams with limited engineering time can start with an edge-proxy or Cloudflare Worker prerendering layer, since none of these require touching the underlying app. Teams planning to scale content long-term should budget for an eventual SSR migration, as Kanaeru AI did.
Fix internal linking. Orphan pages with no internal links might as well not exist, in the words of Kanaeru AI's own postmortem. Every page needs at least one link pointing to it from elsewhere on the site, which is why content strategy and site architecture belong in the same plan.
Monitor with more than one tool. Google Search Console, Ahrefs or a similar crawler-based auditor, and PageSpeed Insights each surface different problems. Kanaeru AI's team explicitly noted that no single tool showed the whole picture.
Mistakes documented across these sources include treating dynamic rendering as a permanent fix rather than a stopgap, leaving canonical tags pointing at the homepage by default, shipping one generic schema type across every page instead of matching schema to content type, and assuming a polished, AI-generated front end is a substitute for the technical SEO and content-distribution work that actually moved Kanaeru AI's rankings.
Why AI Website Builders Do Not Replace Marketing Strategy
Lovable's own documentation states that AI crawlers may miss pages or see only partial content unless prerendering is configured, and that indexing can take days instead of hours by default. That is a direct acknowledgment from the platform itself, not an outside critique.
This matters because of what happened after the rendering problem was patched. None of the four documented approaches above stopped at a technical fix. Kanaeru AI still ran off-page link building, cross-published content to Medium, LinkedIn and Product Hunt, and repeatedly audited with Ahrefs, real marketing effort no tool generated automatically.
The pattern across every source in this article is the same. AI builders like Lovable are genuinely fast at producing a working, good-looking interface. But they are not a substitute for ongoing technical SEO work. Structured data, internal linking, content distribution and conversion rate optimization all still fall on the team. Teams that treat an AI-generated site as finished skip exactly the steps Kanaeru AI's own postmortem says took two months and 166 changed files to get right.
Conclusion
Kanaeru AI's blog posts sat unindexed for months, invisible despite a polished, professionally designed Lovable site, until the team spent roughly two months correcting sitemaps and robots.txt, fixing canonical tags, adding content-specific schema, building internal linking, and migrating to Next.js 16. The result: indexing within days, a PageSpeed SEO score of 100, and an Ahrefs Site Health Score of 100.
If a Lovable or React site launched in the last year, the next action is the same one Kloeber and Kanaeru AI both started with. Open Google Search Console's URL Inspection tool, click View Crawled Page, and see what Googlebot actually receives. If it is a blank shell, that is the answer, and a documented path now exists to fix it. If you want that diagnosis done for you, start with a free visibility audit.
This article references publicly available information from Lovable, Kanaeru AI, Prerender.io, DataJelly, David Kloeber, LovableHTML, Vercel, Google Search Central, and Cloudflare, including official documentation, published blog posts, and a publicly posted engineering case study. All metrics and quotes are drawn from these documented, publicly published sources. Results described are specific to the organizations mentioned and may vary based on industry, scale, and implementation approach.
