先给结论:当错误页面返回 200 时,不要只看状态码就判断它会被当作正常内容收录,也不要只看页面文案就认定它一定被排除。正确做法是把“响应状态、响应正文、页面自述语义、内链与站点地图指向”四类信号放在一起比对,找出彼此矛盾的那一项,再决定是保留该页、改写成有实质内容的页面,还是让它以真正的错误状态退出索引候选。
状态码描述的是“这次请求是否被成功处理”,而不是“这个页面是否值得被收录”。一个不存在的商品页、过期的活动页、被删掉的分类页,如果服务器仍然返回 200 并渲染出“抱歉,内容不存在”的模板,抓取端拿到的就是一次成功响应。此时页面是否能进入索引,取决于正文是否被判定为有效内容、是否有内链指向、是否出现在站点地图中,而不是由那句“内容不存在”的文案单独决定。
反过来,返回 404 或 410 也不等于立刻从索引中消失。抓取限制、站点地图、HTTPS 都与“是否被收录”不是同一件事:robots.txt 的抓取限制不等于可靠的索引移除,站点地图不保证收录,HTTPS 不保证安全无漏洞或排名。这些信号各自独立,不能互相替代。
把下面四项列成一张对照表,逐项确认它们是否指向同一个结论:
curl -I 或浏览器开发者工具的网络面板看首字节返回的是 200、404 还是 410。注意区分服务端返回的状态与前端路由改写后的状态。只有这四项一致时,判断才可靠。若状态为 200、正文为空、语义为错误、但站点地图仍在提交,那么矛盾集中在“外部指向”这一项,优先处理它。
选择保留(维持 200)适用于:该 URL 仍有搜索需求或外链价值,且你能把它改写成有实质内容的页面——例如把已下架商品的 URL 变成同品类推荐页或替代型号说明页。代价是必须真正补齐正文,否则 200 加空模板会持续制造低质页面。保留的前提是内容可被改写,而不是仅把错误提示换个说法。
选择改写为聚合页或引导页适用于:该 URL 对应一个曾经有流量、但单个实体已消失的主题。例如某型号停产后,把原详情页改为该系列的对比或选购说明。这里的动作是替换正文主体,而不是保留“不存在”的语义再挂几件推荐商品。若做不到这一点,改写只会变成软 404。
选择退出(返回 404 或 410)适用于:内容确实永久消失、没有替代实体、也没有必要保留该 URL。此时应让服务端返回真实错误状态,并从站点地图和内链中移除指向。代价是历史外链带来的信号会逐步衰减,短期内该 URL 可能仍出现在结果中,直到抓取端重新确认状态。
三种选择之间没有普适优先级,取决于该 URL 是否还有可承接的内容实体。判断依据是“这个地址背后还能不能写出对用户有用的东西”,而不是“哪种状态码更省事”。
假设某站有 500 个已下架商品页,服务器统一返回 200 并渲染“商品已下架”模板,模板内只有一句提示和四个推荐位。核对时可以这样分步:
这个例子的数字仅用于说明分组比较的方法,不代表任何真实站点的处理结果。关键动作是“先抽样核对、再分组处理、后复核一致性”,而不是一次性全站改状态码。
第一,把请求量或抓取量下降直接当成处理正确的证据。抓取量归零还可能来自服务器不稳定、robots.txt 变更、站点地图提交中断或抓取预算重新分配,不能单独证明错误页已被正确处理。第二,用 robots.txt 屏蔽错误页来代替返回真实状态。屏蔽抓取会阻止抓取端读取页面内容,但已收录的 URL 仍可能保留在结果中,这属于抓取限制而非索引移除,两者不能混为一谈。
复核的落点是四类信号是否重新一致:状态码、正文、页面语义、外部指向。只要其中一项仍在说相反的话,就说明处理没有完成,下一步应针对那一项继续修正,而不是急着扩大处理范围。