先给结论:当错误页面返回 200 时,核对的顺序应该是先确认“内容语义”与“HTTP 状态”是否矛盾,再决定是修内容还是修状态,而不是先改 robots 或提交 sitemap。判断依据只有两个可观测事实:页面正文是否表达了“不存在/已失效/需跳转”,以及响应头里的状态码是否与这个语义一致。两者不一致时,200 会让抓取端把无效内容当有效页处理,收录加速的努力会被稀释。
这两种情况处理方向相反,先分类再动手。
选择依据:如果正文里出现“无结果”“已过期”“请返回上一页”这类语义,且页面没有可索引的实质主体内容,就应按“内容说没有”处理,目标是让状态与语义对齐。反之,如果正文有完整主题内容,问题在状态配置而非内容,应修状态。
不要只看浏览器显示的页面,浏览器会渲染错误页并掩盖状态差异。用可复查的方式取原始响应:
curl -I 或浏览器开发者工具的 Network 面板查看首行状态。这一步的结果直接决定下一步:若状态 200 而正文语义为“无内容”,进入状态修正;若状态为 404 而正文是有效主体内容,进入状态恢复。缺少这份对照记录,后续任何改动都无法判断是否真的对齐。
把误返回 200 的错误页改成 404 或 410,是常见动作,但有例外不能一刀切:
动作与结果的联动:改完状态后,重新取一次响应头,确认返回码已变,并确认正文语义未因模板改动而意外变化。只有这两项都对齐,才进入下一步观察抓取与索引状态。
假设某站点有一批已下架商品页,模板统一返回 200,正文显示“该商品已下架”。按上面的方法,先取响应头得到 200,再取正文得到“已下架”语义,判定为矛盾。动作是把这类页面改为 410,并保留“已下架”说明。结果是状态与语义一致,抓取端可据此判断为永久移除。若这些页面其实只是暂时缺货、数周后会恢复,则应改用 503,这就是例外条件对选择的影响。以上为说明比较方法的假设场景,不代表任何真实站点数据。
即使状态与语义已对齐,也不要仅凭“抓取量下降”或“某统计归零”就断定处理正确。抓取量变化还可能来自抓取预算调整、站点整体改版、外链变化或抓取端自身的调度波动。要判断处理是否有效,应把状态对照记录、正文语义记录与后续抓取日志放在一起看,确认变化发生在改动之后,且没有其他同期改动干扰。robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录;如果误返回 200 的页面同时被 robots 限制抓取,抓取端可能既看不到修正后的状态,也无法据此更新索引,这时需要先保证可抓取,再谈状态对齐。
把上面几步做完,你手里会有一份“URL—状态码—正文语义”的对照表。它既能支撑当前这批错误页的修正决策,也能在下次出现类似矛盾时,用同样的证据链区分是内容问题还是状态问题。