先给结论:当错误页面返回 200 时,不能只看状态码判断修复是否完成。正确做法是把“HTTP 状态码、渲染后正文、百度蜘蛛日志里的取回结果”三份证据对齐;若三者不一致,应优先保留原始响应证据,再决定是改写内容、保留软 404 还是彻底退出该 URL。下面按可核对的顺序展开。
错误页返回 200 之所以难查,是因为它同时骗过浏览器、监控工具和部分抓取日志。常见假象有三类:
这三类假象的共同点是:状态码与内容语义脱节。核对时要把“成功响应”拆成两层——传输层成功和语义层成功。传输层成功只说明服务器返回了字节,语义层成功才说明这个 URL 对应的内容真实存在。
建议按固定顺序收集证据,避免先入为主:
curl -I 或等价方式记录状态码、Content-Type、Content-Length。注意 -I 只发 HEAD 请求,部分服务端对 HEAD 与 GET 返回不同状态码,所以还要补一次 GET 响应头。把三份证据并列后,会出现四种组合。若响应头 200、正文是错误语义、日志也是 200 且字节数与错误页一致,说明错误页被当作正常页持续输出,这时应进入下一步取舍,而不是直接改状态码了事。
确认不一致后,不要一律改成 404。三种处理方式各有前提:
这里有一个容易忽略的边界:robots.txt 的抓取限制不等于可靠的索引移除。如果你用 robots.txt 屏蔽错误页,百度蜘蛛可能无法取回状态码,反而让核对失去依据。所以核对阶段应先允许抓取,确认状态与内容一致后,再决定是否调整 robots.txt。
假设某站点有一个商品详情页模板,当商品 ID 不存在时,服务端仍返回 200,正文渲染出“商品已下架”。此时三份证据可能是:响应头 200、渲染后正文含“已下架”、百度蜘蛛日志显示 200 且取回字节数与正常页接近。
若直接把这个 URL 改成 404,可能影响仍依赖该模板的其他有效商品页;若保留 200 不改,错误语义会继续被当作正常内容。更稳妥的动作是:先保留原始响应头和渲染正文截图,再修正模板逻辑,让不存在的商品 ID 返回 404,而存在的商品 ID 继续返回 200 与真实内容。修正后重新取回同一 URL,核对状态码是否变为 404、正文是否不再出现“已下架”。这个动作的结果会直接决定下一步:如果状态码仍为 200,说明修改未生效或存在缓存,需要继续排查;如果状态码与正文一致,才进入是否提交站点地图或调整内链的阶段。站点地图不保证收录,所以不要把它当作核对手段。
第一,不要把“抓取量归零”当作修复成功的唯一证据。抓取量下降可能来自抓取预算调整、robots.txt 变化、服务器响应变慢或百度自身调度,不能单独证明错误页已处理正确。第二,不要用 HTTPS 作为内容正确的依据。HTTPS 不保证安全无漏洞或排名,它只说明传输加密,与状态码和正文语义无关。
真正可复查的证据是:同一 URL 在修改前后,状态码、渲染后正文和百度蜘蛛日志三者是否指向同一结论。若三者仍不一致,应回到证据收集阶段,而不是继续改状态码。