先给一个有条件的结论:当入口页面在百度收录更新中表现正常、而深层页面迟迟没有变化时,断点通常不在入口本身,而在“入口到深层页”的某一段链路上。要定位它,不能只看入口的抓取记录,而要把链路拆成可分别核对的三段:入口页是否真的暴露了通往深层的链接、深层页是否对抓取方可达、以及深层页返回的内容是否与入口指向的目标一致。只有这三段都能各自留下可复查的证据,才能判断断点落在哪一段;如果只有入口页有记录、其余两段没有任何独立证据,那么这个结论就不成立,问题可能只是入口页恰好被单独处理过。
很多人说的“入口正常”,实际只是入口页本身能被访问、能返回 200。这个事实不能推出深层链路也正常。需要把入口正常拆成两个可核对的问题:
如果入口页的链接是脚本渲染出来的,而抓取方拿到的初始 HTML 里没有对应 <a href>,那么入口页“正常”与深层页“没更新”可以同时成立,断点就在渲染这一步,而不是在深层页本身。反过来,如果初始 HTML 里链接齐全,断点就更可能在后两段。
定位断点的关键不是猜,而是让每一段都能被单独核对。可以按下面的顺序取证据:
这三段里,任何一段缺少独立证据,结论就只能停在“疑似”。例如只看到入口页有抓取记录,就断言深层页被处理过,是不成立的,因为入口页的抓取记录并不能代表深层地址被单独请求过。
同样表现为“入口正常、深层没更新”,至少对应几种不同原因,可以用证据区分:
robots.txt 对深层路径做了限制。需要注意,robots.txt 的抓取限制不等于可靠的索引移除,它只约束抓取行为,不能当作让页面退出索引的手段,也不能反过来证明页面一定被移除。另外,站点地图里列出了深层地址,并不保证它会被收录;它只是提供发现线索。把站点地图当收录保证,会让定位方向跑偏。
假设某站入口页在百度收录更新中一直有变化,但深层列表页始终没有更新。先取入口页原始 HTML,发现目标地址出现在脚本字符串里,而不是可抓取链接。此时初步判断断点在链接暴露。接着直接请求该深层地址,返回 200 且内容正确。两个证据合起来说明:深层页本身可达,问题出在入口没有把它以可抓取形式暴露出来。下一步动作应是让入口在初始 HTML 中输出可抓取链接,而不是去改深层页内容。改完后重新取入口原始 HTML 核对链接是否出现,再观察深层地址是否被单独请求,以此决定是继续修渲染还是转向可达性排查。
这个例子是假设的,数字和路径仅用于说明比较方法,不代表任何真实站点结果。
上面的结论有一个明确反例:如果入口页和深层页其实指向同一个最终地址,只是入口做了跳转或参数归一,那么“入口正常、深层失效”可能只是同一页面在不同地址下的表现差异,断点判断会整体失效。遇到这种情况,应先确认入口与深层是否最终落到同一地址,再决定是否继续按三段拆解。
下一步动作可以固定为:先取入口原始 HTML 核对链接,再直接请求深层地址记录状态与落地地址,最后对比两者内容是否一致;任何一段缺失独立证据时,不把疑似当成结论,而是补取该段证据后再继续。