很多站点在做状态码监控时只盯着“有没有报错”,只要没出现 404、500 就认为一切正常。但有一类页面,状态码是 200,内容却几乎为空——这类页面通常被称为软 404。它不会触发服务器告警,却会实实在在影响搜索引擎对整站质量的判断。
软 404 和真 404 差在哪
真 404 是服务器明确告诉蜘蛛:这个地址没有对应内容。软 404 则是地址可以正常访问、返回 200,但页面主体没有实质内容,可能只剩导航、页脚和一句“暂无数据”,也可能是被模板撑起来的空壳。
对蜘蛛来说,这两者的处理逻辑完全不同。返回 404 的 URL 会被逐步清理出索引;返回 200 的空页面则会被当成一个正常可访问的地址对待,需要继续抓取、继续评估。
常见的软 404 形态
- 商品或内容已下架,页面只剩一句“该内容不存在”,状态码仍是 200。
- 筛选组合没有结果,页面返回空列表,而不是提示无匹配数据。
- 分页超出实际范围,第 999 页照常返回 200 和一个空白列表。
- 登录或权限状态失效后,统一跳到一个通用提示页,状态码没有变化。
- URL 里的 ID 被改动后,程序做了容错处理,返回一个通用模板页而不是报错。
为什么它会影响收录
一个站点每天能被抓取的次数是有限的。当大量空壳 URL 返回 200,它们就会被视为“有效页面”反复进入抓取队列,真正有内容的页面能分到的抓取机会相应减少。这就是抓取资源被稀释的典型场景。
另一个影响是页面质量判断。搜索引擎在评估站点时,会看整体页面的内容厚度和独特性。如果站内相当比例的 URL 都是同一套模板加一句提示语,这些页面彼此高度相似,又不提供任何信息,整站的质量信号就会被拉低。
还有一层是索引层面。空壳页即使被收录,用户在搜索结果里点进去也看不到东西,这类页面往往拿不到展现,长期来看对站点没有正向作用。
怎么排查这些页面
- 抽样检查状态码分布。不要只看首页和栏目页,重点抽查带参数的列表页、详情页尾部、分页末页。
- 对比正文文本。抓取页面后提取正文,统计字数。同样是 200 的页面,正文只有几十个字且内容雷同的,基本可以判定为软 404。
- 看抓取日志。如果某些 URL 结构被蜘蛛频繁访问,但这类页面始终没有带来任何搜索流量,值得单独拉出来核对。
- 核对参数组合。把筛选、排序、分页参数穷举一遍,看看哪些组合会产出空结果,这些就是软 404 的高发区。
不同情况下的处理原则
- 内容永久不存在:直接返回 404 或 410,让蜘蛛明确知道该地址已废弃。这比一直返回 200 更清晰。
- 有明确的替代内容:用 301 指向最相关的新页面,而不是统一跳转到首页。批量跳首页容易被判定为软 404 的变体。
- 内容暂时缺失但会恢复:保留 URL,但页面上要有说明和推荐内容,避免只剩一句空白提示。
- 空结果页无法避免:至少让页面承载一些有效信息,比如筛选条件说明、相关推荐,或者对这类组合页统一加上 noindex。
- 分页/筛选参数:超出范围的分页可以考虑返回 404,或者用参数层面的规则在 robots.txt 中限制抓取,减少无意义的访问。
软 404 的麻烦之处在于它不吵不闹。服务器日志里全是一片 200,监控面板上一片绿色,问题却藏在内容里。定期做一次正文层面的抽样,比只看状态码更能发现问题。
判断一个页面该不该存在,标准不是“它能不能打开”,而是“它打开之后有没有值得用户看的内容”。