页面被删除、下架或临时不可用时,很多站点只做了删掉内容这一步,服务器仍然返回 200,页面也还能打开,只是里面空了。这种状态对用户和爬虫都是模糊信号:它既不是可用的内容页,也不是明确的已下线。
三种页面没了的信号
从 HTTP 层面看,一个 URL 不再提供内容,通常有三种表达方式。
- 404:资源不存在。这是最通用的找不到,适合已经不打算再提供、也没有合适替代页面的 URL。
- 410:资源曾经存在,现在被永久移除。语义上比 404 更明确,但爬虫对两者的处理差异没有想象中那么大。
- 301 或 302 重定向:页面换了地址或有了新的归属,用户应该被带到新的 URL。
这三种都可以是正确选择,取决于这个 URL 之后还有没有价值。真正需要避免的,是第四种状态:内容没了,但服务器依然返回 200。
软 404 长什么样
软 404 指的是页面返回 200,但实际内容为空、报错或与用户预期不符。它不一定是空白页,常见的形态包括:
- 商品下架后保留了模板框架,只剩标题和暂无库存
- 列表页筛选出 0 条结果,但仍返回 200
- 错误页面返回 200,而不是 404
- 文章被清空,只剩导航、页脚和评论区
- 用 JS 读取参数失败后显示空白,但初始响应仍是 200
这些页面对爬虫来说都是可抓取的,于是可能被反复抓取,甚至进入索引。
为什么它会影响收录
搜索引擎判断一个 URL 是否值得保留在索引中,会看它提供的内容与用户意图是否匹配。返回 200 的空壳页面,会让这个判断变得困难。
返回 200 并不代表页面合格,它只代表服务器愿意把这份响应交给客户端。内容是否成立,是另一层判断。
实际影响通常体现在几处:一是抓取资源被空页面占用,真正需要更新的页面来得更少;二是站内出现大量低信息量 URL,稀释了站点整体的内容质量信号;三是用户从搜索进入后立刻返回,行为数据也不理想。
怎么发现站内的软 404
- 在搜索控制台的页面报告中查看软 404 分类,它会列出被判定为软 404 的 URL 样本。
- 抽查站内返回 200 但内容极少的页面,尤其是筛选页、搜索结果页、下架商品页和空分类页。
- 用日志观察:哪些返回 200 的 URL 被反复抓取,但长期没有带来任何有效内容变化。
- 检查错误处理逻辑,确认 404 页面本身返回的是 404,而不是 200。
处理顺序:先定状态,再定去向
发现软 404 后,不建议直接批量改成 404,先回答两个问题:这个 URL 以后还会不会提供内容?有没有更合适的替代页面?
- 如果页面只是暂时缺内容,尽快补上;补不上就考虑合并到相关页面。
- 如果 URL 永久不再使用,且没有替代页面,返回 404 或 410。
- 如果有明确的替代页面,用 301 指向最相关的那一个,避免统一跳到首页。
- 如果 URL 必须保留但不想出现在索引中,用 noindex,同时保证页面本身有可读内容。
- 改完后观察一段时间,确认状态码在服务器层和页面层都生效。
几个容易踩的坑
- 用 200 的错误页代替 404,爬虫会当成正常页面继续抓取。
- 用 JS 跳转到 404 页面,初始响应仍是 200,信号不明确。
- 把大量下架商品统一 301 到首页,容易被当作软 404 处理。
- 只在 robots.txt 里屏蔽,而不处理状态码。屏蔽抓取不等于让页面退出索引。
- 页面已返回 410,但站内还有大量内链指向它,爬虫会持续发现这个地址。
页面下线是站点运营里很常见的动作,但删内容只是第一步。把状态码、重定向和索引信号表达一致,爬虫才能正确理解这个 URL 的现状,也才谈得上把抓取和收录的资源留给真正有价值的页面。