先给结论:入口页面正常、深层链路失效,最常见的断点不在入口页本身,而在入口页到深层页之间的抓取路径上。定位方法是把“抓取限制”与“索引移除”分开验证,再沿着内链、参数、渲染三层逐段排查。如果变化发生在 robots.txt 改动之后,优先怀疑规则误伤;如果变化与 robots.txt 无关,则优先检查内链结构和渲染依赖。
两种条件对应两种完全不同的排查方向,先确认前提再动手。
判断依据不是感觉,而是可区分的证据:如果入口页可被抓取、深层页返回“被 robots.txt 阻止”,这是规则问题;如果深层页本身可被抓取但从未被请求,这是发现路径问题。这两类现象的解释完全不同。
实际操作上,取一条已知失效的深层链接,按下面顺序做一次分段验证:
<a href> 中。如果只出现在 JavaScript 事件或表单提交里,抓取工具可能无法发现它。这个动作的结果会直接决定下一步:若第 1 步显示被阻止,改规则;若第 1 步正常但第 2 步找不到入口,补内链;若前两步都正常而页面仍未被处理,则问题在渲染或索引环节,与 robots.txt 无关。
误伤通常出现在三类写法上:
Disallow: / 后靠少量 Allow 放行,结果深层路径全部落入禁止范围。修正时,先只针对确认失效的路径做最小范围调整,改完立即重新请求那条深层 URL,确认状态从“被阻止”变为可抓取。若状态未变,说明断点不在这一层,应回到内链检查,而不是继续扩大放行范围。
当 robots.txt 明确未阻止深层路径,但仍失效时,观察两个特征:
对应的动作是把关键深层入口改为服务端可输出的静态链接,或在入口页补一条指向深层的普通 <a href>。改完后重新检查该深层 URL 是否被请求,若请求出现,说明断点已修复;若仍无请求,需继续排查站点地图与提交渠道。
假设某站点入口页可正常抓取,但商品深层页全部失效。若失效恰好发生在一次 robots.txt 调整之后,正确选择是先回滚或收窄规则并复测,成本最低;若 robots.txt 半年未动,正确选择是不动规则,转而检查分类页到商品页的内链是否被前端改造切断。两种条件下动作相反,选错方向会浪费大量时间在无问题的环节上。
需要说明的是,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。因此即使深层页已可抓取,也不应把“已放行”直接当作“已解决”,还需分别核查抓取、渲染与索引各环节的实际状态。定位断点的价值在于把问题缩小到一层,而不是一次性解决所有链路问题。