搜索抓取

返回 200 的空页面:软 404 怎么让蜘蛛白跑一趟

页面返回 200,正文却已经空了,这就是软 404。本文说明软 404 与普通 404 的区别、常见的产生场景(下架商品、无结果的搜索页、零结果筛选页),以及如何结合日志和模板排查,并给出对应的修复方向,减少蜘蛛在空页面上的无效抓取。

搜索抓取

返回 200 的空页面:软 404 怎么让蜘蛛白跑一趟

有些页面抓取时返回 200,状态码正常,服务器也没报错,但蜘蛛打开之后发现里面没有实质内容:商品下架了、搜索结果为空、活动结束了、列表筛完一个都没有。这种「地址还在、内容没了」的情况,通常被称为软 404。

软 404 和普通 404 差在哪

普通 404 是明确的信号:这个地址没有对应内容,蜘蛛会记录下来,逐渐减少甚至停止回访。软 404 则是把同样的「没有内容」包装成了一个成功的响应,蜘蛛拿到的是 200,只能自己判断这个页面值不值得留。

哪些页面最容易变成软 404

  • 下架商品、过期活动页:URL 保留,模板还在,只是主内容被清空或替换成「已结束」。
  • 站内搜索结果页:关键词无结果时,页面只剩搜索框和「没有找到相关内容」。
  • 多条件筛选页:参数组合出大量结果为零的列表,每个组合都是一个可访问的 URL。
  • 空分类、空标签、空作者页:栏目建了但一直没内容。
  • 需要登录或特定权限才能看到正文的页面:蜘蛛拿到的是空壳。

蜘蛛遇到软 404 之后的几种反应

不同搜索引擎的处理不完全一样,但常见的结果有这几种:一是判断为低质量页面,降低同类页面的抓取频率;二是继续按正常页面回访,持续消耗抓取预算;三是把页面从索引里移除,但过程比明确的 404 慢很多;四是如果这类页面占比很高,可能影响蜘蛛对整站内容质量的判断。

软 404 的问题不在于蜘蛛看不懂,而在于它需要花额外时间来判断,而这部分时间本来可以用在有内容的页面上。

怎么找出站点里的软 404

可以结合服务器日志和页面模板一起看,重点盯这几类:

  1. 日志里长期有抓取、但标题或正文高度重复的 200 页面。
  2. 站内搜索、筛选、排序参数生成的 URL,尤其是带多个参数的组合。
  3. 返回 200 但正文长度明显偏短,或主体内容由前端异步填充、初始为空容器的页面。
  4. 已下架、已结束、已归档但仍可访问的历史 URL。

处理思路

先判断这个 URL 以后还会不会有内容,再决定怎么处理:

  • 确定不会再更新:返回 404 或 410,让蜘蛛知道这是终点,而不是让它一直来。有替代页面的,用 301 指过去。
  • 暂时无内容但会恢复:保留 200,但避免把「暂无内容」当成正文主体,同时别让它进入 Sitemap。
  • 搜索结果页和筛选页:一般不建议让它们被索引,可以用 robots.txt 收敛抓取范围或加 noindex,但要注意 noindex 需要页面被抓取到才能生效。
  • 需要登录的内容:考虑对蜘蛛放开可索引的部分,或明确标注受限状态,别让空壳页大范围存在。

另外,软 404 常常不是单个页面的问题,而是模板层面的问题。一个下架模板套在几万个 URL 上,就等于向蜘蛛批量输出空页面。改模板,比一页一页删要有效得多。

最后提醒一句:状态码是给机器看的,但「有没有内容」是机器自己要判断的。把空页面伪装成正常页面,短期看似乎保住了 URL,长期看是在消耗蜘蛛对站点的信任。