先判断失效发生在哪一层:是链接本身在深层页面里不再输出,还是输出正常但抓取被拦,还是抓取正常但渲染后链接消失。入口页正常只能说明首页到第一层没问题,深层断点通常出现在第二层之后,所以定位要从“入口页能通”这个事实出发,逐层缩小到第一个不再出现目标链接的页面。
深层链路失效至少有三种可区分的原因,处理方式完全不同。
判断方法:取一个深层页面,分别看原始HTML、禁用脚本后的DOM、以及抓取工具实际拿到的响应。三者中链接第一次消失的位置,就是断点所在的层。这一步的动作结果决定下一步:如果原始HTML里就没有链接,直接查模板;如果原始HTML有而抓取响应没有,查抓取限制;如果两者都有但页面不可达,查渲染依赖。
找到断点后,是否保留这条链路取决于三个前提。
保留适用于:目标页面仍有独立价值,且断点只是模板临时条件造成。此时修复模板条件即可,不需要改链接结构。前提是你能确认断点在模板层而非数据层。
改写适用于:目标页面已合并或迁移,旧链接指向的地址不再返回有效内容。此时应把深层链接改写到新地址,而不是保留一个会持续失效的入口。前提是新地址本身可被抓取,并且不是重定向链的中间节点。
退出适用于:目标页面已下线且没有替代内容,或该链路存在的唯一理由是历史遗留。此时移除链接比保留一个404入口更干净。前提是你已经确认没有其他页面依赖这条链路作为唯一路径。
这三种选择不要求同时成立。如果目标页面仍有价值但模板条件永远为假,保留没有意义,应改写或退出;如果目标页面已下线但仍有外部流量依赖,退出前要先确认替代路径存在。
假设站点结构是:首页 → 分类页 → 列表页 → 详情页。首页和分类页正常,列表页到详情页的链接在部分列表页缺失。
这个顺序的作用是:每排除一层,下一层的检查范围就缩小一次。不要从详情页反向查,因为入口页正常会误导你假设整条链路都正常。
站点地图不保证收录,它只是提交候选URL的一种方式。深层链路失效时,站点地图里存在该URL不代表它可被抓取或可被索引。同样,抓取量或请求量归零不能单独证明断点已修复,它也可能是抓取预算转移、日志采样变化或站点整体流量波动造成的。
要确认断点是否真正修复,应回到具体页面:目标链接是否在原始HTML中输出,抓取工具是否能从入口页连续到达目标页,目标页是否返回可索引状态。这三项都成立时,才说明链路恢复。如果只看到抓取量回升就认为修复完成,可能会漏掉仍然存在的渲染层断点。
修复动作完成后,下一步不是看整体指标,而是重跑同一条链路:从入口页开始,逐层确认每一跳的链接在原始HTML中存在、可被抓取、目标页可访问。如果某一跳仍然缺失,说明修复没有覆盖该层。此时应回到断点分类,重新判断是输出、抓取还是渲染问题,而不是在已修复的层上继续调整。
只有当整条链路从入口到目标页连续可通,且目标页返回正常状态时,才能认为这次断点定位结束。否则,保留、改写或退出的决策需要根据新的断点位置重新评估。