先别回滚。把最近一次修复涉及的对象、影响面和可观测信号列成三层依赖链,再判断新异常是修复本身造成的,还是修复暴露了原有问题。关键是找到两者共用的那个节点。
假设你刚处理完一个页面不被百度收录的问题,做法是给该目录加了 robots.txt 允许规则,并提交了新站点地图。随后发现另一批原本正常的页面开始从搜索结果里消失。这时候不要急着认定是站点地图提交导致的,因为两个现象可能共享同一个上游节点。
依赖链通常分三层:
修复动作落在哪一层,新异常就先从哪一层往下查。如果修复改的是入口层,而新异常出现在索引层,中间必然有一个传递节点,比如抓取配额被重新分配,或者旧 URL 被新规则误伤。
这两类原因的处理方向完全相反,需要先区分。
修复造成的异常,特征是时间上紧随修复动作,且受影响范围与修复范围高度重合。比如你只改了 /product/ 目录的规则,消失的页面也集中在这个目录,那大概率是规则写错或过宽。
修复暴露的异常,特征是受影响范围超出修复范围,且这些页面在修复前就已经有隐患。比如你提交站点地图后,百度开始重新抓取全站,结果发现另一批页面长期返回软 404 或内容重复,于是被清理。这不是修复的错,是修复让原本存在的问题变得可见。
可用的区分证据有三类:
如果三类证据都指向修复范围之外,就按“暴露”处理,不要回滚修复。
假设你怀疑是新的 robots.txt 规则误伤了其他目录。动作是:把规则改回修复前的版本,只保留最小允许项,然后观察抓取日志中受影响目录的请求是否恢复。
这个动作的结果会直接决定下一步:
注意,robots.txt 的抓取限制不等于可靠的索引移除。它只影响抓取,不保证已收录 URL 立刻消失。反过来,放开限制也不保证立刻恢复收录。所以这个动作看的是抓取请求的变化,不是收录结果的变化。
误判一:把抓取量归零当成处理正确。 抓取量下降可能有多种解释:规则生效、服务器响应变慢、百度自身调度变化、站点地图失效。单一指标归零不能证明你的修复方向对,需要结合状态码和内容返回一起看。
误判二:把站点地图提交当成收录保证。 站点地图只帮助发现 URL,不保证收录。如果新异常页面本来就不该被收录,提交站点地图只是让这个过程更快发生,问题根源在页面本身,不在提交动作。
另外,如果站点同时使用 HTTPS,不要因为“已经上了 HTTPS”就跳过渲染层检查。HTTPS 不保证页面无漏洞,也不保证排名或收录。它只是传输层的一个条件,和索引层的问题不在同一条链上。
回到你正在处理的页面或目录。先写下修复前它依赖的三个上游节点:哪个规则允许它被抓、哪个入口让它被发现、哪个模板决定它返回什么内容。然后对照新异常页面,看两者是否共用同一个上游节点。
共用,就拆那个节点,做最小改动并单独验证。不共用,就说明新异常另有原因,按渲染层和索引层继续往下查,不要动已经生效的修复。
拆依赖链的目的不是找到唯一元凶,而是让每一步改动都能被单独观察和回退,这样下一次异常出现时,你手里至少有一条清晰的因果路径可以走。