Back to Learn

    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

    Lovable SEO hero: the guide title beside a terminal card comparing what Googlebot receives from the legacy Lovable SPA shell, zero characters of visible text, with the server-rendered pages of the same site

    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.

    What Lovable's documentation says each stack does for crawlers, read 26 September 2026
     Apps created from 13 May 2026Apps created before
    RenderingServer-side rendering with TanStack Start; rendered HTML on every requestOn-request pre-rendering of deployed public URLs
    Who gets rendered HTMLEveryoneVerified crawlers only: Google, Bing, social-preview bots, ChatGPT, Perplexity, Claude, Gemini
    What a scanner seesThe rendered page“Third-party SEO scanners, link checkers, and other agents will see the regular SPA shell, not the pre-rendered HTML.”
    How to verifyView source“use Google's URL Inspection tool, the Mobile-Friendly Test, or social-platform link debuggers”
    Review and researchSEO and AI search review in chat with Try to fix; Semrush research at no extra cost through 30 November 2026Same

    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.”

    How Google processes a JavaScript app, per Google's documentation
    1Crawlfetch the HTML2Queueseconds, or longer3Renderheadless Chromium runs JS4Indexrendered HTML5InspectURL Inspection shows it
    1. Crawl: fetch the HTML
    2. Queue: seconds, or longer
    3. Render: headless Chromium runs JS
    4. Index: rendered HTML
    5. 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:

    Characters of visible text a crawler receives without running JavaScript
    Lovable SPA shell (any page)0/templates, server-rendered4972/, server-rendered10042/learn/how-to-write-prompts21152/prompts, server-rendered128653
    Characters of visible text a crawler receives without running JavaScript
    Categorycharacters
    Lovable SPA shell (any page)0
    /templates, server-rendered4972
    /, server-rendered10042
    /learn/how-to-write-prompts21152
    /prompts, server-rendered128653

    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.

    Search Console totals for the whole site, four weeks before the cutover and four weeks five weeks after it
     Lovable build, 28 Jun to 25 Jul 2026Next.js build, 29 Aug to 25 Sep 2026Change
    Clicks525367-30%
    Impressions28,59113,495-53%
    Click-through rate1.84%2.72%0.88 points
    Pages with impressions1722+5
    The same eight URLs before and after the cutover: clicks, impressions and average position
     Before: clicks / impr. / pos.After: clicks / impr. / pos.
    /119 / 6,925 / 840 / 1,750 / 8.3
    /prompts102 / 5,014 / 10.9100 / 2,997 / 9.6
    /prompts/ui-ux102 / 2,363 / 985 / 1,045 / 7.8
    /prompts/landing-page87 / 3,746 / 8.663 / 1,756 / 9.7
    /learn/prompt-examples45 / 1,806 / 714 / 496 / 20.9
    /generator30 / 1,073 / 8.426 / 1,098 / 10.1
    /prompts/saas-app15 / 1,054 / 819 / 324 / 10
    /learn/how-to-write-prompts10 / 2,728 / 10.49 / 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?

    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. 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.

    Lovable's chat after asking for an SEO and AI search review of an unpublished SaaS project: the findings list with per-item fix buttons beside the app preview
    Lovable's SEO and AI search review on our unpublished SaaS test project, 26 September 2026: five of six checks passing, one failing (no sitemap, deferred until publish), and the model's own verdict on where visibility will come from.

    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?↓
    Not since 13 May 2026, on the rendering side. Lovable's docs say new apps use TanStack Start with server-side rendering, so every request returns rendered HTML, and older React + Vite apps get on-request pre-rendering served to verified crawlers. Our own Lovable-built site was indexed and collecting about 1,000 impressions a day before we left it. What a Lovable app still lacks is what every site lacks by default: pages worth ranking, internal links between them, and links from other sites.
    Why does an SEO tool say my Lovable site has no content?↓
    Because it is not a verified crawler. Lovable's docs are explicit that pre-rendering is served only to Google, Bing, social-preview bots and the AI engines, and that third-party SEO scanners and link checkers see the regular SPA shell. Ahrefs read our old Lovable build as 0 organic keywords while Search Console counted thousands of impressions a month. Check with Google's URL Inspection tool, not with a scanner.
    Should I move a Lovable app to Next.js for SEO?↓
    Not for rendering alone. We did it, and in the four weeks five weeks after the cutover our impressions were down 53% and clicks down 30% against the last four weeks on Lovable, while CTR rose from 1.8% to 2.7%. The move gave us control: a sitemap and robots file we generate, structured data on every page, a gate that fails the build if a page ships thin, and the same HTML for every visitor. It did not give us rankings. Content and links do that on either stack.
    How do I run Lovable's SEO review?↓
    Ask for it in the project chat. Lovable's docs describe an on-demand review covering sitemap, robots.txt, metadata, structured data, semantic HTML, content structure, alt text, canonical tags, indexing and AI readiness, with a Try to fix button on each finding. It also connects Google Search Console from the chat to verify the site and submit the sitemap, and keyword research runs on Semrush data at no extra cost through 30 November 2026 per the docs.
    Does Lovable generate a sitemap and robots.txt?↓
    Our Lovable build shipped both as static files in the public folder, with a lastmod that stayed at the date they were generated. That is the trap: a sitemap that never updates tells Google nothing changed. Whatever stack you are on, regenerate lastmod when a page materially changes and resubmit the sitemap in Search Console; our own late-July pages went uncrawled for two months partly because every entry still said July.
    What about AI search engines?↓
    Lovable's docs put ChatGPT, Perplexity, Claude and Gemini in the same verified-crawler list as Google and say the same things help: crawlable HTML, good metadata and clean content structure. The extra work is on the content: a definition a model can quote, numbers with a source next to them, and a named author. That is what the guides on this site do, and it is stack-independent.

    Related reading

    Written by

    Marco Kohns

    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.