Lovable SEO: check what Google actually sees.
Lovable SEO in 2026 starts with one question: which stack is your project on? Apps created from
13 May 2026 run TanStack Start with server-side rendering, so every visitor and crawler receives full HTML.
Older React + Vite apps receive pre-rendered HTML only when a verified crawler such as Googlebot asks.
On both stacks Lovable says an external prerendering service is unnecessary. What still keeps a Lovable site
off Google is configuration: the wrong domain, a stale sitemap, a stray noindex. This guide shows
how to confirm each one on the live site.
What Lovable serves to Google in 2026
Lovable documents two hosting stacks, and they behave differently for anything that is not a verified crawler.
New apps: TanStack Start with server-side rendering
Projects created from 13 May 2026 return fully rendered HTML to every request: people, Googlebot, AI crawlers and SEO scanners all receive the same page. Any outside check of the live URL shows what Google receives.
Older apps: React + Vite with crawler-only pre-rendering
Human visitors get the single-page app. When a verified crawler arrives (Google, Bing, social-preview bots, and AI engines such as ChatGPT, Perplexity, Claude and Gemini), Lovable renders the page at request time and returns the HTML. You can upgrade an older project to TanStack Start from inside Lovable; it uses credits and changes nothing live until you publish again.
Why an SEO checker may see an empty page
On React + Vite projects, Lovable serves the pre-rendered version only to verified crawlers. Third-party SEO scanners, link checkers and the tdkseo live check receive the single-page-app shell. If a scanner reports that the served HTML has almost no text and your project is on React + Vite, confirm what Google receives with URL Inspection in Search Console before changing anything. To see which stack you are on, fetch the page without JavaScript and look for a sentence from your homepage:
curl -s https://www.yourdomain.com/ | grep -c "a sentence from your homepage"
# 1 or more: the server sends your content (TanStack Start)
# 0: the server sends an app shell (React + Vite, pre-rendered for verified crawlers only)
Where a Lovable site can be indexed
Only publicly published apps can be indexed. Lovable's documentation states that private projects, unpublished
projects and branded workspace URLs in the form https://{app-name}.{workspace-subdomain}.lovable.app
are never indexable. To build search presence, connect a custom domain, mark it as the primary domain so the other
connected domains redirect to it, and verify that domain in Search Console. Lovable positions a plain
lovable.app subdomain for MVPs, demos and projects that live on social or paid traffic. If you
change the custom domain later, the Search Console verification has to be redone.
Lovable's built-in SEO review, and what a live check adds
Lovable ships its own audit under More → SEO & AI search. It is free on all plans; applying a fix uses regular message credits.
What the built-in review checks
Page basics, metadata (duplicate titles, placeholder text, canonicals pointing to the homepage), Open Graph,
structured data, homepage content structure, robots.txt, the sitemap (invalid XML, relative URLs,
host mismatches, routes out of sync with the sitemap), indexing blockers such as a sitewide
noindex or an X-Robots-Tag: noindex header, and Search Console setup on published
sites. It runs when you start it; Lovable does not rerun it automatically on publish, and a finding marked
"Fixed" is only confirmed by the next scan. It no longer runs Lighthouse, so speed and accessibility need
PageSpeed Insights.
What an independent live check adds
An outside check reads the deployed domain the way a stranger reaches it: the redirect chain between apex and www, the response headers, the canonical on the final URL and the hosts listed in the live sitemap. It is most useful after a domain change, after an agent edits routing, or when you want evidence to hand to someone else. If you build only with Lovable and rerun its review after every publish, much of this overlaps, and the React + Vite limitation above applies. The live SEO check shows the earliest blocker it can prove, with the evidence, and marks anything it cannot see from outside as unknown.
Six blockers to check on the live site
Work through them in this order: each check assumes the earlier ones pass. A wrong host makes every later answer
unreliable, and a noindex makes the sitemap irrelevant.
The domain, canonical and sitemap disagree
The page declares https://www.yourdomain.com/ as canonical while the sitemap lists
https://yourdomain.com/ or an old lovable.app address, or the apex domain answers
200 instead of redirecting. Google then sees two candidates for the real address. All three should agree:
the URL you land on, the canonical tag and every host in the sitemap.
curl -sI https://yourdomain.com/ | grep -i -E "^(HTTP|location)"
curl -s https://www.yourdomain.com/ | grep -i 'rel="canonical"'
curl -s https://www.yourdomain.com/sitemap.xml | grep -o "<loc>[^/]*//[^/]*" | sort -u
The live check covers this one: host, redirects, canonical target and sitemap hosts.
A leftover noindex
A noindex robots meta tag, or an X-Robots-Tag: noindex response header, keeps the
page out of Google while it looks normal in a browser. These often survive from a staging setup or an
agent's "hide this while we build" change.
curl -sI https://www.yourdomain.com/ | grep -i x-robots-tag
curl -s https://www.yourdomain.com/ | grep -i 'name="robots"'
The live check covers the meta tag and the header.
The sitemap is missing, stale or invalid
After a few rounds of "ask the agent to add a page", the sitemap can fall behind: new routes missing,
deleted routes still listed, or XML that no longer parses. Confirm it loads, parses, is named in
robots.txt, and lists the pages you actually publish. In Search Console, submit it after
publishing, because Google fetches it from the live site.
The live check covers reachability, XML validity, the Sitemap: line and whether the checked page
is listed.
Routes share one title, or canonicals point to the homepage
Single-template apps often give every route the same title and description, or a canonical that points every
page to /. Google then treats inner pages as duplicates of the homepage. Each page you want found
needs its own title, description, one H1 and a canonical pointing to itself.
The live check reads one URL at a time, so run it on two or three important routes and compare. Lovable's review looks across routes for duplicate titles.
Missing pages return 200 (soft 404s)
A client-side router can answer HTTP 200 for a URL that does not exist and then render "not found" in the browser. Crawlers spend time on those ghost URLs. Request a path that should not exist and read the status code; it should be 404.
curl -s -o /dev/null -w "%{http_code}\n" https://www.yourdomain.com/this-page-does-not-exist
Check this one by hand; the live check does not test it yet.
AI crawlers are blocked by accident
ChatGPT, Claude and Perplexity run their own crawlers (GPTBot and OAI-SearchBot, ClaudeBot, PerplexityBot). A
robots.txt group or a CDN bot-protection rule can block them while Googlebot passes. Read
robots.txt for those user agents, and check your CDN's bot settings if you put one in front of
the site.
The live check reads the rules for *, Googlebot and Bingbot; check the AI crawler groups by
hand.
Hand the fix to your AI agent
Once you know the blocker, the fix is usually a small, well-defined change, which suits an agent. Give it three things: the evidence, the expected result, and how you will verify it. For blocker 01:
"Our sitemap at https://www.example.com/sitemap.xml lists https://example.com URLs while every page's canonical is https://www.example.com. Make the sitemap use the same www host as the canonicals. Done means: every sitemap URL starts with https://www.example.com and returns 200."
After you publish, verify on the live site again. The live SEO check writes a task like this for the blocker it finds, and the seven-stage launch roadmap covers what comes after indexing: search demand, content and measurement.
FAQ
Do I still need a prerendering service for a Lovable site?
Lovable's documentation says Lovable-hosted projects do not need one on either stack. New apps render on the server; older React + Vite apps are pre-rendered for verified crawlers. Check the live URL and URL Inspection before paying for a proxy.
Why is my Lovable site not showing on Google?
Start with the basics in order: the project is published, it is served from a custom primary domain, nothing
sends noindex, and the sitemap is submitted in Search Console. Then run the six checks above and use
URL Inspection on your most important page.
How long until Google indexes a new Lovable site?
Lovable's documentation gives "a few hours to a few days, and sometimes longer". Fixing configuration removes the delays you control; the rest depends on Google's crawl schedule and how many other sites link to yours.
Do I need an llms.txt file?
For Google, no. Google's guide to generative AI features says Google Search ignores llms.txt, and Lovable does not require one either. Keeping a file for other services does no harm.
Can I check my site's SEO without Search Console?
Partly. The live HTML, headers, robots.txt and sitemap can be checked without an account, with the
React + Vite caveat above. Whether Google has indexed a URL, and what it rendered, can only be confirmed inside
Search Console.