Google 改写了我的 meta description

SERP 里的描述不是你写的——通常是太泛、缺关键词、或全站重复。

打开 Google 搜你的文章,发现 SERP 显示的描述根本不是 <meta name="description"> 里写的那一句——这是 Google 在判定”你写的描述不如我自动从正文抽取的好”。这不是 bug,是它的默认行为:Google 官方明确说只在 ~70% 的查询里使用你的 description,剩下 30% 它会自己摘。

要把展示率从 30% 推回 70-80%,得先搞清楚 Google 嫌弃你的描述哪一点。

常见原因

按命中率从高到低:

1. 描述太泛、没有”独有信息”

最典型的失败描述:

"了解 AI 工具如何提升你的工作效率,本文为你详细介绍。"
"This article introduces the best AI tools for productivity."

这种话适合任何一篇文章,Google 一眼判断:“抽正文一句话比这强”,于是改写。

如何判断:把你自己的描述读出来,问”换到另一篇文章上还能用吗?“——能用就是太泛。

2. 全站描述高度重复

很多模板默认所有页面共享一条描述(比如首页 description),或者用同一段 prefix 拼接。Search Console → 索引 → 增强项里如果出现”重复 meta 描述”警告,就是这种情况。

如何判断:在 Search Console 输入 site:yourdomain.com "你的描述前 30 字",结果若 > 3 条都是你站内页,就是全站重复。

3. 描述没回答用户的 query

Google 是按”哪一段最匹配这次搜索词”动态选 snippet 的。如果用户搜的是”Astro 部署 Vercel”,但你的 description 写的是”本博客分享前端经验”,它会从你正文里抽一段含”Astro”和”Vercel”的句子顶上去。

如何判断:在 Search Console → 性能 → 选这个 URL → 看”查询”列表,对照展示出来的实际 snippet,看它是不是从正文抽的、且抽的位置正好命中那个 query。

4. 描述长度不合适

  • 太短(< 70 字符):Google 觉得信息量不够,会补充正文段落
  • 太长(> 160 字符 / 中文 > 80 字):被截断,且 Google 会判”反正要截,不如我自己重写”

桌面端 SERP 描述视觉宽度约 920px,对应英文 155-160 字符、中文 75-80 字;移动端再短约 20%。

5. 描述里含日期 / 数字与正文不一致

写”5 个工具”但正文列了 8 个;写”2024 最新”但 publishedAt 是 2026——Google 检测到不一致就替换。

如何判断:搜 site:yourdomain.com 看 Google 给你的 snippet,对比 description 里的数字 / 年份是否被换掉。

6. 描述里全是关键词堆砌

"AI tools, ChatGPT, Claude, productivity, best AI 2026, AI for developers"——Google 识别为低质 SEO 优化,直接弃用。

最短修复路径

按收益从高到低,先做前 3 步通常就能解决 80% 的问题。

Step 1:找出哪些页面被改写了

在 Search Console → 性能 → “页面”标签,把展示量从高到低排序。挑前 20 个 URL,逐一执行:

site:yourdomain.com/your-article-slug

把 SERP 显示的描述复制下来,和源码里的 <meta name="description"> 对比。不同的就标记为”被改写”。

也可以一次性批量检查:

# 用 curl 抓自己的页面,提取 meta description
curl -s "https://yourdomain.com/your-article" | grep -oE '<meta name="description" content="[^"]+"'

然后再 Google site: 查一下对应 SERP 的实际描述。

Step 2:按”独有性 + 含关键词 + 长度”三条规则重写

为每个被改写的页面写新描述时,按这个模板:

[主关键词] + [独有信息或数字] + [对用户的价值或承诺]

例子(差→好):

”Google 改写描述怎么办?本文为你详细介绍""Google 改写 meta description 的 6 种原因 + 提高展示率到 80% 的 3 步修复"
"AI tools for productivity""12 AI tools I actually paid for in 2026, ranked by hours saved per week”

字符预算:

  • 英文:140-160 字符(不含空格 ~130)
  • 中文:60-80 字(包含标点)

Step 3:用 build 脚本强制”每页一条独有描述”

如果你用 Astro / Next / Hugo,在 build 阶段加一层校验:

// 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);
}

放进 prebuild 钩子,所有重复 / 缺失 / 长度异常的描述都拦在 CI 里。

Step 4:等 7-14 天观察

Google 不会立刻重新评估。改完后:

  1. 在 Search Console 对该 URL 用”请求编入索引”重新触发抓取
  2. 7 天后再 site: 检查 snippet
  3. 14 天后看 Search Console → 性能里点击率(CTR)有没有上升

Step 5:还是被改写?让 Google 完全用正文

如果某些页面(比如长篇指南)你写不出比正文更好的总结,可以反过来:让正文第一段就是最佳描述。然后 Google 通常会用那一段。也可以在页面上加:

<meta name="robots" content="max-snippet:160">

明确告诉它最长 snippet 长度。设 max-snippet:0 则强制不用描述(不推荐,会丢 CTR)。

预防建议

  • 描述按页面生成,别用全站模板;写完用 build 校验脚本拦截重复
  • 写完读一遍:“这句换到任何一篇文章上能不能用?“能用就要重写
  • 主关键词放前 60 个字符内,移动端截断后还能看见
  • 每篇文章上线 14 天后回看 Search Console,把 CTR < 1% 的描述列出来重写

相关阅读

标签: #SEO #Google #Search Console #收录