先给结论:入口页面正常只说明百度能拿到这一层,深层链路失效的断点通常落在“入口页到深层页的发现路径”或“深层页自身的响应”上。定位方法是把这两段拆开单独验证,而不是反复提交入口页。
第一种解释是发现断点。百度收录工具能看到入口页,但入口页上的链接没有被有效暴露,或者链接虽然存在却指向了需要额外条件才能进入的地址。此时深层页从未进入待抓取队列,工具里自然看不到它的抓取记录。
第二种解释是响应断点。深层页已经被发现并尝试抓取,但返回了非正常状态、超时、跳转链过长,或者返回内容与入口页看到的并不一致。这种情况下工具里可能留下抓取失败的痕迹,也可能只留下入口页的成功记录。
两种解释的处置方向完全不同:前者要改链接暴露方式,后者要改深层页的响应行为。搞错方向会出现“越提交越没反应”的情况。
不要只看收录数量。更有效的证据是抓取日志和服务器访问记录,按下面的顺序比对:
<a href>,还是只存在于脚本事件、表单提交或需要登录后才出现。这里有一个容易误判的点:robots.txt 的抓取限制不等于可靠的索引移除。它只约束抓取行为,不保证已抓取内容一定从结果中消失,也不能用来解释“为什么深层页没有被发现”。把它当作发现断点的证据是站不住的。
假设入口页是列表页,深层页是详情页,列表页上每条记录都写了链接。但链接是通过点击事件触发的,源码里只有 <div data-id="123">,没有真正的 <a href>。这种情况下,入口页正常,深层页地址却从未被暴露。
验证动作:查看入口页的原始响应源码,搜索深层页的 URL 片段。如果搜不到,说明链接只存在于渲染后的 DOM 中。接下来把关键链接改为服务端输出的 <a href>,再观察服务器是否开始收到深层页请求。这个动作的结果直接决定下一步:开始收到请求,就转向检查响应状态;仍然没有请求,就继续排查入口页是否被其他条件拦截。
个别样本成立,不代表可以照搬。常见边界有三类:
因此,用少量样本验证通过后,应把验证范围扩大到不同模板、不同层级和不同参数形态,再判断断点是否真的被修复。
站点地图不保证收录。它只是把地址集中告知,不能替代入口页上的可抓取链接,也不能绕过响应异常。把深层页全部塞进站点地图后如果服务器仍收不到请求,说明问题更可能在发现路径之外,比如站点地图本身未被有效读取,或者地址被规则拦截。
判断顺序建议固定为:先确认深层页地址是否在原始源码中可被抓取,再确认服务器是否收到请求,最后确认请求的返回内容是否有效。每一步的结果都决定下一步查什么,而不是同时改动多个环节。