改版后 Indexing Coverage 下降

改版后 Search Console 的已收录页数下降——怎么区分正常的重新评估和真正的结构性损害,以及具体要跑哪些检查。

刚做完一次大改版(新模板、新结构、可能改了 URL),2-4 周后 Search Console 的 Pages 报告显示 Indexed 数掉了 20-60%。在回滚任何东西之前先冷静:改版后头 4-8 周的下降是正常的——Google 在重爬、重新评估整站。但如果 8 周后还在跌,那就是结构性问题了。

最快的修法: 最常见的根因是老 URL 现在返回 404,而不是干净地 301 到新等价页。把掉的 URL 拉出来,对每个跑一遍 curl -sI,把所有”不是单跳 301 到一个相关的 200 页面”的情况修掉。光这一项检查就能解决改版后绝大多数收录下降。本文剩下的部分讲怎么区分正常重新评估和真损害,以及另外六种原因的诊断方法。

症状

  • Pages 报告在改版后 2-4 周内 Indexed 页数下降 20%-60%。
  • 部分 URL 在 Why pages aren’t indexed 表里被重分类为 Crawled - currently not indexed
  • 部分 URL 直接掉出索引(URL Inspection 里显示 URL is not on Google)。
  • Performance(点击/曝光)同期下降,但幅度和索引数的降幅并不一致。

快速判断:正常还是结构性?

信号多半是正常重新评估多半是结构性损害
距上线时间前 4-8 周8 周后仍在跌
老 URL 的 HTTP 状态干净的单跳 301 → 200404、410、重定向链或软 404
未收录原因部分页面 Crawled - currently not indexedPage with redirectNot found (404)Blocked by robots.txtExcluded by noindex 激增
原始 HTMLtitle、H1、正文都在空壳,内容要等 JS 跑完才出现
范围一部分页面,逐周恢复大面积、单调下降、不见恢复

如果大多数行落在左列,修法就是耐心——别再叠加改动。如果落在右列,照下面的原因逐个排查。

常见原因

1. URL 改了但没有 301 到新等价 URL

最致命也最高发。从 /blog/2024/post-name/ 改到 /articles/post-name/ 后:

  • 老 URL 原本收录 → 现在返回 404 → Google 移除它,Pages 报告里的 Not found (404) 上涨。
  • 新 URL 没有历史信号 → 排名从 0 开始。

干净的 301 能同时解决两边:截至 2026 年 6 月,Google 通过 3xx 重定向几乎会传递全部排名信号(PageRank),但前提是单跳且目标相关。重定向链(/old/temp/new)或重定向到不相关页面(比如所有页都指向首页)会让信号流失或被丢弃。完整的 canonical 合并通常需要 1-4 周的爬取。

如何判断:

# 抽样老 URL,打印完整重定向链 + 最终状态。
# -L 跟随重定向;-w 打印跳数和最终状态码。
for url in "/blog/2024/post-name/" "/old/url2"; do
  echo "=== $url"
  curl -sIL "https://yourdomain.com$url" -o /dev/null \
    -w '%{num_redirects} hop(s) -> %{http_code} (final: %{url_effective})\n'
done

# 期望:"1 hop(s) -> 200"。404、410、迁移过的 URL 却 0 跳、或 2 跳以上,都是问题。

2. title / H1 / meta 变得更通用或更弱

模板重做时的常见错误——新版把回退值写死了,没用每页各自的值:

旧 H1: "Astro Deploy to Vercel: Complete 17-Minute Setup"
新 H1: "Complete Guide"            <- 通用化

旧 <title>: "Astro Deploy to Vercel - 17-minute walkthrough | YourSite"
新 <title>: "Article | YourSite"   <- 模板回退值

重新评估时 Google 在这些页上读到的信息密度更低,更容易把它们留在 Crawled - currently not indexed

3. 内链结构被压扁或削弱

  • 原来”相关文章”区列 5 条,新模板只列 2 条。
  • 原来面包屑链到分类页,新模板渲染成纯文字。
  • 原来 sidebar 列最新 20 篇,新模板没了 sidebar。

每减少一处内链,就是少了一票对目标页的相关性/重要性投票,也少了一条爬虫触达它的路径。

4. 新模板引入薄页面

改版自动生成了一堆低价值页——作者主页、tag 页、按月分页归档页。它们稀释 crawl budget 和内链权重,正经文章被降优先级,滑进 Crawled - currently not indexed

5. robots.txt 或 noindex 被过度应用

改版时为清理薄页,你一次性加了大量 noindexDisallow 规则,结果连真正想收录的页也被波及。这些会在 Pages 报告里表现为 Excluded by 'noindex' tagBlocked by robots.txt

如何判断:

# robots.txt 变了什么?(留一份旧副本,或从 Wayback 抓一份)
diff <(curl -s https://web.archive.org/web/2026id_/https://yourdomain.com/robots.txt) \
     <(curl -s https://yourdomain.com/robots.txt)

6. SSR/SSG 倒退(首次抓取拿到空 HTML)

旧模板是服务端渲染或静态生成,新模板换成了客户端 React,于是初始 HTML 只是个空壳。Google 分两波收录:Wave 1 立刻读原始 HTML;Wave 2(Web Rendering Service)稍后才跑你的 JS——两波之间的间隔从几小时到几周不等。如果内容只在 JS 执行后才存在,大片页面会处于未渲染状态而被降权。截至 2026 年 6 月,没有 SSR 或预渲染的纯客户端 React/Vue 不适合作为可收录内容的默认方案。

7. CSS/JS 资源被 robots.txt 屏蔽

新模板用了新的 CSS/JS bundle 路径,但 robots.txt 还在 Disallow 那个目录(或屏蔽某个 CDN 路径)。Google 抓不到样式,渲染出一个破损页面,进而降权。用 URL Inspection → Test live URL → View tested page → More info → Page resources 确认,看有没有资源被标成 “blocked”。

最短修复路径

Step 1:导出改版前后的 Pages 报告

Search Console -> Indexing -> Pages -> Export(右上角)-> CSV/Google Sheets
现在导出一份 "Why pages aren't indexed" 表,4 周后再导一份。
diff 两份 URL 列表,找出掉的页。

如果你没存改版前的基线,可以从旧 sitemap、Wayback Machine,或 Ahrefs / Semrush 的历史曲线里重建老 URL 列表。

Step 2:对每个掉的 URL 验证 HTTP 状态

# 把掉的 URL(每行一个)放进 lost-urls.txt
while read -r url; do
  status=$(curl -sIL "https://yourdomain.com$url" -o /dev/null -w "%{http_code}")
  hops=$(curl -sIL "https://yourdomain.com$url" -o /dev/null -w "%{num_redirects}")
  echo "$url -> $status (${hops} hop(s))"
done < lost-urls.txt > status.txt
  • 404 / 410: 补回页面,或 301 到等价新 URL。
  • 301 但 2 跳以上: 把链压成单跳。
  • 301 且 1 跳: 确认目标确实等价且返回 200。
  • 200: 技术上没问题——看 Step 3。

Step 3:对比改版前后的 title / H1 / meta

# 从 Wayback Machine 抓改版前快照(id_ = 原始存档 HTML)。
WB="https://web.archive.org/web/2026id_/https://yourdomain.com/article"
curl -sL "$WB"  | grep -oiE '<title>[^<]+|<h1[^>]*>[^<]+'

# 对比当前页面
curl -sL "https://yourdomain.com/article" | grep -oiE '<title>[^<]+|<h1[^>]*>[^<]+'

凡是变得更通用、更短的 → 恢复成每页各自的、有描述性的版本。

Step 4:审受影响 URL 的内链数量

# 统计新模板下指向每个掉的 URL 的内链有多少。
while read -r url; do
  count=$(rg -o "href=[\"']$url[\"']" src/ | wc -l)
  echo "$url $count"
done < lost-urls.txt

如果内链数比旧版少了 → 从真正相关的页面(相关文章区、正文内链、面包屑)补回链接。

Step 5:检查 robots.txt + noindex 是否过度

# 看 robots.txt 现在屏蔽哪些
curl -s https://yourdomain.com/robots.txt

# meta 标签和 X-Robots-Tag HTTP 头都要查(只 grep 正文会漏掉 HTTP 头里的 noindex)。
while read -r url; do
  hdr=$(curl -sI "https://yourdomain.com$url" | grep -i 'x-robots-tag')
  meta=$(curl -sL "https://yourdomain.com$url" | grep -io 'name=["'\'']robots["'\''][^>]*noindex' | head -1)
  echo "$url | header: ${hdr:-none} | meta: ${meta:-none}"
done < <(head -20 lost-urls.txt)

意外的 noindex → 删掉 → 用 URL Inspection → Request indexing 重新排队(操作前先看下面 FAQ 里关于配额的部分,别一口气提交几百个)。

Step 6:检查 SSR/SSG 倒退

# 不执行 JS,抓原始 HTML(大致就是 Wave 1 看到的内容)。
curl -sL "https://yourdomain.com/article" > raw.html
wc -c raw.html                 # 只有几 KB 且基本是骨架标记 = 多半是空壳
grep -c "<article" raw.html    # 0 = 正文不在初始 HTML 里

如果 raw.html 里没有正文,再用 URL Inspection → View crawled page(Google 的渲染快照)确认。修法是给文章路由重做 SSR 或预渲染。

Step 7:跑完 Step 1-6 后,等 4-8 周

把明确的问题修掉后,就别再改了。改版后头 4-8 周的下降是正常的重新评估期,频繁改动会让归因变得不可能——你根本分不清是哪一处改动起了作用。

8 周后还在跌:

  • 重新跑上面的诊断。
  • 看是否有 Google Core Update 同期上线(叠加效应——对照 Search Status Dashboard 确认)。
  • 考虑回滚诊断指向的那一处具体改动,而不是整个改版。

如何确认已经修好

  • 老 URL 现在返回单跳 301 到一个相关的 200 页面(重跑 Step 2)。
  • Pages 报告里 Not found (404) / Page with redirect / Excluded by 'noindex' 的计数停止上涨并开始回落。
  • 对已恢复的 URL 做 URL Inspection,显示 URL is on Google,且渲染快照里是改版后的页面。
  • Indexed 数先走平,随后几周内逐步回升。

容易误判的情况

  • 一慌就再次改版: 叠加改动让诊断不可能。
  • “流量降了就回滚”: 先等 4-8 周;回滚要付一次完整的重新评估周期。
  • 跟改版无关就乱改 robots / canonical: 除非诊断指向那里,否则别动。
  • 指望 Request indexing 能加速恢复: 配额大约是每个资源每天 10-12 个 URL(滚动 24 小时),对 1000 个 URL 的恢复杯水车薪——去修结构性根因。

预防建议

  • 改版分阶段:先结构,再视觉,再内容模板,不要一次全改。
  • 上线前把每个旧 URL 映射到新 URL,重定向清单进版本控制;优先单跳 301。
  • 改版前导出当前的 Pages 报告和线上 sitemap,便于后续对比。
  • 对最重要的页面做改版前后的抓取,外加 curl 和 Lighthouse 检查。
  • 给改版留 8 周观察窗,期间避免大规模再改。

FAQ

Q:掉页就该回滚吗? A:头 4-8 周不该——那段下降是预期之内的。回滚会触发又一次重新评估周期,把计时重置。只回滚诊断明确指向的那一处改动。

Q:需要重新提交 sitemap 吗? A:如果你的 sitemap 文件还在同一个 URL(通常如此),不必删了再加——Google 会自己重新抓取它、发现新增/变更的 URL。当 URL 或主体内容确实变了时,更新每条目的 lastmod;大规模 URL 迁移后提交一次以促发新一轮爬取。别指望删掉旧 sitemap 能把页面从索引里移除——它做不到;那是 301 和 noindex 的活。(Google 已在 2023 年下线了 sitemap ping 端点,ping 现在是无效操作。)

Q:一个 301 要多久才能把老页的排名传过去? A:Google 在下次爬取时就会跟随重定向,但完整的 canonical/信号合并截至 2026 年 6 月通常要 1-4 周。单跳、目标相关的重定向合并最快;链会拖慢它。

Q:改版期间撞上 Core Update 怎么办? A:时机不巧,但可以拆开归因。先逐 URL 对比状态(301 vs 404 vs noindex)判断改版损害,再在 Performance 报告里对比 Core Update 窗口内的曝光变化来隔离算法影响。两者留下的”指纹”不一样。

Q:Crawled - currently not indexed 激增——是改版导致的吗? A:常常是。它意味着 Google 抓了页面但判定不值得收录——通常是改版后内容变薄、标题/H1 变弱、内链变少(对应原因 2、3、4)。去强化这些信号,别只顾着刷 Request indexing。

相关阅读

外部参考:Page indexing report(Search Console 帮助)Redirects and Google Search

标签: #SEO #Google #Search Console #收录 #排查 #改版 #掉收录