Lovable SEO: What Pre-rendering Fixes, and What Our Own Migration Measured
A Lovable app can rank. This site did, as a Lovable-built single-page app, before we moved it to a server-rendered stack at the same URLs. This guide takes Lovable's current SEO mechanics from its documentation, puts them next to Google's own rules on JavaScript, and then shows the Search Console numbers from both sides of our cutover, which are not the numbers the pre-rendering vendors would like you to expect.
Updated

How does Lovable handle SEO now?
Two ways, depending on when the app was created. Lovable's SEO documentation, read on 26 September 2026: “New apps created from May 13, 2026 use TanStack Start with server-side rendering (SSR). Every request returns fully rendered HTML, for humans and crawlers.” And for the rest: “Older React + Vite apps use on-request pre-rendering on deployed public URLs”, which is “only served to verified crawlers: Google, Bing, social-preview bots, and AI engines like ChatGPT, Perplexity, Claude, and Gemini.” Both shipped on 13 May 2026 with the Discoverability release, which added an SEO review and Semrush-backed keyword research to the chat.
| Apps created from 13 May 2026 | Apps created before | |
|---|---|---|
| Rendering | Server-side rendering with TanStack Start; rendered HTML on every request | On-request pre-rendering of deployed public URLs |
| Who gets rendered HTML | Everyone | Verified crawlers only: Google, Bing, social-preview bots, ChatGPT, Perplexity, Claude, Gemini |
| What a scanner sees | The rendered page | “Third-party SEO scanners, link checkers, and other agents will see the regular SPA shell, not the pre-rendered HTML.” |
| How to verify | View source | “use Google's URL Inspection tool, the Mobile-Friendly Test, or social-platform link debuggers” |
| Review and research | SEO and AI search review in chat with Try to fix; Semrush research at no extra cost through 30 November 2026 | Same |
The sentence that matters most is the docs' last one on the subject: “Ranking still depends on factors outside Lovable's control, including content quality, search intent, backlinks, competition, performance, and search ranking algorithms.” Everything below is about the gap between what the platform fixes and what it cannot.
Is a single-page app invisible to Google?
No, and the pages that say so are usually selling the fix. Google's own JavaScript SEO basics describes three phases, crawling, rendering and indexing, and says: “Googlebot queues all pages with a 200 HTTP status code for rendering”, and “Once Google's resources allow, a headless Chromium renders the page and executes the JavaScript.” The catch is the queue: “The page may stay on this queue for a few seconds, but it can take longer than that.” Google's conclusion is measured, and worth quoting in full: “server-side or pre-rendering is still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript.”
- Crawl: fetch the HTML
- Queue: seconds, or longer
- Render: headless Chromium runs JS
- Index: rendered HTML
- Inspect: URL Inspection shows it
Three phases and the render queue from Google's JavaScript SEO basics page, read on 26 September 2026.
Our own case is the proof. This site ran as a Lovable-built React + Vite app until 25 July 2026. Its index.html, still in our repository, is 3,291 bytes with an empty root element, 0 characters of visible text, no structured data and no canonical tag, plus a noscript fallback of 190 characters. In its last four weeks it drew 28,591 impressions and 525 clicks from Google. Ahrefs, which is exactly the kind of third-party scanner Lovable's docs mention, read the same site on 25 July 2026 as zero organic keywords. Both were right about what they could see.
What changed when we moved the site to server rendering?
On 25 July 2026 we replaced the Lovable build with a Next.js app at byte-identical URLs, server-rendered for every visitor, with generated sitemap and robots files, Article and FAQ structured data on each guide, and a build gate that fails if any page ships under a text floor. The rendering difference is not subtle:
| Category | characters |
|---|---|
| Lovable SPA shell (any page) | 0 |
| /templates, server-rendered | 4972 |
| /, server-rendered | 10042 |
| /learn/how-to-write-prompts | 21152 |
| /prompts, server-rendered | 128653 |
Legacy shell measured from the Lovable build's index.html in our repository; current pages fetched with curl on 26 September 2026 and stripped of tags. The Googlebot user agent receives the same HTML as a browser on the current site.
The Search Console difference is the part nobody publishes. We compared the last four weeks on the Lovable build with a four-week window that starts five weeks after the cutover, so the re-crawl period is excluded. Same property, same URLs, web search only, pulled on 26 September 2026.
| Lovable build, 28 Jun to 25 Jul 2026 | Next.js build, 29 Aug to 25 Sep 2026 | Change | |
|---|---|---|---|
| Clicks | 525 | 367 | -30% |
| Impressions | 28,591 | 13,495 | -53% |
| Click-through rate | 1.84% | 2.72% | 0.88 points |
| Pages with impressions | 17 | 22 | +5 |
| Before: clicks / impr. / pos. | After: clicks / impr. / pos. | |
|---|---|---|
| / | 119 / 6,925 / 8 | 40 / 1,750 / 8.3 |
| /prompts | 102 / 5,014 / 10.9 | 100 / 2,997 / 9.6 |
| /prompts/ui-ux | 102 / 2,363 / 9 | 85 / 1,045 / 7.8 |
| /prompts/landing-page | 87 / 3,746 / 8.6 | 63 / 1,756 / 9.7 |
| /learn/prompt-examples | 45 / 1,806 / 7 | 14 / 496 / 20.9 |
| /generator | 30 / 1,073 / 8.4 | 26 / 1,098 / 10.1 |
| /prompts/saas-app | 15 / 1,054 / 8 | 19 / 324 / 10 |
| /learn/how-to-write-prompts | 10 / 2,728 / 10.4 | 9 / 1,441 / 11.9 |
Read it straight. Impressions fell by roughly half, clicks by a third, and two guides lost ten to twenty positions. Click-through rate rose by almost a point and the number of URLs earning impressions went up, because pages that were never in the sitemap on the old build now are. None of that is what the “your SPA is invisible” articles predict. It is also not a clean experiment: the same weeks carried summer seasonality, retitled pages, a retired pricing page and whatever Google shipped in August. We cannot separate those, and we say so rather than credit or blame the stack.
What the move did buy is control, and control is what the rest of this page is about: we can see what the crawler sees, ship structured data everywhere, regenerate the sitemap on every change, and fail a build that goes thin. On a Lovable app since May 2026, most of that is available too. The mistakes below cost more than the rendering ever did.
What actually holds a Lovable app back in search?
- A sitemap that never changes. Our Lovable build shipped a static sitemap with every lastmod set to the day it was generated. Two months after we published new pages, Google's URL Inspection still reported them as unknown, and the sitemap dates were part of the reason. Regenerate lastmod when a page materially changes and resubmit; Lovable's review checks the sitemap exists, not whether it is honest.
- One page per app. A landing page has one query it can win. Lovable's prompts default to one route; ours ask for the public pages a channel needs, which is why the landing page prompts carry an SEO variant with its own URL per intent and a sitemap-and-metadata prompt in the same category.
- No internal links. A crawler reaches a page through links, and a Lovable app built screen by screen usually has a nav and nothing else. This site now fails its build if any indexable URL has fewer than eight contextual inbound links from other pages, because four of our kit pages sat at one to three for two months.
- Metadata written by the model. Lovable writes a title and description on request; it does not know which query the page should win. Give it the query. Our prompting guide covers the skeleton, including the metadata line.
- Nothing worth citing. Google's and Lovable's advice converge on the same point: the rendering is table stakes, the content ranks. A page with a definition, a measured number and a named source gets quoted by the AI engines Lovable lists; a page of adjectives does not, on any stack.
What does Lovable's built-in SEO review find?
We asked for one in the chat of the SaaS project built earlier on 26 September 2026 for the prompt examples page, with no code changes allowed. The docs describe the review as “on-demand audits for sitemap, robots.txt, metadata, structured data, semantic HTML, content structure, alt text, canonical tags, indexing, and AI readiness” with “Try to fix” on each finding.

It cost 1.1 credits, read from the workspace credits page before and after (62.4 to 61.3), ran three tool calls, and reported “Passing (5 of 6 checks)”: crawler rules, page basics, site icon, search metadata and social preview. The one failure was “No sitemap”, deferred because the project “isn't published yet and has no public web address”. Then it said the thing this whole page is about, unprompted: “Cadence is a sign-in product with one public landing page, so search visibility will mostly depend on publishing and getting mentioned elsewhere, not on technical tweaks.”
The review is a good first pass and a poor last one. It cannot tell you that the app has one page where it needs twenty, or that no other site links to it, which are the two findings that decided our own numbers above, though its closing sentence points at both. The credits guide covers what a review message costs; the common mistakes page has the rest of the list that the review does not check.
Sources
All checked on 26 September 2026. Search Console and crawler measurements are in src/data/lovableSeoMigration.ts in the site repository; the Lovable build is kept in the repository as legacy/.
Frequently asked
Is a Lovable app bad for SEO?↓
Why does an SEO tool say my Lovable site has no content?↓
Should I move a Lovable app to Next.js for SEO?↓
How do I run Lovable's SEO review?↓
Does Lovable generate a sitemap and robots.txt?↓
What about AI search engines?↓
Related reading
- landing page prompts with an SEO variant
One URL per intent, sitemap and metadata prompts included.
- how to write prompts for Lovable
The skeleton, including the metadata line.
- common Lovable mistakes
The list the SEO review does not check.
- how Lovable credits work
What a review or a plan message costs.
- three prompts and what they built
The project the SEO review ran on.
- the Lovable app builder guide
Where publishing and the review live in the editor.
- getting the first 100 users
Search is one channel; pick it on purpose.
- Lovable vs Cursor
What moving the code out changes, and what it does not.
- free build kits
Public pages and schemas that survive a crawl.
- idea to app
Publishing is step five of six.
- the CLAUDE.md file behind this site
The frozen-URL and sitemap rules, in the file.
Written by

Marco Kohns
Founder of ProtoBites - Venture Growth Studio
Growth PM at a Silicon Valley scale-up (a16z and General Catalyst backed), ex-Techstars where he consulted 13 early-stage startups, Reforge-trained. Every prompt on this site comes out of shipping ProtoBites' own portfolio products.