站点运营

站点运营:软 404 自查,别让空页面顶着 200 的状态码被蜘蛛抓走

页面内容已经空了,状态码却还是 200,这类软 404 会持续消耗抓取资源,也让蜘蛛对站点质量的判断变得模糊。本文给出状态码确认方法、容易被忽略的几类页面,以及按内容实际情况选择 404、410 或 301 的处理原则。

站点运营

站点运营:软 404 自查,别让空页面顶着 200 的状态码被蜘蛛抓走

很多站点在清理内容、调整栏目或下线商品时,只关注“页面还在不在”,却忽略了服务器返回的状态码。结果是页面已经空了,状态码还是 200。蜘蛛拿到的是“正常页面”,用户看到的是“什么都没有”,这类页面通常被称为软 404。

软 404 为什么值得单独自查

硬 404 至少是诚实的:页面不存在,服务器直接说 404,蜘蛛会把它从索引里慢慢清掉。软 404 则相反,它对外宣称页面正常,但内容要么为空、要么只剩一句“抱歉没有找到相关内容”。对蜘蛛来说,这等于把一批低价值页面主动送进了抓取队列,抓取预算被消耗,站点整体质量判断也可能受到影响。

常见的软 404 集中在几类场景:已下架商品仍返回 200;栏目调整后旧列表页只剩空壳;搜索无结果、筛选无结果时直接输出 200;内容被删除但模板还在,页面只剩页头和页脚。

自查清单:先把状态码看准

1. 用命令行或开发者工具确认状态码

最直接的办法是看响应头。对可疑 URL 逐个执行 curl -I,或者打开浏览器开发者工具的 Network 面板,查看第一条请求的 Status。注意区分:200 表示正常返回,404 表示不存在,410 表示已永久删除。如果页面显示“内容不存在”,状态码却是 200,基本可以判定为软 404。

2. 检查模板层的兜底逻辑

不少软 404 来自模板:详情页找不到数据时,程序没有中断,而是继续渲染了一个空模板。可以翻一下详情页、列表页、搜索页的模板,看“数据为空”分支里到底返回了重定向、状态码,还是照常输出页面。

3. 重点排查这几类页面

  • 已下架商品、已删除文章,模板仍在输出页面;
  • 搜索页无结果、筛选组合无结果,被当成普通页面返回;
  • 分类下已无内容的空归档页;
  • 用户中心、订单详情等需要登录、未登录时只剩空壳的页面;
  • 参数错误触发的报错页,状态码却是 200。

4. 结合日志与抓取统计

在访问日志里筛选“返回 200 但响应体积极小”的 HTML 请求,往往能揪出一批软 404。搜索引擎提供的站点管理工具中,抓取统计与页面索引状态,也能反映“已抓取但未索引”是否集中在某个栏目。

处理原则:让状态码和内容保持一致

  1. 内容真的没了:返回 404 或 410,并让 404 页面提供站内搜索、热门栏目等出口。
  2. 内容换了地址:用 301 指向新地址,不要用 302 或 JS 跳转长期替代。
  3. 内容暂时为空:新栏目还没内容时,可以先不放出入口,等有内容再开放。
  4. 无结果的搜索页与筛选页:返回 404,或加上 noindex,并避免内链指向这类组合 URL。
  5. 需要登录的页面:用 401、403 或 robots.txt 处理,不要让蜘蛛抓到空白页。
提示:改完状态码不要马上期待索引变化。删除类页面从被发现到从索引移除需要时间,先保证状态码正确,再观察抓取趋势。

顺手做的两件小事

  • 让 404 页面返回真正的 404 状态码,而不是 200 加一句“页面不存在”的文案;
  • 把“日志中 200 状态下体积异常小的 HTML 响应”列为例行检查项,每月扫一次。

软 404 不会立刻带来明显问题,但它会持续消耗抓取资源,也让站点呈现给蜘蛛的信号变得模糊。把它纳入站点运营的常规自查,成本不高,收益是长期的。