当错误页面返回 200 时,搜索引擎会把该 URL 当作正常内容处理,问题不在“错误页本身”,而在状态码与页面内容对不上。核对方法是:先确认该 URL 是否属于“应该存在”的地址,再决定是修状态码还是改内容。如果它本应返回 404/410 却返回 200,必须让状态码与内容语义一致;如果它本应是有效页面,只是内容写错了,则优先修内容,不要为了省事把状态码改成 404。
两种条件下决策完全相反,所以第一步不是看日志,而是确认 URL 的业务归属。
判断依据可以来自站内链接、站点地图、后台数据表、URL 规则。如果一个 URL 在站点地图里、有内链指向、后台有对应记录,它大概率属于第二类。如果它只来自爬虫随机拼接或历史外链,且业务上已无对应内容,它属于第一类。
确认归属后,用同一份证据同时看“状态码”和“正文语义”,不要分开看。
curl -I 或浏览器开发者工具的 Network 面板记录响应状态码,确认是 200 而不是 404、410、301。这个动作的结果会直接决定下一步:状态码改对了,下一步是观察该 URL 是否从索引中消失;内容修好了,下一步是确认该 URL 是否重新被正常处理。两者不能混为一谈。
假设某站有一个商品详情页 /item/123,商品已下架,但模板仍返回 200 并显示“该商品已下架”。此时若只改文案为“商品不存在”,状态码仍是 200,搜索引擎仍可能把它当有效页面。正确做法是让服务器对该 URL 返回 404 或 410,同时页面保留对用户的说明。反过来,假设 /item/456 商品仍在售,但接口超时导致页面空白,此时返回 404 会把有效页面误判为不存在,应该修接口和模板,保持 200。两种情况的动作不同,前提是“该 URL 是否应有对应内容”。
有些页面返回 200 并非错误,而是设计如此。例如搜索结果页无结果时返回 200 并提示“没有找到”,这类页面是否算软 404 取决于它是否有独立价值、是否被内链和站点地图引用。如果它只是站内搜索的临时结果,通常不需要收录,可以用 robots.txt 限制抓取,但要注意:robots.txt 的抓取限制不等于可靠的索引移除,已收录的 URL 仍可能出现在结果中。若确实要移除,应结合 404/410 或 noindex 处理。
另外,站点地图不保证收录,把软 404 放进站点地图只会扩大问题。HTTPS 也不保证安全无漏洞或排名,它不能替代状态码与内容的一致性核对。不同搜索引擎对软 404 的识别和支持情况须分别核查,不能只按一家表现下结论。
改完状态码或内容后,不要只看一次请求就结束。用同一 URL 在不同时间、不同入口(直接请求、站内点击、站点地图)分别验证,确认状态码稳定、正文语义稳定。如果状态码从 200 改成 404 后,该 URL 仍出现在索引中,这不代表修改无效,可能只是处理延迟,也可能有其他入口在指向它。此时应检查内链和站点地图是否还在引用该地址,并决定是否清理这些引用。请求量或抓取量归零不能单独证明处理正确,还要看状态码与正文是否真正对齐。
最终判断标准只有一条:这个 URL 返回的状态码,是否与它实际承载的内容语义一致。一致则问题解决,不一致则继续按“应存在”或“不应存在”两个方向分别处理。