Your page title still says "Lovable App" or "Vite + React": how to change it
The text in your browser tab and in Google's result comes from the <title> element, and in a Vite-based app (Lovable, Bolt, most React starters) it sits in index.html at the project root, where templates leave "Lovable App", "Vite + React + TS" or "React App".
Replace it with your product name and what it does, for example <title>Acme Shifts: staff scheduling for cafes</title>, then republish.
Why the default title costs you
Google's title guidance: "Make sure every page on your site has a title specified in the <title> element", written to be "descriptive and concise", and it warns against vague labels such as "Home". Google builds the title link in search results from your <title> and other signals (main heading, og:title, link text). A template title tells Google and searchers nothing about your product, and it is also what browser tabs, bookmarks and many link previews show.
Lovable's own SEO documentation says "the starting metadata is generic" and its SEO review flags generic or duplicate titles.
The fix in index.html
<!-- index.html, project root -->
<head>
<meta charset="UTF-8" />
<title>Acme Shifts: staff scheduling for cafes</title>
<meta name="description" content="Build next week's cafe schedule in five minutes and send it to every phone." />
</head>
Lead with your brand or the main thing people search for, and keep it short; Google truncates long title links to fit the screen.
In Lovable: ask in chat: "Change the page title in index.html to 'Acme Shifts: staff scheduling for cafes' and update og:title to match." Lovable's SEO review (under the SEO & AI tab) also offers Try to fix for generic titles. Republish afterwards.
In Bolt, Cursor or a local Vite project: edit index.html directly, commit and redeploy.
A different title for each page
A single-page app keeps one index.html, so every route shows the same title unless your code changes it. With React 19 you can render <title> inside a component: React "will always place the DOM element corresponding to the <title> component within the document's <head>". Render only one at a time, and pass a single string (use a template literal for variables):
export default function Pricing() {
return (
<>
<title>Pricing · Acme Shifts</title>
<h1>Pricing</h1>
</>
);
}
On older React versions, set document.title in an effect. Titles set by JavaScript appear only after the app runs, so keep a good default title in index.html for crawlers and link previews that read the raw HTML. Test this on a preview deployment before relying on it.
What Pewterkit Check looks for
A free check reads the <title> in your homepage's HTML. It flags an empty title or a template default ("Lovable App", "Vite + React", "React App", "Create Next App", "Vite App" and similar), and notes a title over about 65 characters that Google is likely to cut.
FAQ
Where is the title in a Lovable project?
In index.html at the root of the project. You can ask Lovable to change it in chat, or edit the file through the code view or GitHub sync.
I changed the title but Google still shows the old one. Why?
Google updates its result after it recrawls the page, which can take days or weeks. In Search Console, URL Inspection lets you request indexing of the homepage.
Should the title and the H1 be the same?
They can differ. The title is for tabs and search results; the H1 is the main heading on the page. Keep them about the same topic.
How long should a page title be?
Google sets no limit and truncates title links to fit the device, so put the words that matter first and keep it short.
Sources
- Google Search Central: Influencing your title links — read 27 Oct 2026: every page needs a title, descriptive and concise, sources Google uses, truncation
- Lovable docs: Automatic SEO features — read 27 Oct 2026: generic starting metadata, SEO & AI review, Try to fix
- React: <title> component reference — read 27 Oct 2026: placed in the head, one at a time, single string child
- Vite: Static Asset Handling — read 27 Oct 2026: public files served from the root
How this page was made: drafted with AI from the sources listed, reviewed by Pewterkit. Docs checked Oct 27, 2026. Spotted something out of date? Tell us.