先给结论:入口正常而深层不收录,断点通常不在首页本身,而在“入口到深层页”的某一段链路。定位方法不是继续反复提交入口,而是把这条链路切成可验证的几段,逐段找第一个不再延续的位置。常见断点集中在三类位置:链接路径中断、抓取被拦、内容无法独立成立。
同一个现象背后至少有两种成立条件不同的解释,区分它们决定了下一步该修什么。
解释一:深层页没有被发现。入口页可访问,但通往深层页的链接是脚本生成的、被折叠隐藏的、或需要多步交互才出现,抓取端沿入口往下走时拿不到可跟随的链接。此时深层页从未进入待抓取队列,表现是日志里几乎看不到对深层 URL 的请求。
解释二:深层页被发现了,但抓取或索引被拦。链接能跟随,请求也发生了,但返回的是错误状态、被 robots.txt 限制、被登录或地域条件挡住,或者页面主体内容依赖某段失效的旧接口而渲染为空。此时表现是日志里有请求,但状态码异常或抓取后不进入索引。
这两种解释的修复动作完全不同:前者要修链接的可发现性,后者要修响应与内容本身。先判断属于哪一种,能避免在错误方向反复提交。
不要只看“收没收录”这个结果,要看链路中间的过程证据。以下证据组合能有效区分上面两种解释:
<a href> 形式存在。若链接只在交互后才出现,抓取端很可能跟不到。把这几项对照起来,通常能定位到第一个“链路不再延续”的位置。
可以按下面顺序逐段验证,遇到第一个不通过的位置就停下处理,而不是一次改多处:
假设一个场景:某栏目入口页正常,但列表中的文章链接由前端脚本在滚动后加载,日志里几乎看不到文章 URL 的请求。按上面顺序检查,第 2 步不通过,断点就在“链接不可跟随”。此时把关键链接改为服务端可输出的可跟随形式,再观察日志中是否开始出现请求,就能验证判断是否正确。
这类断点常出现在旧内容、旧系统或旧合作关系需要退出的阶段。此时不要整段删除,而是先区分哪些深层页仍然有价值、哪些确实要下线。
对仍要保留的深层页,先保证它们从入口有可跟随的路径,再确认抓取时返回正常内容。对确实要下线的页面,处理方式要分清:
一个实际动作及其影响:先给保留的深层页补上从入口可跟随的静态链接,再观察日志中是否出现对它们的请求。如果请求开始出现且返回正常,说明断点在发现阶段并已修复,下一步转为观察索引状态;如果请求仍不出现,说明问题可能在上游的入口结构或抓取限制,需要回到第 2、4 步继续排查。
定位时要注意,某些现象不能单独证明处理正确:
把链路切成可验证的段、用过程证据区分“没被发现”和“被抓取但没通过”,是这类问题最省返工的定位方式。找到第一个不再延续的位置,再决定是修链接、修响应,还是先处理旧内容的下线。