Blog / Technical Guides

Lovable Site Shows the Same Title on Every Page in Google: The Fix

By Keyona Meeks, Founder, ReRev Labs · Oct 31, 2026 · 9 min read

The short answer: A site built as a single-page app ships one HTML file. That file has one title, so every page can show the same title until JavaScript changes it. The fix has two levels. First, set a title and description for each route in the browser when the page loads. Second, generate a real HTML file per page at build time, with its own title, so crawlers that do not run JavaScript see the right one too. We do both on rerev.io. I could not read Lovable's documentation or Google's title-link page in this session, so I say what I could confirm and what I could not. We sell build work, so weigh this with that in mind.

By the end of this post, you'll be able to:

  • Explain why every page shows the same title.
  • Set a title and description per page in the browser.
  • Understand what a build-time prerender adds.
  • Check what a crawler sees, without guessing.

I sell build work. Everything below about rerev.io comes from our own code and from fetching our own live pages on October 31, 2026. Nothing here is a guarantee about how Google will treat your site.

Why does every page show the same title?

A single-page app has one index.html. The browser loads it, then JavaScript draws each page. If the title in that one file says "My Site", every route starts with "My Site", and the HTML a crawler downloads first says the same thing for every address.

Google can run JavaScript. Its JavaScript SEO basics page says "You can use JavaScript to set or change the meta description as well as the <title> element." It also says a page "may stay on this queue for a few seconds, but it can take longer than that" before it is rendered, and that "a headless Chromium renders the page and executes the JavaScript." Source: JavaScript SEO basics, read through a tool that returns excerpts, on October 31, 2026.

So Google may eventually see the right title. But the first HTML says otherwise, rendering can lag, and the page adds that server-side or pre-rendering "is still a great idea" because "not all bots can run JavaScript." That is an excerpt. Read the live page.

What did I not confirm?

I tried to read Google's page on title links, and Lovable's own SEO documentation. Both addresses were declined by the tool I use to read pages, and I did not look for another way in. So I do not quote what Google says about how it picks a title, and I do not describe any Lovable setting or menu. If you build in Lovable, check its current documentation for how it handles page titles.

How do you set a title per page in the browser?

The idea: each page, when it loads, sets document.title and the description tag. Here is a small helper:

// Sets the title and description for the current route in the browser.
function setPageMeta(meta) {
  if (typeof document === 'undefined') { return; }
  document.title = meta.title;
  var tag = document.head.querySelector('meta[name="description"]');
  if (!tag) {
    tag = document.createElement('meta');
    tag.setAttribute('name', 'description');
    document.head.appendChild(tag);
  }
  tag.setAttribute('content', meta.description || '');
}

You call it from each page, for example setPageMeta({ title: 'Pricing | My Site', description: 'What we charge and why.' }). In a React app you would call it inside an effect that runs when the page mounts.

I tested this helper with a Node harness and a fake document. Seven checks passed: the title is set, a description tag is created, a second call changes the title, the tag is reused and not duplicated, a missing description becomes empty, and the helper does nothing when there is no document. I did not run it in a real browser or in Lovable. Our own site has a longer version of this idea in src/lib/page-meta.ts, which also sets the social-sharing tags.

Keep titles short and specific, and different on each page. I use the page name first and the brand last. That is a habit, not a rule I can cite.

What does a build-time prerender add?

The helper above works after JavaScript runs. A prerender writes the right tags into static HTML ahead of time, so they are there before any JavaScript.

On rerev.io, a script in scripts/prerender.mjs runs after the site builds. Its own header comment says it "Writes a static HTML file per public route with its own <title>, description, canonical, Open Graph tags and JSON-LD, plus the full article text for blog posts." A table in scripts/route-meta.mjs holds the title and description for each page, and blog titles come from each post's front matter. The React app still loads on top and works as normal.

This is a developer task. I cannot tell you whether Lovable's editor will do it for you, and I could not confirm whether it can run a build step like this. Ask Lovable, or the person who deploys your site.

How do you check what a crawler sees?

Do not trust the browser tab. Fetch the page and read the raw HTML. In a terminal:

curl -s https://www.example.com/pricing | grep -o '<title>[^<]*</title>'

I ran that pattern against three pages of our own site on October 31, 2026. The home page returned "ReRev Labs | Automate Before You Hire, with AI". A blog post returned "What to Automate First in a Small Business | ReRev Labs". The Pixels service page returned "Pixels | ReRev Labs". Three pages, three different titles, in the raw HTML. If yours return the same title three times, the fix has not reached the crawler.

You can also use "view source" in your browser. It shows the HTML as delivered, before JavaScript. The "inspect" view shows the page after JavaScript, which is not the same thing.

Google may take time to show a new title in search results. I cannot say how long, and I could not confirm it from Google's pages.

Is that everything?

No. Titles are one signal among many, and fixing them does not guarantee a ranking. The same pattern also applies to the description, the canonical address and the social-sharing image. For a related issue on Lovable sites, see our post on making your Lovable website AI-crawler friendly, and for moving a Lovable site to your own domain, see how to deploy a Lovable website to your own domain.

Where does an LLM fit in this?

An LLM can help with the messy part: reading a list of your pages and drafting a title and description for each, in your voice. A person should read every one, because an LLM will write a plausible title that says something untrue about the page. The helper, the prerender and the curl check are plain rules, and they do the same thing every time. My stance: AI writes the code, plain automation runs it, and an LLM shows up only where the input is messy and a person checks the result.

Where this has limits

  • I could not read Lovable's documentation or Google's title-link page. I describe no Lovable menu and no Google title rule.
  • The Google lines are excerpts. Check the live JavaScript SEO page.
  • The helper was tested with a fake document. I did not run it in a browser or in Lovable.
  • The rerev.io facts are from our code and our live pages on October 31, 2026. They show one working setup, not the only one.
  • Fixing titles does not guarantee a ranking.
  • We sell build work. Read this with that in mind.
  • No ReRev prices and no promises about results.

If you want help with this on your own site, or want to claim a free rebuild of a tool you pay for, tell us what you use. Do not send passwords or login details.

Frequently asked questions

Why does my Lovable site show the same title on every page?

A single-page app ships one HTML file with one title. Until JavaScript changes it, every address starts with that title.

Can Google read titles that JavaScript sets?

Google's page says you can use JavaScript to set the title. It also says rendering can lag. Prerendering removes the wait.

What is a prerender?

A build step that writes a static HTML file for each page, with its own title and description.

How do I see what a crawler sees?

Fetch the raw HTML with curl, or use view source. Do not rely on the browser tab.

How long until Google shows my new titles?

I could not confirm that from Google's pages.

Does Lovable do this for me?

I could not read Lovable's documentation. Check it, or ask them.

Read next: Is a Lovable website good for SEO? is the full story of what we fixed on ours, and the link preview fix handles the image half of how your pages look when shared.