先给结论:当错误页面返回 200 时,不要只改状态码,也不要只改文案,而要先判断这个 URL 应该保留、改写还是退出。判断依据是页面内容与状态语义是否一致:如果内容确实是有效替代页,保留 200 并修正内链;如果内容只是空壳或错误提示,应返回 404 或 410;如果内容有价值但地址已失效,优先 301 到最接近的有效页。动作顺序错了,后续核对会一直自相矛盾。
误返回成功响应通常有两种相反表现。第一种是状态码 200,但页面正文只有“页面不存在”“内容已删除”之类提示,或者只剩导航和页脚。第二种是状态码 200,正文确实是可用的替代内容,但 URL 本身是旧地址,内链和站点地图仍指向它。两者都不能用同一套处理。
核对时先看响应体里有没有可索引的实质内容。可操作动作是:用命令行请求该 URL,保存响应头和正文,再人工判断正文是否与 URL 主题一致。如果正文只是错误提示,下一步应改为 404 或 410;如果正文是有效替代页,下一步应保留 200,但把旧 URL 改为 301 到新地址,并更新内链。这个动作的结果会直接决定后续是清理索引还是保留索引。
保留 200 不是默认选项。它成立的条件是:该 URL 返回的正文能独立回答用户问题,且与 URL 路径或标题主题一致。例如假设一个旧产品页返回 200,正文已经替换为同系列新产品的完整介绍,价格、参数、购买入口都可用,那么保留 200 比强行 404 更合理。代价是旧 URL 会继续参与索引,如果它和主推页面高度重复,可能造成多个地址竞争同一主题。
这时要做的动作是核对 canonical 和内部链接。如果保留 200,应把 canonical 指向自身或明确的主版本,并检查站内链接是否仍指向这个旧地址。如果 canonical 指向另一个页面,而状态码仍是 200,就要判断这是不是有意保留的重复内容。结果会影响下一步:canonical 自指就继续保留,canonical 他指且内容重复,就应考虑 301 而不是继续保留 200。
如果错误页面正文只有“找不到”或空模板,却返回 200,这属于状态与内容不一致。此时改写不是把错误提示写得更长,而是要么提供真实替代内容,要么退出索引。退出的具体动作是返回 404 或 410,并确认服务器没有把它重写到首页或统一错误页。404 和 410 的差别在于 410 更明确表示永久移除,但两者都不保证立即从索引消失,也不保证抓取工具立刻停止请求。
另一个动作是检查 robots.txt 是否被用来“屏蔽”这些 URL。抓取限制不等于可靠的索引移除:被 robots.txt 阻止抓取的 URL,如果外部仍有链接,仍可能以无摘要形式出现在结果中。所以不要用 robots.txt 代替 404 或 410。站点地图也不保证收录,移除站点地图中的 URL 只是减少发现路径,不是移除指令。把这些动作分开做,才能判断下一步该修内容还是修状态。
不要只看状态码。可以按下面顺序收集证据:
这些证据要合起来看。请求量或抓取量下降不能单独证明处理正确,也可能是季节波动、链接失效或抓取预算转移。反过来,某个 URL 仍被请求也不能证明它应该保留 200,可能只是旧链接尚未清理。假设一个旧活动页返回 200,正文是“活动已结束”,站内还有三个入口指向它。此时保留 200 会让用户继续进入无效页;改为 404 会损失可能仍有价值的品牌词流量;改为 301 到当前活动页则保留入口价值。选择取决于该页是否还有搜索需求,以及当前活动页是否足够接近。这个例子只用于说明比较方法,不是真实项目结论。
先做一次小范围核对:选出误返回 200 的 URL,保存响应头和正文,标记为“内容成立”或“内容不成立”。内容成立且地址仍可用,保留 200,修正 canonical 和内链;内容成立但地址已旧,301 到最接近的有效页;内容不成立,返回 404 或 410,并清理站内入口。完成后再复查同一批 URL 的响应头和正文,确认状态与内容已经一致。如果复查时发现 404 页仍返回 200,说明错误页模板或服务器规则没有真正生效,下一步应回到服务器配置,而不是继续改文案。HTTPS 只说明传输层加密,不保证页面内容有效,也不保证索引状态正确,因此不能拿它当作一致性依据。不同搜索引擎对 404、410 和 robots.txt 的处理支持情况需要分别核查,不能用一个平台的表现推断另一个平台。