三种“页面不存在”,含义并不相同
服务器返回页面时会顺带给出一个状态码,蜘蛛主要靠它判断一个地址还有没有价值。404 表示找不到或已不存在,410 表示已明确永久删除,而软 404 则是页面已经不在了,服务器仍然返回 200,把用户和蜘蛛引到一个空内容或错误提示页上。三种信号对抓取路径的影响完全不同,处理方式也不该一样。
蜘蛛遇到 404 之后会做什么
不少站长以为页面返回 404,蜘蛛会当场把它从索引里划掉,实际并没有这么干脆。更常见的过程是:
- 蜘蛛下次走到这个地址,重新确认一次状态码;
- 如果多次抓取仍是 404,该地址的抓取优先级会逐步降低;
- 经过一段时间没有恢复迹象,才慢慢从索引中退出。
这个观察期的存在,意味着 404 本身并不可怕,可怕的是它长期挂在内链里,让蜘蛛每隔一段时间就回来确认一次。无效地址如果还被内链反复指向,消耗的是整站的抓取次数,而不只是这一个页面。
410 更明确,但不要随手使用
410 相当于告诉蜘蛛不用再来了,通常能更快地从索引中移除,适合内容确定不会恢复的情况,比如已下架的活动页、已删除的商品。
但要注意两点:一是并非所有 CDN、WAF 或站点框架都会原样透传 410,配置前最好用抓取工具确认返回头;二是如果内容只是临时下架,用 410 会让恢复过程更慢,这时保持 404 反而更合适。
软 404:返回 200 的空壳页面
软 404 指 HTTP 状态是 200,页面内容却是“抱歉,该内容不存在”“商品已下架”之类的提示。这类页面在蜘蛛眼里是正常存在的页面,会被当作低质量内容继续抓取,继续占用资源,还可能与真正有价值的页面争夺抓取机会。
常见的软 404 来源包括:
- 内容删除后只清空模板数据,没有改状态码;
- 参数错误或 ID 不存在时,统一跳回一个提示页;
- 旧版模板保留着 200 状态,内容区已经空了;
- 站内搜索的无结果页被当成普通页面返回。
清理死链,先看它影响到了谁
清理死链不只是删掉就行。一条失效 URL 可能同时存在于 Sitemap、导航、正文内链和外链中,处理顺序会直接影响蜘蛛的再抓取节奏。
- 先从 Sitemap 中移除已确认失效的地址,避免继续主动提交;
- 再看站内内链:能替换成有效地址的就替换,不能替换的去掉链接;
- 确认永久不再使用的地址,统一返回 410,其余保持 404;
- 最后处理有流量或外链指向的旧地址,用 301 指到最接近的新页面。
顺序反过来做,常出现“内链已经改好、Sitemap 还在提交旧地址”的混乱状态,蜘蛛会被两条互相矛盾的路径来回引。
死链本身不代表站点有问题,长期没人管的死链才会。判断标准很简单:这条地址还会不会被站内或站外的链接带到。
把清理变成日常习惯
站点规模一大,死链是持续产生的:栏目改版、商品下架、文章合并都会留下痕迹。与其等抓取异常时集中排查,不如固定周期做几件事——定期比对 Sitemap 与实际可访问的 URL、抽查日志中返回 404 较多的路径、新页面上线时顺手确认旧页面有没有留下空壳。这些动作不复杂,但能保证蜘蛛每次来的时候,走到的大多是还有内容的地址。