先给结论:当入口页能被抓取、甚至已收录,而更深层页面长期不出现时,问题通常不在入口本身,而在“从入口到深层页”的可发现路径上。定位断点的核心动作,是把这条路径拆成可单独验证的几段,逐段确认百度是否真的能走到下一跳,而不是只看入口返回码是否正常。
假设一个站点有栏目页 A,A 正常返回 200、能被抓取、也已收录;A 下面挂着几十个详情页 B。你反复提交 A 的地址,A 的抓取状态一直正常,但 B 很少或几乎不出现。此时“入口正常”只能说明第一跳没问题,不能说明百度从 A 走到了 B。断点可能出现在三处:A 到 B 的链接、B 自身的可抓取性、B 被抓取后的处理结果。下面按这个顺序排查。
很多“深层失效”其实卡在最基础的一环:A 页面里根本没有指向 B 的普通链接,或者链接是脚本渲染后才出现、需要交互才加载。百度对依赖执行的链接发现能力有限,如果 B 只能通过点击按钮、滚动加载或表单提交到达,抓取端很可能永远走不到。
<a href="..."> 形式存在。rel="nofollow"、不是 javascript: 伪协议、不是需要 POST 才能触发。实际动作:把 A 源码里指向 B 的链接数量数一遍。如果结果是 0,那么断点就在这里,后续所有关于 B 的检查都失去意义,应优先改成服务端可输出的普通链接,再重新观察 B 是否开始被抓取。
链接存在后,下一跳是 B 能否被抓。这里最常见的误判是把 robots.txt 当成索引开关。robots.txt 的抓取限制不等于可靠的索引移除:它只影响抓取行为,已被抓取的内容仍可能留在索引里;反过来,解除限制也不保证立刻恢复收录。
<meta name="robots"> 是否含 noindex,以及响应头是否有 X-Robots-Tag 限制。如果 B 返回 200 且无任何限制,却仍不进索引,说明问题已不在“能不能抓”,而进入“抓了之后怎么处理”,需要看下一步。
这两种情况的处理方向完全不同,必须用证据分开,而不是靠感觉。可以对比入口和深层的抓取记录:如果 B 从未出现在抓取日志里,断点在链路可达性;如果 B 被抓取多次却始终不索引,断点在内容质量或重复判断。
注意:抓取量归零或某段时间没有请求,不能单独证明你的处理正确。它也可能是抓取预算被其他目录占用、入口权重下降、或蜘蛛整体调度变化造成的。要结合返回码和链接数量一起判断。
很多人把站点地图当成深层页的救命通道。站点地图不保证收录,它只是提供一条发现线索。当 A 到 B 的链接本身断裂时,即使站点地图里列了 B,抓取端也可能因为缺少站内链接支撑而降低对 B 的访问意愿。
合理做法是让站点地图和站内链接互为补充:站点地图覆盖全量 URL,站内链接提供上下文和权重传递。如果只依赖站点地图、站内没有可爬链接,深层页的发现效率通常不理想。假设站点地图提交后 B 仍无抓取,应回到第一步重新确认链接,而不是反复重新提交。
综合起来,当入口正常而深层失效时,按这个顺序走能最快收敛:先看 A 源码里有没有指向 B 的普通链接;再看 B 是否被 robots、状态码、noindex 拦住;然后用日志区分没抓还是抓了不索引;最后才考虑内容和站点地图。每一步都要落到一个具体动作上——数链接、查返回码、看日志——并根据结果决定是否进入下一步。这样做的价值在于,你能明确知道断在哪一环,而不是在入口页上反复做无用功。