先给结论:当错误页面返回 200 这类“成功”状态时,百度看到的是一份可索引的正常内容,而不是错误信号。核对一致性的关键动作,是把状态码、页面可见正文、HTTP 响应头里与内容相关的字段放在同一次请求里比对,任何一项对不上,都说明“内容与状态”已经脱节,需要先修一致性,再谈收录。
假设某站点改版后,一个已下架商品的详情页仍可访问:运维看到监控显示“HTTP 200,服务正常”;编辑打开页面看到“商品已下架”的提示文字;SEO 同事用抓取工具看到的是 200 加一段正常 HTML。三方都没说错,但结论互相冲突——因为大家核对的不是同一组事实。
这个分歧可以转成一个可核对的项目:同一次请求下,状态码、可见正文、内容相关响应头是否指向同一个页面语义。先把这个项目定义清楚,后面的取舍才有依据。
建议固定一组可复查的证据,而不是凭印象判断:
Content-Type 是否与正文实际类型一致,是否存在把错误页当成正常 HTML 输出的情况。curl -I 或浏览器开发者工具的 Network 面板,确认是否发生了 301、302 或前端脚本跳转,以及最终落地页的状态码。这四项要在同一次请求里取,分开取容易得出互相矛盾的结论。记录时把 URL、时间、状态码、正文关键句一并留存,方便不同角色对照同一份证据。
确认不一致后,通常有两条路,选择取决于页面是否还有可替代的内容:
选择的分界点是:这个 URL 对用户是否还有可交付的内容。有,就走第二条;没有,就走第一条。两者都不成立时,才考虑跳转,并核对跳转后的落地页状态。
假设某站有 500 个已下架商品页,当前全部返回 200,正文写着“商品已下架”。若只把状态改成 404 而不动正文,百度读到的仍是“已下架”文字加 404,语义一致,方向正确;若只改正文、状态仍为 200,则不一致依旧存在。这个例子只用于说明比对方法:先确定页面语义,再让状态码和正文同时指向它。抓取量或请求量下降本身不能证明处理正确,它也可能来自抓取预算变化、链接减少或统计口径调整,需要结合日志和实际响应逐项排除。
下一步动作很具体:对存在分歧的那批 URL,逐个取一次响应,把状态码、正文关键句、内容相关响应头和跳转链路记进同一张表,然后按“URL 是否还有可交付内容”分组。分组完成后,再决定改状态还是改正文。这样做的结果是把“谁说得对”变成“哪一项事实对不上”,修复范围也随之收敛到真正不一致的那部分 URL,而不是整站重做。
需要提醒的是,即使状态与内容修到一致,也不代表百度一定收录或立刻移除,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。一致性是必要条件,不是收录承诺。