先给结论:错误页面返回 200 时,不要只盯状态码,要把“状态码、页面可见内容、返回的 HTML 主体”三者放在一起比对。只要其中一项与另外两项矛盾,就应优先怀疑内容与状态不一致,而不是继续加外链或反复提交站点地图。下面用一个假设情境说明核对顺序。
假设某站有一批商品下架页,服务器配置为:无论页面是否存在,一律返回 200 OK,页面正文显示“该商品已下架”。用户已尝试常规做法仍未解决,于是把注意力放在这个遗漏条件上。此时需要判断:返回 200 的到底是正常页面,还是伪装成正常页面的错误页。
核对的第一步不是改代码,而是取证据。用同一 URL 分别做两次请求:一次正常抓取,一次带条件请求头(如 If-Modified-Since),记录状态码、响应体长度、页面标题和正文首段。若两次都返回 200,但正文首段是“已下架”,就说明状态码与内容语义不一致。
正常页面应返回 200 并展示有效内容;已删除或永久下架的页面,理想情况下应返回 410 Gone 或 404 Not Found。如果页面正文明确写着“不存在”“已下架”,却返回 200,这就是不一致。此时下一步不是提交收录,而是先修状态码,否则后续任何提交动作都可能被同一矛盾抵消。
有些错误页会返回 200,但 HTML 主体只有导航和页脚,正文容器为空。核对方法是查看响应体长度,并与同模板的正常页面比较。若长度明显偏短,且正文关键词缺失,说明内容与状态不一致。此时应把该 URL 加入待修清单,而不是当作正常页面处理。
软 404 指页面内容表示不存在,但状态码仍为 200。常见原因是错误处理模板被复用到正常路由。核对时可在服务器日志中查找同一模板被哪些 URL 命中。若多个不同 URL 都返回相同空壳内容,说明问题在模板层,而不是单个页面。下一步应修模板或路由,而不是逐页提交。
修改后重新请求同一 URL,确认状态码变为 404 或 410,同时页面正文仍保留“已下架”提示。若状态码正确但正文变成空白,说明错误页模板被破坏,需要回退。验证通过后,再检查站点地图中是否仍包含这些 URL;若包含,应移除或标记为不推荐。注意,站点地图不保证收录,移除它只是减少误导信号。
另一个容易忽略的点是 robots.txt。若之前用 robots.txt 屏蔽了这些错误页,抓取限制不等于可靠的索引移除,已收录的 URL 仍可能保留在结果中。此时应优先让状态码正确,而不是依赖屏蔽。
并非所有“已下架”都必须返回 404。若页面仍有独立价值,例如提供替代商品入口、说明下架原因,并且内容对用户完整可用,保留 200 是成立的。判断条件是:页面正文是否提供了与 URL 匹配的实质信息。若只是空壳加一句提示,保留 200 就会制造内容与状态不一致,应改为 404 或 410。
假设一个页面返回 200,正文有 800 字说明和替代链接,另一个返回 200,正文只有“已下架”四个字。前者可保留,后者应修正。这个比较方法不依赖具体工具,只看内容是否支撑该 URL 的存在。
最后提醒:不同搜索引擎对软 404 的处理支持情况须分别核查,不要用一个引擎的表现推断另一个。核对顺序始终是:先取状态码与正文证据,再判断是否一致,最后决定修状态码还是修内容。只有这一步做对,后续的提交和观察才有意义。