搜索流量突然下跌怎么排查:GSC 五层归因法,区分算法波动、收录问题与自己改坏了

「上周还好好的,这周流量掉了一半」

这是个人站长最常遇到、也最让人心慌的一种情况。不是服务器挂了,不是被墙了,页面也能打开,但是搜索来的流量就是一天比一天少。

遇到这种情况,绝大多数人的第一反应是「是不是被算法惩罚了」,然后开始到处改标题、删文章、加外链,越改越乱。我见过最极端的案例是一个站主在一个晚上把全站 200 多篇文章的标题全改了,第二周流量直接归零——他把最后一点信号也毁掉了。

正确的做法是:先归因,再动手。流量下跌至少可以分成五类原因,每一类的处理方式完全相反,判断错了就会把小问题修成大事故。

这篇文章给出的是我实际在用的排查顺序:从「总览」到「细分」,每一步都能把可能的原因砍掉一半,最后落到一个具体的可执行操作上。整个流程用 Google Search Console(下称 GSC)就够,不需要任何付费工具。

第一步:确认是「真的掉了」还是「看起来掉了」

在 GSC 里打开「效果」报告,把时间范围设成「过去 3 个月」加上对比期。这一步有两个必须注意的地方,否则你会得出错误结论:

坑一:GSC 的数据要延迟 2-3 天。你今天看到「昨天流量暴跌 80%」,很可能只是数据还没跑完。判断方法很简单——把时间范围拉到「过去 7 天」按天看,如果最后两三天是垂直下落的一条线,而前面几天都很正常,那就是数据尚未完整,等两天再看。

坑二:要区分「点击」和「展示」。这两个数字的下跌含义完全不同:

——展示量掉了,点击也掉:你的页面在搜索结果里出现的次数变少了。原因是排名下滑、被移除索引、或者搜索需求本身有季节性。

——展示量没变,点击掉了:页面还在被展示,但没人点了。这几乎一定是标题或描述的吸引力问题,或者是前面出现了新的竞争者抢走了点击。

——点击掉了,但平均排名没变:最需要警惕的一种,通常是 SERP(搜索结果页面)本身变了——Google 上了新的「AI 概览」、「相关问答」或者视频模块,把你的位置挤到了下面。

把时间范围切到「过去 16 个月」,找找有没有类似的下跌曲线出现在更早的时间点。如果每年同一个时期都掉一次,那它就是季节性的,什么都不用做。我有个教程站在每年七八月都会掉 30%,因为学生放假不搜技术问题了,九月自动回来。第一次遇到的时候我改了半个月的东西,全是白费。

第二步:按查询维度切分,找出是谁掉的

这是最关键的一步,能直接把你从「全站掉了」缩小到「几个关键词掉了」。

在「效果」报告里,点击「查询」标签,然后点击表头上方的「点击次数」列排序,再用页面右上角的筛选器把「对比期」的点击下降量最大的查询挑出来。实际操作中更省事的办法是:切到「页面」标签,按点击次数排列,看前 20 个 URL 里哪几个的下降幅度最大。

然后把这几篇文章单独拎出来,看它们的关键词变化。你会得到三类结果:

类型一:关键词排名整体下滑 3-10 位。比如原来第 3 位的「Nginx 配置 HTTPS」,现在第 12 位。这种情况要问的是:搜索结果第一页是不是出现了新面孔?手动去搜一下这个词,看看排在前面的都是什么站。如果出现了几个大站的新文章,它们做了更详细的覆盖,那你就需要更新内容而不是重发。

如果前排出现的是论坛帖子(Reddit、知乎、贴吧、V2EX)或者官方文档,那是 SERP 结构变化,你能做的有限,考虑把目标关键词转向更细分的长尾。

类型二:关键词还在,但展示量不变、点击率腰斩。典型表现是平均排名从 4.2 变成 4.5,看起来几乎没动,但点击率从 6% 掉到 2%。这种情况一定是 SERP 上多了东西或者你的标题被截断了。检查方法:用无痕窗口搜一下这个词,截图看你的结果在什么位置、标题显示成什么样。

类型三:整个查询消失了。原来的关键词在报告里彻底不见了,同时文章本身的展示量也接近零。这通常意味着页面从索引里掉了出去,直接跳到第五步排查收录。

第三步:按页面维度判断是「个别文章」还是「整站」

在 GSC「页面」标签里,用「对比」模式(右上角有个对比开关)把当前期和上一期并列。按点击下降量排序,观察下降的分布:

只有 1-3 个页面明显下跌,其它都正常:局部问题。去查这几篇文章本身——内容是否过时、是否有竞争对手做了更好的版本、页面是否出了技术问题(比如某个图片挂了导致 CLS 飙升)。

下降分散在很多页面,每篇掉一点:全站性问题。这时候要往三个方向查:站点整体速度、索引覆盖率、以及有没有全站性的模板改动。我遇到过一次,是给全站加了一个 cookie 同意横幅,导致 LCP 从 1.9 秒涨到 4.3 秒,一个月内全站点击掉了 35%。**性能问题的影响是全站性的,而且是渐进的**,往往要一个月才看得出来。

只有新文章掉、老文章正常:看看是不是新发布的文章批量不收录,这属于抓取预算或质量问题,不是「惩罚」。

还有一个很容易被忽略的维度:按设备切分。GSC 的「设备」标签能分开看桌面、手机、平板。如果只有手机端掉了,桌面端没变,那几乎可以锁定是移动端体验问题——最常见的是移动端某个弹窗遮住了内容、或者移动端视口配置出错、或者广告把首屏挤没了。这种问题在电脑上看永远发现不了,因为你自己测试的时候用的是桌面浏览器。

第四步:按国家/地区切分,排除外部因素

打开「国家/地区」标签。如果下跌集中在某一个国家,而你的内容明显不针对那个国家(比如一个中文技术站,流量下跌集中在美国),那很可能是那个地区的搜索需求或政策发生了变化,与你的站无关。

反过来,如果你发现某个国家突然掉了 90%,同时那个国家的展示量也归零,可以查一下是不是那个地区出现了访问障碍。这种情况在你无法控制的一端,能做的只有等和观察。

这一步的价值在于排除法。很多站长花几周时间优化内容,最后发现是某个地区的流量正常波动。先把地理维度切干净,能避免大量无用功。

第五步:收录状态——最容易被误判为「惩罚」的原因

在 GSC 侧边栏找到「网页」(旧版叫「索引」→「覆盖率」),这是排查流量下跌时最该看的页面,但很多人从来没打开过。

重点看两个数字:「已编入索引」的页面数和「已发现但尚未编入索引」的页面数。

如果已编入索引的数量明显下降(比如从 320 降到 180),那就是有大量页面被移出了索引。点进去看具体是哪些,通常会有这几类原因:

「已抓取,但当前未编入索引」(Crawled - currently not indexed)。这是最常见的一类,意思是 Google 来抓了你的页面,看了,然后决定不收录。原因通常是「质量不够」或「和其它页面太像」。对个人站来说,最常见的情况是:内容太短、和别的站重复、或者是分类页/标签页/归档页这类薄内容被大量索引。

处理方式是:把薄内容的分类页加上 noindex,把精力集中在真正的文章上。让 Google 把预算花在值得收录的页面上,这一条对中小站的收录率提升非常明显。

「已发现,但当前未编入索引」(Discovered - currently not indexed)。意思是 Google 知道这个 URL 存在,但还没去抓。这通常是抓取预算问题——你的站对 Google 来说「不够重要」,排队排在很后面。解决方式是提升内链密度(让新文章从首页三跳内可达)、提交 sitemap、以及用 IndexNow 或 GSC 的「请求编入索引」推一把。

「已被备用网页(有适当的规范标记)收录」。意思是这个页面被认为和另一个页面重复,Google 选了另一个。检查你的 canonical 标签是不是指错了。这个错误在改过 URL 结构或者加过分页的站上特别常见。

另外强烈建议看「抓取统计信息」(在「设置」→「抓取统计信息」里)。这里能看到 Google 每天抓了你多少页面、返回的状态码分布、以及平均响应时间。如果抓取量的曲线和流量下跌的曲线形状吻合,那就是抓取预算出问题了——可能是你的服务器变慢了(Google 会主动降低抓取频率),也可能是出现了大量 5xx 让爬虫退缩。

这一点非常关键:服务器响应慢会导致抓取量下降,抓取量下降会导致新内容不收录,不收录就没流量。这是一条完整的因果链,但表现出来就是「流量莫名其妙掉了」,很多人根本想不到是服务器的问题。去「抓取统计信息」里看「平均响应时间」那条线,如果它在你流量下跌之前就开始往上走,答案就找到了。

第六步:技术性检查清单(10 分钟跑完)

如果前面几步都没找到明确答案,就做一次系统的技术体检。按这个顺序,每一条都能在几分钟内完成:

1. robots.txt 有没有改错。最常见的事故是上线时不小心把 Disallow: / 推上去了:

curl -s https://www.example.com/robots.txt | head -20

任何一条 Disallow: / 都是致命的。注意:robots.txt 里写 Disallow 只是阻止抓取,不会让已经收录的页面消失,所以如果流量是「突然」掉的,robots 的可能性反而不大(它的影响是渐进的,随着抓取停止慢慢掉)。这能帮你排除掉一批猜测。

2. 有没有被 noindex。用一个页面验证:

curl -s https://www.example.com/some-article.html | grep -i "robots"

如果出现 <meta name="robots" content="noindex">,那就是它了。这个 meta 标签可能来自模板改动、也可能来自某个插件默认设置。我遇到过一次是全站被加了 noindex,因为一个 SEO 插件的默认值在升级后变了,所有页面在一周内陆续从索引消失——那种下跌曲线是「每天掉一点」,和算法惩罚非常像,但完全是自己的锅。

3. HTTP 状态码是否正常。抽查几个主要页面,确认都是 200 而不是 301 链、302、或者 404:

for u in / /about.html /sitemap.xml; do
  echo -n "$u -> "
  curl -s -o /dev/null -w "%{http_code} %{time_total}s\n" "https://www.example.com$u"
done

%{time_total} 输出的是总耗时,如果超过 1 秒就该警惕。

4. canonical 指向是否正确。

curl -s https://www.example.com/article.html | grep -i canonical

确认 canonical 指向的是这篇页面自己的正式 URL,而不是首页、不是别的文章。如果全站 canonical 都指向首页(见过这种事故,模板里写死了),那所有文章都会被视为重复内容。

5. sitemap 是否还能正常访问、里面是不是最新内容。

curl -s https://www.example.com/sitemap.xml | grep -o "<loc>[^<]*" | tail -5

看看最新几篇文章有没有在里面,lastmod 是不是最近的日期。

6. 页面是否还能正常渲染。这一步用浏览器而不是 curl,因为 curl 拿不到 JavaScript 渲染后的结果。打开一篇流量下降最大的文章,用开发者工具看 Console 有没有报错、Network 里有没有大量 404。一个 JS 报错就能让整个页面的内容对爬虫不可见。

7. 有没有被恶意注入或挂马。如果页面被插了隐藏链接,Google 可能判定为作弊。搜一下源码里有没有陌生的外链:

curl -s https://www.example.com/article.html | grep -oE 'href="https?://[^"]*"' | sort | uniq -c | sort -rn | head -20

正常页面里出现的域名应该都是你自己的和几个已知的合作站。出现陌生域名就要警惕。

第七步:区分「算法更新」和「自己的问题」

如果前面的检查全部正常,那就需要看时间点了。有两个思路:

思路一:对照时间线。去搜一下「Google 核心更新 + 你那段时间的月份」,看看有没有官方确认的 core update 在流量下跌的那几天发布。如果有,而且跌幅在 20-40% 之间、影响面是全站性的、且没有技术问题,那大概率就是算法评估变化。

思路二:找「同类站」的表现。如果你认识同行业的朋友,或者在一些站长社群里,问一句「最近大家流量怎么样」。如果一群人同期都在掉,那不是你的问题。这一点非常重要——很多「优化」其实是在对一次全行业波动做无用功,而这些改动往往会让事情更糟。

需要说明的是:真正意义上的「人工惩罚」在个人站中极其罕见,通常伴随 GSC 里的「手动操作」通知(在「安全与手动操作」里能看到)。如果那里是空的,你就没有被人罚,不用往这个方向想。绝大多数所谓的「被 K」,实际都是收录问题、技术问题、或者内容质量评估的重新计算。

什么时候该「等」,什么时候该「动手」

这是整篇文章最实用的部分。我的经验法则:

等待的条件:跌幅小于 30%、曲线是缓坡而不是断崖、GSC 里没有任何技术告警、收录数没有明显变化。这种情况下至少等两周再决定要不要动。搜索引擎的重新计算周期通常是 2-6 周,你今天看到的下跌可能是上周某个改动的延迟结果,也可能是下周就会回弹的临时波动。急着改,等于在噪声上做决策。

动手的条件:出现断崖式下跌(一天掉一半以上)、收录数明显下降、GSC 报出手动操作或安全问题、或者页面出现技术故障。这些是确定性问题,立刻修。

无论哪种情况,都要做一件事:记录。建一个简单的改动日志,写下日期、改了什么、当时的流量基线是多少。下次再遇到下跌,这份日志能帮你在一分钟内判断「是不是我上周改的东西」。这个习惯我坚持了三年,它救过我很多次——有一次的下跌就是因为我两周前把一个页面的 h1 从文章标题改成了栏目名,改回来之后一周内恢复了。没有日志,这种事永远查不出来。

最后说一个反常识的结论:在我处理的十几起流量下跌里,真正需要「做 SEO」的不到三分之一。剩下的三分之二是:服务器变慢(4 起)、模板改动引入 noindex 或 canonical 错误(3 起)、季节性波动(2 起)、SERP 结构变化(2 起)。流量下跌首先是一个排查问题,其次才是一个优化问题。

先别改内容。

Last modification:October 19th, 2026 at 01:23 pm

Leave a Comment