The title Google shows in the search result isn’t always the one you wrote in your <title> tag. Google often swaps in the page’s H1, a body sentence, or your <title> with the site name appended, because its system decided that text is a better match for the query.
Fastest fix: keep your <title> between 50 and 60 characters, lead with the real topic (not pipes or brackets), and make sure the page has exactly one H1 that says the same thing. Titles in the 51-60 character band get rewritten the least. Do that and the rewrite usually stops within a recrawl cycle (days to a couple of weeks).
One thing you cannot fully control as of June 2026: Google is running a separate test of AI-generated headline rewrites in regular Search, with no publisher opt-out. More on that at the end, because it changes what “fixed” can mean.
How common is this, really
Title rewriting is the norm, not the exception. The widely cited Zyppy study of 80,000+ titles across 2,370 sites found Google rewrote about 61% of titles at least partially. Later industry tracking put the Q1 2025 rate near 76%. So if your title got changed, you are in the majority — the goal isn’t a 0% rewrite rate, it’s getting your important pages to keep the title you chose.
The single biggest lever is length. In the same dataset, titles of 51-60 characters had the lowest rewrite rate, around 39-42%. Both very long titles and very short titles were rewritten over 95% of the time.
Common causes
1. <title> is too long
Desktop SERP title width is roughly 580px, which fits about 50-60 English characters or 28-32 CJK characters. Overlong titles get truncated, and Google often rewrites rather than show a half-cut sentence.
How to confirm:
curl -sL https://yourdomain.com/page | grep -oE '<title>[^<]+</title>'
# then count the characters between the tags
2. Keyword stuffing and pipe stacks
A title like AI tools | ChatGPT | Claude | Best of 2026 | Must-have for devs reads as SEO boilerplate. Google rewrites it, usually to the H1 plus the site name.
The separator you use matters more than people expect. In the Zyppy data, when titles used a pipe |, Google removed it about 41% of the time; when they used a dash -, it was removed only about 19.7% of the time. Brackets are the worst offender: [bracketed] titles were rewritten 77.6% of the time and the bracketed text was dropped 32.9% of the time, versus 61.9% / 19.7% for (parentheses). Practical takeaway: prefer a single dash or parentheses over pipes and square brackets.
3. <title> doesn’t match page intent
Your title promises “Complete Guide” but the body is 300 words, so Google extracts a body sentence that matches the query better. Or the keyword in your title never appears in the page text. Google builds title links from several on-page sources — the <title>, the H1 and other prominent headings, visible anchor text, and structured data — so a title that contradicts all of those gets overruled.
4. No H1, or multiple H1s
Google leans heavily on the H1 (and other prominent, large text) as a title signal. Zero H1s or several competing H1s means Google synthesizes a title from elsewhere, typically the site name plus the first paragraph.
How to confirm:
curl -sL https://yourdomain.com/page | grep -oE '<h1[^>]*>[^<]+</h1>'
# you want exactly one line back
5. <title> and H1 say different things
When the <title> and the visible H1 point in different directions, Google almost always trusts the H1, because that’s what a real reader sees on the page. They don’t have to be word-for-word identical, but they must be semantically aligned.
6. Many pages share an identical <title> template
A boilerplate title like Blog - Company Name repeated site-wide gives Google nothing to distinguish pages with, so it rewrites to find a unique signal. Google’s official guidance explicitly calls out repeated or boilerplate <title> text as a problem and recommends varying it per page.
Which bucket are you in
| Symptom in the SERP | Most likely cause | Go to |
|---|---|---|
Title cut mid-word or ends in … | Too long | Cause 1, Step 2 |
| SERP shows your H1, not your title | Title/H1 mismatch or weak title | Causes 3, 5 |
| SERP shows “site name + first sentence” | Missing or duplicate H1 | Cause 4 |
| Pipes/brackets stripped, words reordered | Separator + stuffing | Cause 2 |
| Same rewritten title across many URLs | Boilerplate template | Cause 6, Step 4 |
Shortest path to fix
Step 1: Identify which URLs were rewritten
In Search Console, go to Performance → Search results, switch to the Pages tab, and sort by impressions descending. Take your top 20 URLs and for each one compare the source title to what actually shows in Google:
# your actual <title>
curl -sL "https://yourdomain.com/url" | grep -oE '<title>[^<]+</title>'
# search this in Google and read the displayed title
site:yourdomain.com/url
If the displayed title differs from the source <title>, it was rewritten.
Step 2: Rewrite titles using this template
[intent or primary keyword] + [unique qualifier / number / year] + [brand (optional, at the end)]
Bad → good:
| Bad | Good |
|---|---|
AI tools | ChatGPT | Claude | Best 2026 | 12 AI Tools I Actually Paid For in 2026, Ranked |
Blog - MyCompany | Deploying Astro to Vercel: The Complete 2026 Guide |
Complete Guide (no topic) | hreflang Setup Guide: 6 Common Errors and Fixes |
Character budget:
- English: 50-60 characters (aim for 51-60, the lowest-rewrite band)
- CJK: 26-30 characters including punctuation
Put the primary keyword in the first 30 characters so it survives mobile truncation, and use a single dash or parentheses instead of pipes or brackets.
Step 3: Ensure exactly one H1 per page
# site-wide scan of your built output
for f in $(find dist -name "*.html"); do
count=$(grep -oE '<h1[\s>]' "$f" | wc -l)
[ "$count" != "1" ] && echo "$f: H1=$count"
done
Fix:
- Change
<header><h1>SiteName</h1></header>to a non-heading wrapper, e.g.<header><span>SiteName</span></header> - Give the article body exactly one
<h1>[Article Title]</h1> - Keep the H1 and
<title>semantically aligned (same topic, not necessarily the same words)
Step 4: Make every page’s title template unique
In your CMS or static-site generator template:
---
const { title, brand = "MyCompany" } = Astro.props;
const fullTitle = `${title} | ${brand}`;
// Length cap: if over 60 chars, drop the brand
const safeTitle = fullTitle.length <= 60 ? fullTitle : title;
---
<title>{safeTitle}</title>
Step 5: Block duplicate and over-length titles at build time
// scripts/check-titles.mjs
import fg from "fast-glob";
import fs from "node:fs";
const seen = new Map();
const issues = [];
for (const f of fg.sync("dist/**/*.html")) {
const html = fs.readFileSync(f, "utf8");
const title = html.match(/<title>([^<]+)<\/title>/)?.[1]?.trim();
if (!title) issues.push(`MISSING: ${f}`);
else if (title.length > 60) issues.push(`TOO LONG (${title.length}): ${f}`);
else if (seen.has(title)) issues.push(`DUPLICATE: ${f} == ${seen.get(title)}`);
else seen.set(title, f);
}
if (issues.length) { console.error(issues.join("\n")); process.exit(1); }
Step 6: Wait for a recrawl, then confirm it’s fixed
Title links update on Google’s schedule, not yours — usually within days to a couple of weeks after the page is recrawled. To check sooner, run the URL through Search Console → URL Inspection → Test Live URL to confirm Google sees your new <title> and single H1, then watch the live SERP with site:yourdomain.com/url. Two weeks later, compare CTR per URL in Performance → Search results: a move from, say, 1.5% to 3%+ means the new title is being shown and clicked.
The 2026 exception: AI-generated headline rewrites
In March 2026, Google confirmed to The Verge that it is testing AI-generated headlines in regular Search results — not just the older Discover feed. Unlike a normal rewrite that reuses your existing on-page text, this generates entirely new phrasing your page never contained.
What you need to know as of June 2026:
- The test is described as “small and narrow” and is not a full rollout.
- There is no opt-out for individual rewrites; it is all-or-nothing.
- A similar Discover experiment was made a permanent feature in January 2026 after Google judged it good for user satisfaction, so this one could follow.
This doesn’t change the fixes above — a clean, accurate, well-matched title is still your best defense and still wins on most queries. But if a specific high-traffic URL shows a headline you never wrote even after you’ve aligned title and H1, you may be inside this experiment rather than hitting a fixable trigger. Track it in Search Console and don’t keep rewriting a page that’s already correct.
Prevention checklist
- Write titles like a human reads them out loud, not like a robot stacking keywords
- One clear H1 per page, semantically aligned with the
<title> - Title template is always
{unique content} - {brand}with the unique content first, and a dash rather than a pipe - 51-60 characters is the target band, 60 the hard cap — auto-drop the brand if it overflows
- CI fails the build on duplicate, missing, or over-length titles
FAQ
How long until Google shows my new title?
After the page is recrawled — usually a few days to two weeks. Use URL Inspection’s “Test Live URL” to confirm Google can read the new <title> immediately, but the SERP itself updates on the next index refresh.
Do my <title> and H1 have to match exactly?
No. They must be semantically aligned — same topic, same intent, same language. A title like hreflang Setup Guide: 6 Common Errors and Fixes and an H1 of The Complete hreflang Setup Guide are close enough; Google penalizes contradiction, not paraphrase.
Why does Google show my brand name when I didn’t put it in the title?
Google appends the site name when the title is short, generic, or boilerplate, or when it can’t find a strong unique signal on the page. A specific, unique <title> plus a single matching H1 usually stops this.
Are pipes really worse than dashes? Yes, measurably. In the Zyppy dataset, pipe separators were removed by Google about 41% of the time versus about 19.7% for dashes, and square brackets were the most-stripped of all. Use a single dash or parentheses.
Can I force Google to use my exact title?
No. There is no markup that guarantees your <title> is shown, and the official docs confirm Google may always generate the title link. You can only make your title the clearest, most accurate option so Google has no reason to replace it.
Related
Tags: #SEO #Google #Search Console #Indexing