软 404 为什么比 404 更麻烦
正常的 404 会明确告诉蜘蛛“这个地址没有内容了”,而软 404 是另一回事:地址能打开,状态码是 200,页面却只剩一个空模板、一句“暂无结果”,或者早就下架的商品框架。对访客来说这是空手而归;对搜索引擎来说,它仍然是一个正常页面,于是被反复抓取、反复评估,既占用抓取额度,也会让站点的整体内容质量看起来比实际更差。
软 404 通常不是一次性故障,而是长期累积的结果。删内容时只删了数据没处理 URL,搜索结果为空时照常渲染整页,栏目没有内容却保留着入口,这些做法都会慢慢堆出一批空壳地址。
常见触发场景
- 站内搜索返回零结果,页面依旧返回 200。
- 商品或文章下架,URL 保留但正文已经为空。
- 分页参数超出范围,模板渲染出空白列表。
- 需要登录的页面未登录时,返回 200 的登录提示页。
- 接口出错,模板降级成“加载失败”的空页面。
- 栏目没有内容,只剩标题和导航。
- URL 大小写或参数写错,程序兜底给了首页或空页。
怎么发现
看抓取日志和正文长度
服务器日志里,状态码 200 只说明请求成功了。把日志和页面正文长度、关键词数量放在一起看,就能发现那些状态码正常、内容却接近空白的 URL。抓取频率高、正文词数却长期很低的地址,通常就是可疑对象。
抽样抓取与覆盖率报告
用爬虫工具对全站做一次抽样抓取,记录每个 URL 的状态码、正文长度和标题。搜索引擎后台的覆盖率报告同样有用,尤其是“已抓取但未编入索引”“软 404”这类提示,往往直接给出样例地址。
- 导出最近一段时间的访问日志,按 URL 聚合。
- 筛出状态码为 200 的记录。
- 合并正文长度或词数数据。
- 标记长度明显低于同类页面的地址。
- 人工抽查,确认是模板问题还是内容问题。
处理方式怎么选
发现软 404 后,先判断这个地址是“真的没有了”还是“暂时有问题”,再决定怎么处理。
- 内容永久移除:返回 404,如果确认不会再恢复,410 也可以,让蜘蛛不再把它当有效页面。
- 临时故障或维护:返回 503,恢复后及时解除,避免被误判为长期失效。
- 搜索无结果、筛选无结果:可以返回 noindex,同时给访客提供返回入口或替代推荐。
- 需要登录的内容:未登录时返回合适的跳转或状态,不要让登录墙伪装成正文页。
- 栏目暂时为空:要么补充内容,要么先不放出入口,别让空栏目长期挂在导航里。
注意 noindex 和 404 的区别:noindex 只是不索引,页面仍可能被反复抓取;如果内容真的不再提供,用 404 或 410 更干脆。反过来,如果页面还有价值、只是不想进索引,就不要顺手删掉。
把检查纳入日常
软 404 最容易在改版、批量下架、接口调整之后集中出现。上线前用抽样抓取跑一遍,把状态码和正文长度一起看;上线后留意覆盖率报告里的变化。站点地图也只保留有效内容地址,别把空页面继续提交出去。
内链和导航同样要跟着更新。指向已删除页面的链接,会把访客和蜘蛛引到空壳上,等于自己制造软 404。删内容的时候顺手清理入口,比事后回头补要省事得多。
定期抽查不需要太复杂:从日志里随机取一批 200 状态的 URL,看看有没有标题还在、正文很薄、只剩导航和页脚的页面。发现一批就修一批,时间长了,软 404 的比例自然降下来。