Why Lovable apps often struggle with SEO
Lovable generates React single-page apps built with Vite. The server sends an almost empty HTML file with a single <div id="root">, and your content only appears once the browser runs the JavaScript bundle.
- Google can render JavaScript, but it does so in a second pass that can be delayed, and indexing is less reliable than with plain HTML.
- AI crawlers such as GPTBot, ClaudeBot and PerplexityBot mostly read raw HTML only. An app rendered only in the browser looks empty to them.
- Link previews on LinkedIn, Slack, WhatsApp or X only read the meta tags in the initial HTML, never the ones your React code sets later.
This checker fetches your page exactly like a crawler that doesn't run JavaScript, so you see what these bots see.
What the checker tests
Crawlability
- Content visible without JavaScript: how many words exist in the raw HTML.
- Indexability: no
noindexin the robots meta tag or the X-Robots-Tag header. - robots.txt: search engines and AI crawlers are not blocked.
- XML sitemap: declared in robots.txt or available at
/sitemap.xml. - HTTPS: the page is served securely.
Meta tags
- Title tag and meta description, present and at a sensible length.
- H1 heading in the HTML crawlers receive.
- Canonical URL pointing to your own domain.
- Structured data (JSON-LD) that is valid.
- Page language declared on the
<html>tag.
Social sharing
- Open Graph tags (
og:title,og:description,og:image) with an absolute image URL. - X (Twitter) card for large previews.
To see the actual cards on each network, use our Open Graph & favicon preview.
Lovable specifics
- Default Lovable meta tags: "Lovable Generated Project", author "Lovable", the default preview image and
@lovable_devleft inindex.html. - Custom domain: whether your app still runs on a
lovable.appsubdomain.
How to fix the most common issues
1. Replace the default meta tags
Every new project ships with placeholder values in index.html. You can ask Lovable directly:
Update index.html: set the title to "[Your app] – [what it does]", write a 150-character meta description, remove the "Lovable" author tag, set og:image and twitter:image to /og-image.png, and set twitter:site to @[your handle].
2. Give each page its own title and description
A single-page app shares one index.html, so every route has the same title by default. Ask Lovable to add react-helmet-async and set a unique title, description and canonical URL on each route.
3. Make your content visible without JavaScript
This has the biggest impact. Two approaches work with Lovable apps:
- Prerendering at build time: generate a static HTML file for each public route when the app is built, so crawlers receive real content.
- A prerendering service: it serves a rendered snapshot of your pages to bots while visitors keep using the normal app.
4. Add robots.txt and sitemap.xml
Put both files in the public/ folder of your project. List every public route in the sitemap, reference it in robots.txt, then submit it in Google Search Console.
5. Use a custom domain
Links and authority you earn on a lovable.app subdomain don't carry over if you move later. Connect your own domain early and use it as your canonical URL.
Want the full walkthrough? Read our guide SEO with Lovable.
Frequently asked questions
Is Lovable good for SEO?
Lovable builds React single-page apps rendered in the browser. Google can index them, but the raw HTML is nearly empty, so indexing is slower and less reliable, and crawlers that don't run JavaScript see nothing. With proper meta tags, a sitemap and prerendered HTML, a Lovable app can rank well.
Why does Google show "Lovable Generated Project" for my site?
That text is the default meta description in the index.html of every new Lovable project. Replace it with your own description, then request a new crawl in Google Search Console.
Can ChatGPT, Claude or Perplexity see my Lovable app?
Most AI crawlers read the raw HTML without executing JavaScript. If your content is only rendered in the browser, they see an empty page. Prerendering your pages fixes this.
Is this SEO checker free?
Yes. The checker is free, requires no signup and works with any public URL, whether it runs on a lovable.app subdomain or a custom domain.