做站的人迟早会遇到这么一天:某天打开 GSC,发现索引数掉了一半;或者搜索某个自己常用的长尾词,以前第三页能翻到,现在三十页都没有。这时候大部分人的第一反应是「被降权了」,然后开始到处找「恢复收录的方法」,删文章、改标题、换模板,一通操作之后,排名更差了。
实际上「降权」这个词在 Google 官方的算法语言里根本不存在。Google 从 2016 年就明确说过没有「惩罚」这种独立机制,效果上等价的东西只有一个:你的页面在系统里的评估得分下降了。得分下降可能是因为质量信号变差,也可能是因为站点发生了技术性变化,还可能是因为竞争对手变强了。这三类原因的处理方式完全不同,所以第一步永远是定性,不是动手。
这篇讲怎么用 GSC 里的既有数据,把「排名下滑」拆成可以判断的几类,每一步都给出具体的观察窗口和判据,不谈玄学。
一、先分清三种「下滑」,它们的判据完全不同
「排名从第 4 掉到第 40」和「排名从第 4 掉到第 7」是两件事;「一个词的排名掉了」和「全站所有词的排名都掉了」也是两件事。把它们混在一起谈,就会陷入「我改了标题,怎么没用」的循环。
第一种,断崖式下滑。特征是某个具体日期之后,某个词或某一组词的排名从首页直接掉到几十名开外,流量几乎归零。这种形态通常指向技术问题:页面被 noindex、canonical 指错了、被 robots.txt 拦了、服务器某段时间大量 5xx、或者页面内容被替换成了别的(比如缓存插件把一个通用页返回给了这个 URL)。
第二种,阶梯式下滑。特征是每次变化幅度不大,但趋势持续向下,几个词一起慢慢往下走。这种通常是相对位置的变化——别人的内容变好了,或者你的页面在某个维度上被系统重新评估,质量分下降了。
第三种,波动。特征是排名在几天到两周内上下十来位,看不出趋势。这种情况绝大多数是正常的排序波动,尤其在竞争激烈的词上。Google 的排名本身就在 ±3 到 ±10 位之间抖动,看到排名动了就大幅改站点,是在给随机数做优化。
判断依据很简单:在 GSC 的「效果」报告里,把时间范围拉长到 16 个月,选「查询」标签,看那条总曲线。如果曲线在某个具体的日子有个直角拐点,就是第一种;如果是缓慢的台阶,是第二种;如果一直在小幅度锯齿状波动,是第三种。曲线的形状比单日数字信息量大得多。
二、断崖式下滑:先查这六个技术点,按这个顺序
断崖式下滑有一个非常有用的特征:它几乎总能找到一个「时间对齐」的事件。你的任务就是找到那个事件。按我实际排查的命中率排序:
第一,检查索引状态。GSC → 索引 → 网页,看「已编入索引」和「未编入索引」的数量变化。如果有大量页面从「已编入索引」跳到了「已排除」,点开看原因。「已抓取 - 尚未编入索引」大量增加,说明抓取正常但内容被判定不值得索引;「已发现 - 尚未编入索引」增加,说明抓取预算被浪费了;「被 noindex 标记排除」增加,说明有模板或插件把 noindex 加上了。
这一步最容易被忽略的一点是:noindex 可能来自一个你完全没想到的地方。比如某个 SEO 插件在更新后默认给「标签页」「作者页」「分页」加了 noindex,或者 CDN 的「开发模式」开着,导致所有页面返回了 X-Robots-Tag: noindex。用 curl 看一下响应头最快:
curl -sI "https://example.com/your-page/" | grep -i -E 'x-robots|noindex|canonical'如果 X-Robots-Tag 出现在响应头里,说明是服务器或 CDN 层面加的,光改页面 HTML 是没用的。
第二,检查 canonical 指向。canonical 指错是断崖式下滑的头号技术原因,而且很难自己发现——因为页面本身看起来完全正常。常见错法有三种:一是分页或带参数的 URL 把 canonical 指回了首页;二是站点从 http 迁移到 https 后,模板里的 canonical 还是写死的 http;三是用了一套多域名(www 和非 www、或者中英文双域名),canonical 互相指反了。
批量检查的办法是从 sitemap 里随便抽二十条 URL,逐条看 canonical:
for u in $(grep -o '<loc>[^<]*' /tmp/sitemap.xml | sed 's/<loc>//' | shuf -n 20); do
printf '%s\t' "$u"
curl -sL "$u" | grep -o 'rel="canonical" href="[^"]*"' | head -1
done输出里如果出现「URL 和 canonical 不同」的行,就要单独追。抽样的目的是发现规律,不是找个别案例——如果三条以上都指错了,那是模板问题,改一个模板文件就全解决。
第三,检查服务器可用性。回想一下下滑的时间点附近,有没有升级、迁移、换 CDN、改防火墙。5xx 大量出现会让 Google 降低抓取频率,最坏情况下会把页面从索引里移除。GSC 的「抓取统计信息」在新版里被并入了「设置 → 抓取统计信息」,能看到按响应码分组的抓取量。如果某一天 5xx 突然占了一大半,那就是答案。
更隐蔽的情况是「只在 Googlebot 访问时出错」——比如你的 WAF 把 Googlebot 的 UA 拦了,或者防火墙封了某些 IP 段,而你自己用浏览器访问一切正常。这个用 curl 模拟一下 UA 就能看出来:
curl -s -o /dev/null -w '%{http_code}\n' \
-A 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)' \
"https://example.com/your-page/"正常应该是 200。如果是 403 或 503,问题就在拦截面。
第四,检查内容是否被替换。这一点听起来离谱,但实际发生过很多次:缓存插件把首页内容返回给了所有 URL;CDN 的「回源」配置错了,回源到了另一个站点;某个插件在特定条件下把文章正文清空了。curl 加上 -o /dev/null -w '%{size_download}' 看下载字节数,如果所有页面返回的大小都差不多,那基本就是被同质化了。
第五,检查外链与友链。如果站点有一个很显眼的友情链接区,某个链接指向了一个被判定为垃圾的站,有可能连累到你的页面评估。这个信号在 Google 的体系里权重不高(不会因为一个出站链接就掉排名),但在「站群互链」的情况下会明显。检查方式是在 GSC 的「链接」报告里看「热门链接网站」,如果出现了明显不相关的站,处理一下。
第六,检查是不是别人的页面顶了你的位置。有时候你的页面什么都没变,但同一个 SERP 上出现了一个内容更全、来自更大站点的页面。这种情况下 GSC 里你的排名会显示下滑,但你的展示次数可能并没有掉太多(因为你的页面还在结果里,只是位置靠后)。判断方法是看「平均排名」和「点击率」——如果排名掉了但展示量基本持平,说明是位置后移;如果展示量也腰斩,说明是真的被挤出去了。
三、阶梯式下滑:看质量信号的三个方向
阶梯式下滑更难处理,因为没有一个明确的「事件」可以对齐。我的做法是把它拆成三个可测量的方向:内容层、体验层、相关性层。
内容层,看「内容是否还有增量价值」。判断标准不是字数,而是「用户读完这篇,问题解决了吗」。一个很实用的自检方法是把标题输入搜索,看前五个结果的标题结构:如果前五个都是「X 是什么 + 怎么做 + 常见问题」的完整结构,而你的页面只讲了「是什么」,那你有明显的覆盖缺口。补上缺口比改标题有效。
GSC 里有个很直接的数据能用:效果报告里按「页面」排序,找到那些「展示次数高、点击率低」的页面。这些页面被展示了但没被点,说明标题和描述和用户预期不匹配,或者用户看到结果后判断「这个页面没有我要的」。这类页面是最值得优先改的,因为它们已经有排名基础,改标题的收益见效快。
体验层,看 Core Web Vitals。GSC 的「体验」报告里会有一个整体判定(良好 / 需要改进 / 差)。这个信号不是排名的直接因素,但它会通过「用户行为数据」间接产生影响。更重要的是,LCP 差的页面,用户真的会走。报告里点开具体 URL 组,会告诉你是哪一项指标不达标。常见的是 LCP 超过 2.5 秒,原因八成是首屏大图没压缩、或者字体阻塞渲染、或者服务器响应慢。
相关性层,看「关键词和页面主题是否漂移」。有一种情况是自己写出来的:文章一开始讲「Nginx 缓存配置」,后来加了几段讲「CDN 选型」,再后来又塞了一段「服务器选购」。内容变长了,但主题变模糊了,系统对页面的主题判断也跟着变模糊。这时候排名下滑不是「被惩罚」,而是「不再是最匹配的那个」。处理方式是拆分成两篇,各自聚焦。
四、波动:怎么判断是噪声还是信号
这一步要克制。我看到太多人因为三天的排名波动就大改站点,结果把本来正常的东西改坏了。有个很简单的统计方法:在 GSC 里选一个具体的查询,把时间范围拉长到三个月,按周导出数据,然后看周均值。单日数据的标准差通常能到周均值的 30% 到 50%,也就是说一个平均排第 8 的词,单日排名在 5 到 12 之间跳是正常的。
判断「是信号」的标准我用这条:连续三周周均排名都低于基线,且下降幅度超过基线的 20%,才算趋势。达不到这条,就记一笔,继续观察。这条规则帮我避免了很多次误判。
还有一个更隐蔽的问题:GSC 的排名数据是「所有展示的平均排名」,样本量小的词波动天然就大。一个每天只展示 5 次的词,排名从 6 变成 15,可能只是因为多了三个展示。看这类词的时候一定要同时看展示次数,不要只看排名。展示次数少于每天 10 次的词,排名数据基本没有参考价值。
五、处理顺序:一次只改一层
定性完成之后,动手的顺序很关键。我的规则是:技术层 → 内容层 → 外链层,一次只改一层,观察至少两周再进入下一层。
技术层的改动见效最快,通常三到十四天就能在 GSC 的索引数据里看到变化。内容层的改动见效慢一些,因为需要重新抓取和重新评估,通常两到六周。外链层的改动见效最慢,而且不确定性最大。
这也是为什么需要「一次只改一层」——如果你同时改了模板、改了标题、加了内链,两周后排名回升了,你根本不知道是哪一项起了作用,下次遇到同样的问题还是不知道该改什么。反过来,一次只改一层,你会在一年内积累出一份真正属于自己站点的因果表。
另外提醒一句:每次改动之后,在 GSC 里用「URL 检查」工具对改动的页面请求一次「重新抓取」。这不是玄学,它的作用是主动把新版本推给 Google 的队列,缩短生效时间,也让你在「已编入索引」的状态里更快看到结果。
六、一个常被忽略的前置问题:抓取预算是否够用
所有的排名分析都建立在一个前提上——Google 抓得到你的页面、并且抓的是最新的版本。如果抓取预算不够,你改一百次页面也没用。
抓取预算在站点规模不大的时候不是问题,但以下几种情况会突然变成瓶颈:站点有大量带参数的 URL(筛选、排序、分页组合出成千上万个)、有大量由标签页或搜索结果页产生的近重复页面、sitemap 里放了大量 404 或重定向的 URL。这几种情况都会让 Googlebot 把时间花在没价值的 URL 上。
治理方式很直接:在 robots.txt 里用通配符屏蔽掉无价值的参数组合,把「标签页」「搜索结果页」的 canonical 指回主页面或者加 noindex,把 sitemap 里的死链清掉。然后观察 GSC 抓取统计里每天抓取的总量有没有变化——如果总量没变但「有价值的页面」被抓取的比例提高了,就是成功。
还有一个小细节:robots.txt 自身的获取如果失败(返回 5xx),Google 会保守处理,暂停抓取一段时间。所以 robots.txt 必须是静态的、稳定的、永远返回 200 的文件,不要让它经过任何动态逻辑。
七、把排查过程变成一个可复用的模板
上面这些东西,如果每次都从零开始想,效率很低。我给自己做了一张排查表,每次遇到下滑就照着填:
- 下滑类型:断崖 / 阶梯 / 波动(看 16 个月曲线)
- 起始日期:具体到哪一天
- 同期事件:那天前后我改过什么、服务器有没有异常、有没有换 CDN
- 索引状态:已编入索引 / 已排除 各自的数量变化
- canonical 抽样:抽 20 条,错的比例
- 可用性:同期 5xx 占比、Googlebot UA 请求的响应码
- 内容覆盖:目标词的 SERP 前五名标题结构,我的缺口在哪
- 体验:CWV 三项是否达标、LCP 秒数
- 结论:三选一(技术 / 内容 / 竞争)
- 动作:只写一条,下周再填观察结果
填到第十次,你会发现自己站点的「病根」集中在两三个固定的地方,那时候排查时间会从两小时缩到十分钟。SEO 的经验不是知道更多技巧,是知道自己站点的惯性。
最后说一句心态上的事。排名波动是常态,做站的人要能忍受「我什么都没做,排名却掉了」这种局面。真正需要动手的,是那些能对齐到具体事件、能给出明确判据的下滑;其余的,交给时间和持续的内容产出。急着让曲线反弹,往往是把它推下去的最后一脚。