核心动作是把“状态码”和“实际渲染内容”当成两条独立证据链,分别抓取、对照,再决定重定向是否成立。如果页面返回 200 却显示错误提示、空模板或旧内容,重定向并没有真正完成,下一步应修正内容或改回正确状态码,而不是继续追加跳转规则。
假设某站点准备下线一套旧系统,其中约三成页面仍有访问价值,需要迁移到新路径;其余页面应返回 404 或 410。运维先批量配置了 URL 重定向,把旧路径统一指向新栏目。上线后,抽查发现部分旧路径返回 200,但页面正文是“内容不存在”或空白模板。此时不能因为状态码是 200 就认为重定向成功。
这个情境的关键是:状态码描述服务器对请求的处理结果,内容描述用户和抓取程序实际看到的东西。两者不一致时,重定向的意图就没有落实。
不要只在一个浏览器标签里看。用命令行请求头确认状态码和跳转链,再把响应正文保存下来检查。例如:
curl -I -L https://example.com/old-page
这条命令会显示每次跳转的状态码和最终地址。如果最终返回 200,继续抓正文:
curl -L https://example.com/old-page -o page.html
然后打开 page.html,核对标题、正文首段、主要链接和结构化数据是否属于目标内容。若正文里出现“页面不存在”“已下线”“请返回首页”等字样,即使状态码是 200,也应视为内容与状态不一致。
实际动作的结果会直接影响下一步:如果正文是目标内容,问题可能只是跳转链过长,应检查中间跳转;如果正文是错误提示,问题在目标页本身,应修正目标页或改回 404/410。
curl -I -L 的最终地址没有变化。这三种情况的处理方向不同:软 404 要改内容或状态码;跳错目标要改规则;跳转链中断要检查规则顺序和匹配条件。
对每个旧路径,至少记录四项:旧路径、期望结果、实际状态码、实际正文摘要。期望结果只有两种:迁移到新路径,或明确返回 404/410。实际正文摘要写一句能区分内容的话,例如“新栏目文章标题”或“错误提示文案”。
对照后按以下条件决策:
这个对照表的价值在于:它把“感觉上跳过去了”变成可复查的证据,避免用一次浏览器访问就下结论。
第一,把 robots.txt 的抓取限制当成索引移除手段。限制抓取不等于页面会从索引消失,也不等于错误页面会被正确处理。第二,把站点地图当成收录保证。站点地图只提交候选地址,不决定状态码和内容是否一致。
另外,HTTPS 只说明传输层加密,不保证页面内容正确,也不保证排名。核对一致性时,仍要回到状态码和正文本身。
如果发现请求量或抓取量下降,不能单独证明重定向处理正确。缓存、规则变更、外部链接变化都可能造成同样现象。应继续用逐条对照的方式确认每个旧路径的实际结果。
完成第一轮对照后,只修改被证据证明有问题的规则:软 404 的目标页补内容或改状态码;跳错目标的规则改匹配条件;跳转链过长的合并中间跳转。修改后重新抓取同一批旧路径,确认状态码和正文摘要都符合期望。
最后保留一份包含旧路径、期望结果、修改动作和复验结果的记录。这样当旧内容、旧系统或旧合作关系再次退出时,可以直接复用同一套核对方法,而不是重新猜测哪些 URL 重定向真正生效。