网站收录

返回 200 的空白页:软 404 怎么识别、怎么收敛

日志里全是 200,页面打开却是空的——这类软 404 不报错,却会持续消耗抓取并干扰收录判断。文章从识别方法讲起,按“值得保留”“确实该下线”“参数与筛选类”三种情况给出处理顺序,并列出常见误操作与后续抽查重点。

网站收录

返回 200 的空白页:软 404 怎么识别、怎么收敛

状态码说 200,内容却说“没有”

日志里一排 200,看起来一切正常;真正打开页面,首屏只有一句“暂无相关内容”或者一个空列表。这类页面在技术上不算报错,但在收录判断上属于软 404——服务器告诉爬虫“这里有东西”,页面本身却什么都没提供。

软 404 不等于错误页。它更像一种空壳:URL 可访问、状态码正常、模板完整,唯独主体内容缺失。搜索蜘蛛抓下来之后,会重新判断这个页面值不值得进索引,多数情况下不进,或者进了也不展示。

判断一个页面是不是软 404,不看状态码,看它被抓下来之后有没有可读的内容。

软 404 常从这几类页面来

  • 站内搜索结果页:没有命中时返回空列表,状态码仍是 200。
  • 空分类、空标签、空归档:栏目建好了,内容还没填。
  • 筛选与参数组合页:多重条件叠加后没有任何符合的结果。
  • 商品或内容下架页:原 URL 还在,内容被撤掉,只剩模板框架。
  • 需要登录或权限的页面:未登录用户拿到的是一个空容器。
  • 依赖 JS 渲染的页面:首屏 HTML 里是空的,内容靠脚本填进去。

第一步:先分清“暂时为空”和“确实没有”

  1. 抽样打开页面,看首屏到底有没有有效信息,别只看状态码。
  2. 查看未执行脚本时的 HTML,确认服务端实际返回了什么。
  3. 在日志里按模板或 URL 规则统计,看这批页面是零星几个还是一整类。
  4. 查这个 URL 是否曾经有过流量或外链,有过的话处理方式要更谨慎。

处理顺序:先分类,再决定留、改、还是下线

值得保留的,把内容补上

如果这类页面有搜索需求、有内链入口、后续会持续产出内容,就别急着让它消失。补上推荐条目、相关分类或导流模块,让它从空壳变成可用页面。

确实不该留的,用真实的状态码

下架的商品、作废的活动页、彻底不做的栏目,应该返回真实的 404 或 410,而不是用 200 加一句“内容不存在”。前者是明确信号,后者只会让爬虫反复来抓一个空页面。

参数与筛选类,从入口收敛

筛选组合理论上可以生成无数个 URL,大多数组合都没有单独收录的价值。与其让它们各自返回 200,不如从入口上收敛:限制可被抓取的参数、用 canonical 指向主列表页、必要时在 robots.txt 里挡住没有意义的组合。

几个容易踩的坑

  • 把软 404 当成“页面没问题”,只改文案不改信号。
  • 一刀切把空页面全部 404,连本来该保留的入口也一起处理掉了。
  • 前端路由的应用里,不存在的路径也返回 200,用户看到自定义提示页,爬虫看到的是正常页面。
  • 只处理 PC 模板,忽略移动端或另一套渲染方式。
  • 改完不复查,旧链接仍被外链和站内引用,继续产生 200 空页。

怎么盯住它,别让它再长回来

  1. 按模板建立抽查清单,新上线的分类页、筛选页、搜索结果页都过一遍。
  2. 在日志里定期看“200 但内容极少”的 URL 占比,出现增长就去找来源。
  3. 把站内搜索、筛选、下架这三类当作重点监控对象,它们最容易批量产生软 404。
  4. 改动之后隔一段时间再看一眼,确认这些 URL 没有再被频繁抓取。

软 404 的麻烦之处在于它不报警:状态码正常、页面能打开,问题只会在抓取与索引的统计里慢慢显现。定期抽查几类高危模板,比事后大批量清理省事得多。