You search Google for your article and the snippet in the SERP isn’t what you put in <meta name="description">. That’s not a bug — it’s Google’s default behavior. Google documents that your description is used roughly 70% of the time; the other 30% Google synthesizes a snippet from the page body.
To push that 30% back down to 10-20%, you have to figure out which of these failure modes your description is hitting.
Common causes
Ordered by hit rate, highest first.
1. Too generic — could apply to any article
Classic failure descriptions:
"Learn how AI tools can boost your productivity in this comprehensive guide."
"Everything you need to know about deploying a website."
Google sees a sentence that would fit on any page, decides “I can extract a better one from the body,” and does.
How to spot it: Read your description out loud. Ask “Would this still make sense on a different article?” If yes, it’s too generic.
2. Duplicated across many pages
A lot of templates ship a single site-wide description (often the homepage’s) or prepend the same boilerplate prefix. Search Console → Indexing → Enhancements will flag this as “Duplicate meta descriptions.”
How to spot it: Run site:yourdomain.com "first 30 chars of your description". If you get back 3+ of your own pages, it’s site-wide duplication.
3. Doesn’t answer the user’s query
Google picks snippets dynamically based on which passage best matches the search query. If someone searches “deploy Astro to Vercel” but your description says “this blog shares frontend tips,” Google grabs a body sentence containing “Astro” and “Vercel” instead.
How to spot it: In Search Console → Performance → pick the URL → look at the Queries list. Compare the actual SERP snippet to your meta description. If Google’s snippet contains words from a query that your description doesn’t, this is why.
4. Wrong length
- Too short (< 70 chars): Google decides there’s not enough info and pads from the body.
- Too long (> 160 chars): It’ll be truncated, and Google often replaces the whole thing rather than show a half-cut sentence.
Desktop SERP description visual width is ~920px, which fits roughly 155-160 English characters. Mobile is about 20% shorter.
5. Description contradicts the body
You write “5 tools” but the body lists 8; or “Best of 2024” but publishedAt: 2026-05-17. Google detects the mismatch and substitutes.
How to spot it: Run site:yourdomain.com and compare the snippet Google shows against the numbers and dates in your meta. If they’ve been swapped, that’s the trigger.
6. Keyword stuffing
"AI tools, ChatGPT, Claude, productivity, best AI 2026, AI for developers" — Google flags this as low-quality SEO optimization and discards it.
Shortest path to fix
Ordered by ROI. The first three usually solve 80% of cases.
Step 1: Find which pages got rewritten
In Search Console → Performance → “Pages” tab, sort by impressions descending. Take the top 20 URLs and for each run:
site:yourdomain.com/your-article-slug
Copy the SERP snippet and diff it against the <meta name="description"> in your page source. Anything different is a “rewritten” page.
For a batch check:
# Pull your own page and extract the meta description
curl -s "https://yourdomain.com/your-article" | grep -oE '<meta name="description" content="[^"]+"'
Then site: the URL on Google to see what’s actually being shown.
Step 2: Rewrite using the “unique + keyword + value” formula
For each rewritten page, follow this template:
[primary keyword] + [unique fact or number] + [user value or promise]
Bad → good examples:
| Bad | Good |
|---|---|
| ”Learn how to fix Google rewriting your description" | "6 reasons Google rewrites meta descriptions + the 3-step fix that pushed our CTR from 1.2% to 4.8%" |
| "AI tools for productivity" | "12 AI tools I actually paid for in 2026, ranked by hours saved per week” |
Character budget:
- English: 140-160 characters (160 is the desktop cutoff)
- Chinese / CJK: 60-80 characters including punctuation
Step 3: Enforce “one unique description per page” at build time
If you’re on Astro / Next / Hugo, add a build-time check:
// scripts/check-descriptions.mjs
import fs from "node:fs";
import path from "node:path";
import matter from "gray-matter";
const seen = new Map();
const root = "src/content/articles";
const issues = [];
function walk(dir) {
for (const name of fs.readdirSync(dir)) {
const p = path.join(dir, name);
if (fs.statSync(p).isDirectory()) walk(p);
else if (p.endsWith(".mdx") || p.endsWith(".md")) {
const { data } = matter(fs.readFileSync(p, "utf8"));
const desc = (data.description || "").trim();
if (!desc) issues.push(`MISSING: ${p}`);
else if (desc.length < 50) issues.push(`TOO SHORT (${desc.length}): ${p}`);
else if (desc.length > 160) issues.push(`TOO LONG (${desc.length}): ${p}`);
else if (seen.has(desc)) issues.push(`DUPLICATE: ${p} == ${seen.get(desc)}`);
else seen.set(desc, p);
}
}
}
walk(root);
if (issues.length) {
console.error(issues.join("\n"));
process.exit(1);
}
Wire it into prebuild so missing / duplicate / over-length descriptions fail CI.
Step 4: Wait 7-14 days and verify
Google doesn’t re-evaluate immediately. After editing:
- In Search Console, use “Request indexing” on the URL to trigger a re-crawl.
- After 7 days, re-run
site:to check the snippet. - After 14 days, check Search Console → Performance for whether CTR on that URL moved.
Step 5: Still rewritten? Make the body the description
For long guides where you can’t beat what Google would auto-extract, flip the strategy: make the opening paragraph itself the ideal description. Google will usually pick it. You can also add:
<meta name="robots" content="max-snippet:160">
to cap snippet length. max-snippet:0 blocks descriptions entirely (don’t do this — it tanks CTR).
Prevention
- Generate descriptions per page, not from a site-wide template; enforce uniqueness with a build-time script
- Re-read every description with the test: “Would this still make sense on a different article?”
- Put the primary keyword in the first 60 characters so it survives mobile truncation
- 14 days post-publish, audit pages with CTR < 1% in Search Console and rewrite their descriptions
Related
Tags: #SEO #Google #Search Console #Indexing