站点上有一类地址,返回的是 200,页面框架也正常,只是正文位置写着“暂无相关内容”“该商品已下架”“活动已结束”。对用户来说这只是个小遗憾,对搜索蜘蛛来说却是一个看起来完整的入口——它会被当作正常页面排队、再次回访。时间一长,这些页面会挤占抓取预算,让真正有更新的地址排在后面。
软 404 与真正的 404 有什么不同
真正的 404 或 410 是明确的信号:这个地址没有内容,蜘蛛会较快降低回访频率。软 404 的问题在于状态码仍然是 200,页面里还有导航、页脚、推荐位等通用内容,蜘蛛无法仅凭状态码判断页面已失效,会按照普通页面的节奏持续抓取。
判断标准不是“页面能不能打开”,而是“这个地址是否还有独立、可被检索的有效内容”。
常见的触发场景
- 列表页筛选或排序后结果为零,例如带参数的筛选组合没有匹配商品;
- 商品、文章下架后页面保留,只把标题改成“已下架”;
- 活动、专题页到期,模板仍在但内容被清空;
- 分页超出实际范围,第 50 页之后没有数据却仍返回 200;
- 参数拼写错误或大小写变形,被程序兜底到默认空模板。
排查思路
- 从服务器日志中筛选状态码为 200 且响应体偏小的地址,特别是带筛选参数的 URL;
- 按模板归类,找到“空状态”渲染与正常渲染的差异标记,例如特定的空提示文案或占位节点;
- 抽样查看返回内容,确认是内容缺失还是渲染问题;
- 对照 Sitemap 和内链入口,统计哪些空页面仍在被主动推送或频繁链接;
- 观察这些地址的抓取频次变化,判断是否长期占用抓取资源。
处理方式的分层
不是所有空页面都要一律删除,按“是否会再次产生内容”来分层更合理。
- 永久无内容:下架商品、已结束活动,返回 410 或 404,并从内链和 Sitemap 中移除;
- 可能恢复:暂时缺货的详情页,保留 200 但补充说明内容与替代推荐,避免整页空白;
- 参数筛选空结果:返回 404 或加 noindex,同时把筛选入口收敛到有结果的组合上;
- 超出范围的分页:超出最后一页返回 404,而不是继续渲染空列表。
内链与 Sitemap 的同步清理
状态码改对只是第一步。如果内链仍然指向这些地址,蜘蛛还是会顺着链接继续发现它们,清理效果会被抵消。建议在调整状态码之后,同步检查导航、相关推荐、标签页和站内搜索结果的输出逻辑,把空页面从链接池里去掉。Sitemap 也应按同一标准生成,只提交当前有有效内容的地址。
观察回稳
清理之后不会立刻见效。抓取频次和入口数量的变化通常需要几轮抓取周期才能体现,可以用日志中的抓取分布来对比:空页面抓取占比是否下降、有效页面是否获得更多抓取次数。如果一段时间后发现空页面仍在被大量抓取,优先检查是否还有残留入口,而不是急于继续调整状态码。
软 404 的治理本质上是入口质量的管理:让蜘蛛看到的每一个地址,都对应一份值得抓取的内容。