How to Make Your Lovable Site
Visible on Google
The complete guide for non-developers and developers alike
March 2025 · 8 min read
Introduction
Lovable has been one of the best things that happened to me since I started freelancing. You describe a site, it builds it. You ask for a change, it makes it. No code, no agency, no waiting forever for someone to move a button two pixels to the left — and I can focus on the actual work: strategy, copy, client relationships.
But there's a moment that always comes. The site is done, it looks great, you send the link to a client or post it on LinkedIn — and someone asks: "Is it on Google yet?"
And it isn't.
Not because it's new. Not because Google hasn't had time. Because Google literally cannot read it. The site is there, running perfectly, looking exactly how you designed it — and to every search engine crawler on the planet it's a blank page.
I discovered this working on real projects for real clients. And this guide is what I put together to fix it — for myself first, and now for anyone starting from scratch. Five steps, two modes: one for people who want to understand what they're doing, one for people who just want it to work. Both get to the same place.
What You'll Learn
By the end of this guide your Lovable site will be fully readable by Google, Bing, and AI crawlers. You'll also have a professional deployment setup that doesn't burn through your free credits or push half-finished work live by accident.
No coding required. Two versions of every step — pick the one that suits you.
Index
- Deploy to GitHub
- Connect GitHub to Netlify
- Install the Prerendering Extension
- Create the netlify.toml file
- Force a rebuild and pause automatic deploys
- Before vs After
- Why This Setup Wins
- The WordPress Tradeoff
- What I Learned
Why Your Site Is Invisible to Google
Lovable builds sites with React — a framework that renders everything in the browser using JavaScript. That's why your site feels fast and smooth to users.
The problem is that Googlebot doesn't work like a browser. It requests a URL and reads the raw HTML the server returns. On a standard Lovable/React site, that HTML looks like this:
<div id="root"></div>No content. No headings. No text. To every crawler — Googlebot, Bingbot, AI crawlers — your site is a blank page. It exists. Google just can't see it.
The fix takes five steps.
Step 1 — Deploy to GitHub
🤓 Dev Mode
Lovable connects natively to GitHub. Create a free account at github.com if you don't have one. In Lovable go to Connect → GitHub and authorize access. Every change you publish in Lovable automatically pushes to your GitHub repo. This is your backup, your version control, and your bridge to deployment.
😶 Just Follow Along
Go to github.com and sign up — it's free. Then in Lovable click Connect → GitHub and link the two. That's it. Nothing else to do here.
Step 2 — Connect GitHub to Netlify
🤓 Dev Mode
Create a free account at netlify.com. The free plan includes 300 monthly build credits — more than enough for portfolio sites and small client work. Each deploy costs around 15 credits, so you have roughly 20 deploys per month on the free plan. If traffic or needs grow: Pro is €8/month, Enterprise €20/month.
Go to Add new project → Import from GitHub, select your repo, and Netlify handles the rest.
😶 Just Follow Along
Go to netlify.com and sign up free. Click Add new project → Import from GitHub, choose your site, and hit deploy.
Free plan is fine for now. If it ever costs anything: €8/month for a bigger site, €20/month for a very big one.
Step 3 — Install the Prerendering Extension
🤓 Dev Mode
In the Netlify left sidebar click Extensions. Search for Prerendering and install it. Then go to Site Settings → Build & Deploy → Prerendering to configure.
What it does: when a bot requests a page, Netlify intercepts the request, executes the JavaScript, and returns a full HTML snapshot. The bot reads real content. Users still get the fast interactive React experience. No code changes, no migration.
Before configuring the settings, go back to Lovable and send this prompt:
"Make sure my site is fully compatible with Netlify prerendering. Check that all pages have proper meta tags, titles, and descriptions, and that every route is accessible by bots."
Then set the plugin settings:
- Cache duration: 720 hours (maximum allowed). Cache clears automatically on every deploy — bots always get fresh content after each update, so maxing this out is safe.
- Stale-while-revalidate (SWR): 24 hours. If cache has expired, Netlify serves the old version while generating a new one in the background — no bot ever gets an empty response.
😶 Just Follow Along
In the Netlify left sidebar click Extensions. Search for Prerendering and install it.
Before setting it up, go back to Lovable and copy-paste this:
"Make sure my site is fully compatible with Netlify prerendering. Check that all pages have proper meta tags, titles, and descriptions, and that every route is accessible by bots."
Wait for Lovable to finish. Then go back to Netlify, go to Site Settings → Build & Deploy → Prerendering and set:
- Cache duration in hours: 720
- Stale-while-revalidate duration in hours: 24
Don't change anything else.
Step 4 — Create the netlify.toml File
🤓 Dev Mode
Without this file, any direct URL that isn't the homepage returns a 404 to the server. Bots can't access any internal page. Go back to Lovable and send this prompt:
"Create a netlify.toml file in the root of the project with SPA redirect rules"
Verify the file contains exactly this:
[[redirects]]
from = "/*"
to = "/index.html"
status = 200😶 Just Follow Along
Go back to Lovable and copy-paste this exactly:
"Create a netlify.toml file in the root of the project with SPA redirect rules"
When Lovable is done, check the file contains:
[[redirects]]
from = "/*"
to = "/index.html"
status = 200Don't change anything. Don't touch anything.
Step 5 — Force a Rebuild and Pause Automatic Deploys
🤓 Dev Mode
On Netlify go to Deploys → Trigger deploy → Deploy site to force a manual rebuild with all your changes. Wait for it to go green.
Then go to Site Settings → Build & Deploy → Build settings and click Stop builds.
This is important: every deploy costs approximately 15 build credits. On the free plan that's 300 credits per month — around 20 deploys. If Netlify auto-deploys every single Lovable change, you'll burn through your credits in days. With builds stopped, you control exactly when things go live. Finish a full round of changes in Lovable, then trigger one deploy manually. One session, one credit spent.
😶 Just Follow Along
On Netlify go to Deploys at the top → click Trigger deploy → Deploy site. Wait for it to go green.
Then go to Site Settings → Build & Deploy → Build settings and click Stop builds.
Why: every deploy eats about 15 credits. You only get 300 per month for free. If you leave it on automatic, Netlify deploys every single change you make in Lovable — you'll run out fast. Stop the builds, make all your changes in Lovable, then manually trigger one deploy when you're done. Smart, not wasteful.
Before vs After
Before — Google sees an empty div, no content. Internal pages return 404. Every Lovable change triggers an auto-deploy that burns credits. No cache, no SSL guarantee.
After — Google sees full HTML with headings, text, and links. Every page is accessible. You deploy manually, one session at a time. 720-hour cache that refreshes on every deploy. Free SSL, always on.
- vs Prerender.io: you'd pay hundreds per month for the same result. This is free and better integrated.
- vs WordPress: no plugins breaking on update, no Elementor wiping a layout at 11pm before a client presentation, no database to attack, no admin panel waiting to be brute-forced.
Why This Setup Wins
Netlify's prerendering extension costs a fraction of third-party services like Prerender.io — and it's better integrated. No separate account, no API keys, no additional service to maintain. The cache clears automatically on every deploy, which means it's always fresh without you doing anything. Set it once, forget it.
Netlify also gives you free SSL out of the box. Your site runs on HTTPS from day one — no certificate to buy, no renewal to remember, no plugin to handle it. It just works.
And that's the theme of this whole setup: Netlify's native extensions don't break. They don't conflict with each other. There's no ecosystem of third-party plugins fighting over the same resources, no mystery error after an update, no Stack Overflow rabbit hole at midnight. You install what you need from the Extensions panel, configure it once, and it stays configured.
The WordPress Tradeoff
Is all this setup worth it compared to just using WordPress?
Yes. Here's why.
Once this is configured, you never touch it again. No plugins breaking on update. No Elementor wiping out a page layout at 11pm before a client presentation — and I know because I've been there, in a past life. No WooCommerce conflicts. No security patches. No PHP errors you don't understand. No hosting that goes down because someone else on the shared server got hacked.
Your Lovable site is a static React app served from a global CDN. It loads in milliseconds. It doesn't have a database to attack. It doesn't have plugins to maintain. It doesn't have a WordPress admin panel waiting to be brute-forced.
The setup takes an afternoon. WordPress takes forever — and it never really stops.
What I Learned
Building with Lovable is genuinely fast. Deploying to Netlify is straightforward. But the gap between live and indexed by Google is a configuration problem that's completely invisible until you go looking for it — because your site looks and works perfectly in the browser the whole time.
The three things that matter:
- Prerendering makes your React content readable to bots.
- netlify.toml makes every page accessible, not just the homepage.
- Paused builds make your free credits last.
Fix these once. Then forget about them.
The best technical solution isn't always a rewrite.
Sometimes it's just knowing where to look.