DEV Community

Cover image for Why Your Lovable App Isn't Showing Up in Google (And How I Fixed It)
Charles Perret
Charles Perret

Posted on

Why Your Lovable App Isn't Showing Up in Google (And How I Fixed It)

I built a SaaS landing page with Lovable last month. Shipped it in a weekend, felt great about it.

Then I checked Google Search Console.

Zero impressions. Zero clicks. For two weeks.

Turns out, building fast with AI tools creates a problem nobody talks about: your app only exists in one language, and Google doesn't know what to do with it.

The Problem Nobody Warned Me About

When you ship a React app with Lovable, Bolt, or v0, you get:

  • A working product ✅
  • A deployed URL ✅
  • SEO-ready pages ❌

Here's what I mean. Google crawls your site, sees English content, and indexes it for English queries. But 75% of internet users prefer content in their native language. You're invisible to most of the world.

I wanted to add French and German to reach European users. Simple, right?

What I Tried First (And Why It Failed)

Attempt 1: react-i18next

The "proper" way to do React internationalization. Here's what that looks like:

// Create translation files for EVERY string
// /locales/en/translation.json
{
  "hero.title": "Build faster with AI",
  "hero.subtitle": "Ship your product in days, not months",
  "cta.button": "Get Started",
  // ... 200 more keys
}

// /locales/fr/translation.json
{
  "hero.title": "Construisez plus vite avec l'IA",
  "hero.subtitle": "Livrez votre produit en jours, pas en mois",
  "cta.button": "Commencer",
  // ... 200 more keys (pray you didn't miss any)
}
Enter fullscreen mode Exit fullscreen mode

Then wrap every single text element:

import { useTranslation } from 'react-i18next';

function Hero() {
  const { t } = useTranslation();
  return (
    <h1>{t('hero.title')}</h1>
    <p>{t('hero.subtitle')}</p>
    <button>{t('cta.button')}</button>
  );
}
Enter fullscreen mode Exit fullscreen mode

The reality with Lovable: Every time I prompted a new feature, I had to pray the LLM would update the JSON files correctly. Half the time it didn't. I spent more time fixing translation keys than building features.

Attempt 2: Weglot

Weglot is the industry standard. Paste a script, get translations.

Then I saw the pricing: €490/year for my small landing page. That's more than my hosting, domain, and analytics combined.

For a side project testing product-market fit? Hard pass.

Attempt 3: Google Translate widget

Don't. Just don't. It looks terrible, breaks your layout, and Google specifically says machine-translated content via widgets doesn't help SEO.

What Actually Worked

I found lovalingo — built specifically for Lovable/Bolt/v0 apps.

The setup was wild:

  1. Paste your site URL
  2. Pick your languages
  3. Copy one prompt into Lovable
  4. Done

No JSON files. No wrapping every <p> tag. No €490 invoice.

Here's what convinced me it wasn't just another translation widget:

Zero-flash rendering — The translated content loads server-side. No awkward flash of English before French appears.

Automatic SEO — It generates proper hreflang tags and creates a sitemap with all language versions. This is the part that actually gets you indexed.

<!-- What lovalingo adds automatically -->
<link rel="alternate" hreflang="en" href="https://myapp.com/"/>
<link rel="alternate" hreflang="fr" href="https://myapp.com/fr/"/>
<link rel="alternate" hreflang="de" href="https://myapp.com/de/"/>
<link rel="alternate" hreflang="x-default" href="https://myapp.com/"/>
Enter fullscreen mode Exit fullscreen mode

One prompt install — This is the entire setup for Lovable:

Install lovalingo translation with key [YOUR_KEY] 
for languages: French, German
Enter fullscreen mode Exit fullscreen mode

The LLM handles the rest. No manual file management.

The Results (30 Days Later)

Metric Before After
Languages 1 3
Indexed pages 12 36
Impressions (non-EN) 0 847
Setup time - 5 min

The most surprising part: I started ranking for German keywords I never targeted. Turns out there's way less competition for "KI Landing Page erstellen" than "AI landing page builder".

When This Makes Sense (And When It Doesn't)

Use this approach if:

  • You're building with Lovable, Bolt, v0, or similar AI tools
  • You want multilingual SEO without managing translation files
  • Your budget is "indie hacker" not "enterprise"

Stick with i18next if:

  • You need pixel-perfect control over every translation
  • You have dedicated translators and a localization pipeline
  • You're building a complex app with dynamic content that changes based on user data

The Bigger Lesson

AI coding tools optimized for speed, not global reach. That's fine — speed matters when you're validating ideas.

But if you're past validation and want actual users, remember: the world is bigger than English-speaking Product Hunt.

Adding translations isn't just about being nice to international users. It's about 3x-ing your addressable market with minimal effort.


Have you dealt with i18n in your Lovable/Bolt projects? What worked for you? Drop a comment. Peace.

Top comments (0)