For Lovable, Bolt and Vite + React sites

Your Lovable site is invisible to Google. This fixes it.

A Vite + React app sends the same empty page for every URL. Google, ChatGPT, Perplexity and link previews see a blank page with your home page's title on every route. Vite SEO Prerender adds one step after vite build that writes a real HTML page for every route and every language.

No server, no framework change. Static files for any host.

What Google sees

Same URL, same app. Open “view source” on each.

Before Every URL of a Vite + React app
<head>
  <title>My Lovable App</title>
</head>
<body>
  <div id="root"></div>
  <script src="/assets/index.js"></script>
</body>

No content, the same title on every page, no language versions.

After /fr/appartements-a-louer-a-montreal
<html lang="fr">
<title>Appartements à louer à Montréal</title>
<meta name="description" content="…">
<link rel="canonical" href="…/fr/appartements-…">
<link rel="alternate" hreflang="en" href="…">
<link rel="alternate" hreflang="fr" href="…">
<script type="application/ld+json">…</script>
<div id="root">
  <main><h1>Appartements à louer…</h1> …

Its own title, description, canonical, hreflang, structured data and readable content. React replaces it when the app loads.

What you get

  • A real page for every route and language

    Title, description, canonical URL, Open Graph and Twitter tags, and readable content inside #root.

  • Translated URLs with hreflang

    /apartments-for-rent ↔ /fr/appartements-a-louer, linked with hreflang and x-default. Languages are configurable.

  • Sitemap and robots.txt

    sitemap.xml with every language alternate, and the Sitemap line added to robots.txt.

  • Structured data

    JSON-LD on each page, from your own config, so search engines and AI tools know what the page is about.

  • Long-tail pages from your data

    One entry in a JSON file, or a row from your CMS or API, becomes one page per language.

  • Thin-page protection

    Pages without enough content stay reachable but get noindex and are left out of the sitemap.

  • Checks that fail the build

    Missing titles, wrong canonicals, missing hreflang links, thin content and sitemap mismatches stop the build before they reach Google.

  • Language switch for React Router

    A small helper finds the matching page in the other language, plus a ready-made switcher component.

  • Static output for any host

    Plain files for Netlify, Vercel, Cloudflare Pages or Apache. Build scripts need Node 20.10+.

See it on a live site

A bilingual real-estate directory demo, built with the same stack Lovable generates (Vite, React, shadcn) and prerendered by the kit, in English and French.

Open any page, then use view source (Ctrl+U, or ⌥⌘U on a Mac) to see the HTML a search engine receives.

How it works

  1. Copy the kit into your project

    Put the seo/ folder and seo.config.mjs next to vite.config.ts, and add one step to your build script:

    "build": "vite build && node seo/cli.mjs build"
  2. Describe your pages once

    Your site URL, your languages, and one entry per page type: its path in each language, its title and description, and the content search engines should read.

  3. Build and deploy as usual

    Run npm run build. Open any file in dist/ and you'll see real content. If a page is missing something, the build tells you which and stops.

Pricing

One-time payment. Prices in US dollars.

Single site

$49

  • The full kit for one production site
  • 12 months of updates
  • Example config and React helpers
Join the launch list

Done-for-you setup

$249

  • Installed and configured on your Lovable or Vite site
  • Includes the Unlimited sites licence
  • 12 months of updates
Join the launch list

Launch list

Checkout opens soon. Email us and we'll send you the link when it does.

Email to join

Questions

Does it work with Lovable hosting?

It works with any Vite + React project Lovable generates. Lovable's own publish may not run your build script, so after publishing, open a page with view-source and check it shows real content. If it doesn't, deploy the built dist folder to Netlify, Vercel or Cloudflare Pages; the kit includes the setting for each.

Which languages does it support?

Any number. The example is English and French; you list your languages in the config (for example en, fr, es, de). The default language is served at / and the others at /fr, /es and so on, each with its own translated URLs.

Does it guarantee rankings?

No. Search engines decide what to index and rank. The kit makes sure every page gives them what they need to read it: real content, titles, canonicals, hreflang and a sitemap. Good content is still up to you.

Which Node version do I need?

Node 20.10 or newer for the build scripts. Your visitors' browsers are not affected: the output is plain static files.

Do I need to change my framework or add a server?

No. You keep Vite and React. The kit runs after vite build and writes static HTML files that any static host can serve.

Can I get a refund?

Refunds follow the store's refund policy, shown at checkout.