What a New Lovable Website
Is Missing
A Lovable project created recently isn't invisible to crawlers. In our test it already put its content in the HTML. But it was missing a sitemap, a canonical tag and structured data. Here's what it does well, what to add, and tested code for each.
From our test of one Lovable project, 16 October 2026.
What we tested
We asked Lovable for a three-page café website, exported the code, ran it, and measured the published site. We then added the missing pieces below and checked them in both the dev server and a production build.
- Stack: TanStack Start (react-start 1.168), React 19.2 and Vite 8.1, which renders on the server.
- Published site: content in the HTML on every page, a different title and description per page, a share image, a 404 for a made-up URL and a
robots.txt. - Missing:
sitemap.xml(404), a canonical tag, and structured data.
What we haven't tested. How Lovable's editor or GitHub sync handles these edits, deploying them to Lovable's own hosting (the production build targets Cloudflare, which we couldn't preview locally; a Node build of the same code behaved the same), and older Lovable projects. This is one project from one prompt.
First, which kind of Lovable site do you have?
Run the 10-second check, or look in package.json. If it depends on @tanstack/react-start, your site renders on the server and this page applies. If it's a React and Vite app with an empty <div id="root"> in View Page Source, it renders in the browser. Lovable says older projects now get pre-rendered snapshots automatically, so run the check on your live site to see what yours serves. If it's still empty, see the React and Vite guide.
What it already does well
- Content is in the HTML, so crawlers that don't run JavaScript can read it.
- Each page sets its own title and description in the route's
head(), along with share tags. - A made-up URL returns a 404, not a 200.
- A robots.txt exists and allows the main crawlers.
What to add
Try Lovable's own review first. Lovable's SEO and AI search reviewflags missing canonical tags and sitemaps, and can add structured data and meta tags in one click. We tested the code below without it and haven't tested the review. If it covers these items, you won't need the code. Use the checks at the end either way.
1. A sitemap.xml
Put a file called sitemap.xml in the public folder, listing your real pages. A plain file was served correctly in both the dev server and the production build.
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url><loc>https://yoursite.com/</loc></url> <url><loc>https://yoursite.com/menu</loc></url> <url><loc>https://yoursite.com/contact</loc></url> </urlset>
Then add one line to public/robots.txt so crawlers find it:
Sitemap: https://yoursite.com/sitemap.xml
2. A canonical tag, a share image and structured data
Each route has a head() that already sets the title and description. Add links for the canonical tag, a share image to meta, and scripts for structured data. This is the homepage route:
// src/routes/index.tsx
export const Route = createFileRoute("/")({
head: () => ({
meta: [
{ title: "Harbour Street Coffee — Falmouth Café" },
{ name: "description", content: "Speciality coffee, fresh bakes and harbour views." },
{ property: "og:title", content: "Harbour Street Coffee — Falmouth Café" },
{ property: "og:description", content: "Speciality coffee, fresh bakes and harbour views." },
{ property: "og:image", content: "https://yoursite.com/og-image.jpg" },
],
links: [{ rel: "canonical", href: "https://yoursite.com/" }],
scripts: [
{
type: "application/ld+json",
children: JSON.stringify({
"@context": "https://schema.org",
"@type": "CafeOrCoffeeShop",
name: "Harbour Street Coffee",
url: "https://yoursite.com/",
address: {
"@type": "PostalAddress",
streetAddress: "14 Harbour Street",
addressLocality: "Falmouth",
postalCode: "TR11 3AB",
addressCountry: "GB",
},
}),
},
],
}),
component: Index,
});Do the same links line on the other routes, with each page's own address. We tested these additions on the homepage route, where the canonical tag, share image and structured data all appeared in the server-rendered HTML, with one title. Use your real business details, and use a type that fits (for example Restaurant, Dentist or HairSalon).
On the share image. Our published site already had a share image, which wasn't in the exported code. Lovable appears to add one when you publish. Check what yours looks like when the link is shared, and replace it with one of your own if you like.
Check it worked
- View Page Source on the live page. You should find the canonical link, the
og:imagetag and aapplication/ld+jsonscript. - Open
/sitemap.xml. It should be XML, not your homepage. A status check alone isn't enough: on a client-rendered site a missing file can return 200 with the homepage. - Run
curl -I https://yoursite.com/no-such-page. It should say 404. - Paste your structured data into Google's Rich Results Test.
Then work through the rest of the launch checklist: Search Console, analytics and conversion tracking, and your Google Business Profile.
Frequently Asked Questions
Is my Lovable website invisible to Google and ChatGPT?
A project built on TanStack Start, which the Lovable project we tested uses, sends its content in the HTML, so a crawler that doesn't run JavaScript can read it. If your project is older and built as a client-side React app, check with View Page Source. The 10-second check on the main page covers both.
Do I need to change my page content?
No. In our test, nothing about the page content changed. We added a sitemap, a canonical tag, a share image and structured data around it.
Will adding structured data get me recommended by ChatGPT?
Not by itself. Structured data gives crawlers your business details in a form they can read reliably, but whether an AI recommends a business also depends on reviews, listings and mentions elsewhere on the web.
Can I make these changes inside Lovable?
The changes are small edits to your route files and one file in the public folder. We tested them on an exported copy of the code, and we haven't tested how Lovable's editor or its GitHub sync handles them. After any change, publish and run the checks on the live site.
Sources
- TanStack Start, the framework the project we tested uses
- Lovable: SEO and AI search
- Our test of one Lovable project and one Replit project (October 2026)
Check the
technical side
Chad's free scan checks how crawlers read your site, and gives every technical issue with the fix.
Run the free scan →