先把“入口正常”当作一个局部事实,而不是整站健康的结论。入口页面能被抓取、能返回正文,只说明从首页到该页这一段链路成立;深层页面失效,断点通常出现在入口之后的某一跳,而不是入口本身。定位方法是沿着真实点击路径逐跳验证,找到第一处“抓取结果与预期不一致”的位置,再判断它属于链接、渲染、状态码还是索引层问题。
不要从全站爬虫报告开始,先选一条业务上确实重要的路径,例如首页 → 栏目页 → 列表页 → 详情页。为每一跳记录三件事:该页返回的 HTTP 状态、正文中是否出现指向下一跳的链接、下一跳被抓取时看到的最终内容。假设某条路径共四跳,入口和栏目页都正常,列表页返回 200 且能看到条目,但详情页在抓取视角下拿不到正文——这时断点大概率落在列表页到详情页之间,而不是详情页模板本身。
把这条路径写成可复核的最小清单:
同样表现为“深层页面不出现”,原因可能完全不同,处理动作也相反。可以用一组可区分的证据来归类:
先归类,再动手。把渲染层问题当链接层修,会白改模板;把状态码问题当内容问题修,会一直看不到变化。
假设某站点改版后,首页和栏目页照常被抓取,但三个月前发布的详情页在结果中逐渐减少。按上面的分层取证:
对应的实际动作是让详情页在首次响应中就包含正文,或在服务端完成数据填充后再输出。动作完成后,下一步不是等待结果,而是重新抓取同一批页面,确认原始响应里已经出现正文,并且链接、状态码没有因为这次改动而退化。只有这一跳验证通过,才值得扩大到其他模板。
请求量、抓取量或某个统计归零,都不能单独证明处理正确。它们还有别的合理解释:抓取预算被其他路径占用、统计口径在改版后改变、日志采样丢失、页面被合并到其他 URL。把这类指标当作线索可以,当作结论不行。
同样,站点地图提交量增加不保证收录,HTTPS 也不保证页面安全无漏洞或获得更好结果。这些因素与断点定位相关,但不能替代逐跳验证。若同一路径在不同搜索引擎表现不一致,需要分别核查各自的支持情况,不要用一方的现象推断另一方。
当同类问题再次出现时,按固定顺序执行:选一条业务关键路径,逐跳保存原始响应,找到第一处与预期不符的跳点,归类到链接、抓取、渲染或状态层,只改这一层,然后重新抓取同一批页面验证。验证通过再扩大范围,验证不通过就回到归类步骤,而不是同时改动多个环节。这样每一次修复都能对应一个可复核的证据,而不是靠整体感觉判断。