站点里最容易被忽略的一类页面,是“看起来还能打开,但里面什么都没有”的页面。它们返回 200,蜘蛛会当成正常内容抓走,可用户和搜索引擎都拿不到有用信息。这类页面常被称为软 404。
软 404 长什么样
软 404 不是一种 HTTP 状态码,而是一种结果:服务器告诉蜘蛛“这里一切正常”,但页面实际已经失效、为空或只剩模板。常见来源包括:
- 搜索结果页:查询词没有匹配结果,页面仍然返回 200,只有一句“暂无内容”。
- 商品或内容下架:URL 保留、模板还在,但主体信息被清空。
- 分页超出范围:站点其实只有 10 页,第 50 页却返回一个空白列表。
- 筛选组合无结果:颜色、尺寸、价格条件叠加后没有任何商品。
- 需要登录或权限:未登录用户看到的只是一段提示。
为什么它会干扰抓取路径
蜘蛛判断一个 URL 值不值得继续走,很大程度上依赖它在页面上看到什么。软 404 给出的信号是矛盾的:状态码说“正常”,内容却近于空白。
结果通常是三件事同时发生。第一,蜘蛛会把这些 URL 放进抓取队列,占用本来可以给真实页面的抓取次数。第二,页面上的导航、推荐位、相关链接仍然存在,蜘蛛会顺着它们继续走,形成大量内容重复的路径。第三,这些空页面可能进入索引,稀释整站质量信号。
软 404 最大的问题不是“多抓了一个页面”,而是它会持续制造新的、值得抓但没价值的地址。
怎么找出站点里的软 404
它通常不会出现在 404 报表里,需要主动查:
- 从服务器日志里筛出返回 200、但响应体明显偏小的 URL,和同类正常页面做对比。
- 抽查 Sitemap 中的地址,看是否还有实质内容,尤其是已下架、已归档的条目。
- 检查站内搜索结果页、筛选页、排序页是否被内链或 Sitemap 暴露。
- 看页面标题与正文:如果大量页面共用同一套标题和段落,很可能就是软 404 或近似空页。
处理方式:让状态码和内容一致
确定不会再有的页面
返回 404 或 410,并把指向它的内链和 Sitemap 条目一并清理。410 表达“已永久移除”,对蜘蛛来说更明确,但 404 同样有效,不必纠结用哪一个。
暂时缺内容的页面
如果只是临时无库存、暂时下架,保留 URL 并返回 200 可以接受,但要给出替代内容,例如同类推荐、说明文字,而不是留一个空壳。频繁在 200 和 404 之间来回切换反而更乱。
参数与筛选页面
对无结果的筛选组合,可以在服务端直接返回 404,或用 robots 规则、参数规范化限制蜘蛛进入。前提是先确认这些 URL 本来就不该被收录。
需要注意:canonical 或 noindex 不能替代状态码。它们影响的是收录判断,而蜘蛛仍然会抓取这个 URL。
修复时的顺序
- 先切断入口:内链、Sitemap、导航中的空页面地址。
- 再改状态码,让服务器如实表达页面是否存在。
- 然后观察日志,确认这些 URL 的抓取频次是否下降、是否还有新的空页面被生成。
不必一次性改完所有页面,但改动要成批、可回溯。软 404 属于结构性小问题,处理之后通常能看到抓取分布更集中,但具体表现取决于站点规模和内容更新节奏,不适合用“多久恢复”来判断。