Your Lovable app is probably not broken
Somebody told you to run a free SEO checker and it came back saying your site is empty. According to Lovable’s own documentation, that tool was looking at something Google never sees.
Have Licheo make it findableLovable serves pre-rendered HTML only to verified crawlers such as Google, Bing, ChatGPT, Perplexity, Claude and Gemini. Third-party SEO scanners and your own browser are not on that list, so they receive the JavaScript shell and report an empty page accurately. Apps created from 13 May 2026 use server-side rendering instead, where everyone gets real HTML.
Why does my SEO checker say my Lovable app is empty?
Lovable’s documentation states that pre-rendering is only served to verified crawlers: Google, Bing, social preview bots, and AI engines including ChatGPT, Perplexity, Claude and Gemini. It adds that third-party SEO scanners will see the regular single-page-app shell rather than the pre-rendered HTML.
So two different versions of your site exist, depending on who is asking. Google asks and gets real HTML with your content in it. A random SEO tool asks and gets the shell, because it is not on the verified list. The tool then reports, accurately, that it found nothing. It is not lying. It is telling you the truth about what it received, which is a different thing from what Google received.
The same applies to the view-page-source test that gets recommended everywhere. Your browser is not a verified crawler either, so you will see the shell too. This is worth understanding properly, because the panic it causes is real and the rebuild it sometimes triggers is expensive and unnecessary.
How do I check whether Google can read my Lovable app?
Do not use a third-party scanner to answer this question about a Lovable app. Use Google itself, which is the only opinion that counts.
- Type site:yourdomain.com into Google. This lists what Google has actually indexed from your domain. If your pages are there, the conversation is over.
- Use the URL Inspection tool in Google Search Console, choose to test the live URL, and read the rendered HTML Google fetched. This is definitive, because it is Google showing you what Google got.
- If you are comfortable on a command line, request your page with a Googlebot user agent string. You will see the pre-rendered version rather than the shell.
Is my Lovable app server-side rendered or pre-rendered?
According to Lovable’s documentation, apps created from 13 May 2026 use TanStack Start with server-side rendering. Every request returns fully rendered HTML, for humans and crawlers alike, with no split between what a person sees and what a bot sees.
Apps created before that date get the other arrangement: on-request pre-rendering, served to the verified crawler list only. Both work, but they behave differently under inspection.
If your app was built after 13 May 2026, view source will show your content, and if it does not then something genuinely is wrong and worth investigating. If it was built before, view source will show a shell and that is expected. If you cannot remember when you started, the view-source test itself tells you which one you have.
Does Lovable generate a sitemap for me?
Lovable’s documentation is direct that sitemaps, robots.txt and metadata are not always generated up front. There is likely no /sitemap.xml on your app right now, and you can check by visiting that path.
If your app has pages driven by a database, such as guides, listings or profiles, then a hand-written sitemap will be out of date within a week. Generate it from the same source the pages come from, so it cannot drift. An edge function producing XML from your database is the usual approach and it is not much work.
Then submit it in Google Search Console. A sitemap nobody has been told about does very little.
Why do all my Lovable pages share one title?
This is the most common real defect in Lovable apps. By default a Lovable app ships one set of meta tags in index.html, so every route shares one title, one description and one Open Graph image. A search engine sees your ten pages and reads ten identical labels, which looks a great deal like one page repeated ten times.
Lovable’s documentation is explicit that unique og:title, og:description and og:image values per route are your responsibility. Ask Lovable for a small hook that sets document metadata per page, then call it at the top of every page component with values specific to that page.
Write the titles as answers rather than slogans. A page that explains one thing should be titled after the thing it explains.
What structured data should a Lovable app add?
Lovable’s review tooling flags pages that qualify for a Google Search feature but carry no markup for it. That flagging is useful, but the markup itself is something you have to ask for.
Use SoftwareApplication on the homepage, Article on guides, and FAQPage on anything with genuine questions and answers. Add Organization once, with your logo and social profiles, so the entity behind the app is unambiguous to a machine.
Do not mark up things that are not actually on the page. That is checkable, and being caught is worse than having no markup at all.
Why does my Lovable app need more than one page?
No amount of technical work fixes a site that only talks about one subject. If your Lovable app is a single screen, then there is precisely one search you could ever appear for, and it is almost certainly the most competitive phrasing in your category.
This is a content problem rather than a Lovable problem, and it is genuinely the largest opportunity most people have. The rendering was probably never your issue, and while everybody argues about it the real gap sits untouched.
Part of a larger guide
This page is one part of Why is nobody using the app you built?. The other parts:
Questions people ask
- Why does my SEO checker say my Lovable app is empty?
- Because it is not on Lovable’s verified crawler list. Lovable’s documentation states that pre-rendering is served only to verified crawlers such as Google, Bing, ChatGPT, Perplexity, Claude and Gemini, and that third-party SEO scanners will see the regular shell instead. The tool is reporting what it received, which is not what Google received.
- Is my Lovable app server-side rendered?
- It depends on when you created it. Lovable’s documentation says apps created from 13 May 2026 use TanStack Start with server-side rendering, where every request returns fully rendered HTML to everyone. Apps created before that date use on-request pre-rendering served only to verified crawlers.
- Should I rebuild my Lovable app in Next.js?
- Almost certainly not. The rendering is very likely already handled, either by server-side rendering on newer apps or by crawler-targeted pre-rendering on older ones. Confirm with Google Search Console first. A rebuild triggered by a misleading third-party scanner is expensive and unnecessary.
- Does Lovable generate a sitemap automatically?
- Not reliably. Lovable’s documentation says sitemaps, robots.txt and metadata are not always generated up front, so visit /sitemap.xml and check. If your pages come from a database, generate the sitemap from that same source so it cannot fall out of date, then submit it in Google Search Console.
- Why do all my Lovable pages have the same title?
- Because a Lovable app ships one set of meta tags in index.html by default, shared across every route. Lovable’s documentation is explicit that unique per-route og:title, og:description and og:image values are your responsibility. Ask for a hook that sets document metadata per page and call it in every page component.
- Can I trust view page source on a Lovable app?
- Only if your app was created from 13 May 2026 onwards, when everyone receives the rendered version. On older apps your browser is not a verified crawler, so you will see the shell even though Google sees your content. Use the URL Inspection tool in Search Console instead.
Keep reading
Want a second pair of eyes on your Lovable app
We will show you exactly what Google and the AI assistants are receiving from your app right now, and which of the four gaps is actually costing you users.
Have Licheo make it findable Read the full vibe coding guide