站点运营

站点运营:404 与软 404 自查,别让蜘蛛把无效页当成正经内容

页面明明已经没了,服务器却还在返回 200,这类软 404 会悄悄吃掉抓取预算。本文梳理 404、410 与软 404 的区别,列出空列表页、下架商品、失效路由等常见来源,并给出日志抽查、状态码配置和自定义 404 页的实操步骤。

站点运营

站点运营:404 与软 404 自查,别让蜘蛛把无效页当成正经内容

抓取预算有限,蜘蛛每次来访都是一次机会。如果它把时间花在一堆已经不存在、却仍返回 200 的页面上,真正有价值的栏目和内容就会被少看几眼。404 与软 404 自查,就是把这些假页面挑出来,让状态码说实话。

一、先分清三种状态

硬 404 与 410

页面确实没了,服务器返回 404 Not Found,这是最标准的做法。如果内容是永久删除、不会再恢复,410 Gone 表达得更明确,部分搜索引擎对它的处理会更快一些。两者都不会伤害站点整体质量,反倒是长期挂着无效 URL 更容易积累噪音。

软 404 是什么

软 404 指的是:页面实际已经没有内容,或者内容与用户预期完全不符,但服务器依然返回 200 OK。对蜘蛛来说,这等于告诉它这里有一篇正常内容,于是它会照常解析、照常占用预算,甚至可能把空页面放进索引。

二、软 404 通常从哪冒出来

  • 商品下架、文章删除后,模板还在渲染,只剩标题和推荐位。
  • 列表页翻到超出范围的页码,返回 200 但列表为空。
  • 站内搜索无结果时,用同一个搜索模板返回 200。
  • 前端路由没配好,不存在的路径被单页应用兜底渲染成内容页。
  • 旧 URL 全部 301 到首页,蜘蛛拿到 200,内容却和原地址毫无关系。
  • 筛选参数组合出大量只有一两条结果的页面,内容高度重复。

三、手动自查的几步

  1. 从服务器日志里筛出抓取量靠前的 URL,随机抽 30 到 50 条逐一访问。
  2. 用命令行工具只看响应头,确认状态码,不要被页面上写着的 404 字样骗到。
  3. 检查这些页面的正文长度,明显少于同栏目平均值的单独标记出来。
  4. 把所有跳首页的旧链接列成清单,判断该保留、该 301 到相关页,还是该直接 404。
  5. 对分页和搜索页设定规则:超出范围返回 404,无结果页考虑改状态码或加抓取限制。

四、服务器层面把状态码用对

核心原则是:让状态码和页面真实情况一致。删除的内容就返回 404 或 410,迁移的内容 301 到最相关的新地址,不要统一倒进首页。前端渲染的站点尤其要注意,路由兜底组件不能一律返回 200,服务端应根据路由表判断是否存在对应资源。

自查时容易被忽略的一点:页面顶部写着抱歉、内容不存在,但 HTTP 状态码是 200。对用户是提示,对蜘蛛是正常页面,两者并不等价。

五、自定义 404 页该放什么

  • 明确的说明文字,一句话讲清楚页面为什么打不开。
  • 回到首页、对应栏目、站内搜索的入口,帮用户继续走下去。
  • 不要把所有 404 都自动跳转,跳转会让状态码失去意义。
  • 保持页面轻量,不要挂大图和复杂脚本。

六、把 404 日志变成巡检清单

定期统计 404 日志里的来源,重点看两类:一类是站内链接指过去的 404,说明内链或模板有坏链,修掉即可;另一类是外部仍大量引用的旧地址,如果内容还有价值,考虑恢复或 301 到替代页。把这两类分开处理,比笼统地减少 404 数量更有意义。

404 本身不是问题,状态码和页面内容互相矛盾才是问题。花半小时抽查一轮,往往能发现几个持续消耗抓取预算的角落。