入口页面能抓取、能收录,不代表深层链接也能被正常访问。常见原因是 robots.txt 只放行了入口路径,却对深层目录或带参数的 URL 施加了更严格的限制,导致抓取工具在入口处停下,无法继续沿链接深入。定位这类断点的关键,是把“入口可达”和“链路可达”分开验证,而不是只看首页或栏目首页的返回状态。
两种情况的处理方向完全不同,所以第一步不是改文件,而是确认症状出现在哪一层。
区分依据可以这样取:用抓取测试工具分别请求入口 URL 和一个典型深层 URL,记录两者的返回码与“是否被 robots.txt 阻止”的提示。如果入口正常、深层被明确标记为 blocked,属于第一类;如果深层返回错误码或跳转到登录页,属于第二类。这个判断决定了下一步是改规则还是修链路。
当断点被确认是规则拦截,处理动作是收窄 Disallow 的匹配范围。常见误伤来自用目录级路径一刀切,例如 Disallow: /search 会同时挡住 /search 和 /search/result/detail,而后者可能是需要被抓取的深层内容。
实施动作:先列出被拦截的深层 URL,提取它们与入口 URL 的路径差异,再决定是改用更精确的路径,还是把 Disallow 限制在确实无抓取价值的参数组合上。修改后重新抓取同一批深层 URL,观察 blocked 提示是否消失。如果消失,说明断点已解除;如果仍被拦截,需要检查是否存在多条规则的匹配叠加,因为不同规则组的匹配关系会共同决定最终结果。
这里有一个容易被忽略的例外:robots.txt 的抓取限制不等于可靠的索引移除。即使把某个深层 URL 写进 Disallow,它仍可能因为外部链接而被索引,只是抓取工具无法读取内容来判断。所以不要把 robots.txt 当作深层页面的下架手段,它解决的是抓取通道问题,不是索引状态问题。
如果深层 URL 返回错误码或跳转登录,改 robots.txt 只会掩盖症状。此时应把动作放在链路本身:检查深层 URL 是否依赖会话、是否被前端路由拦截、是否在服务端做了来源校验。
一个注明假设的短例子:假设某深层详情页只有在携带列表页来源时才返回 200,直接请求会返回 403。这种情况下,即使 robots.txt 完全放行,抓取工具仍然拿不到内容。验证方法是去掉来源头再请求一次,如果返回码变化,说明断点在服务端校验,而不在规则文件。下一步应调整的是访问条件,而不是 Disallow 行。
站点地图也不能替代这个判断。把深层 URL 放进站点地图,只表示你希望它被发现,不保证它一定被收录或被抓取。站点地图不保证收录,它和 robots.txt 解决的是不同环节的问题。
验证要覆盖两类信号,缺一不可。
如果抓取层显示正常、链路层仍有断点,说明问题不在 robots.txt。如果两层都正常,但深层仍未被处理,那属于后续的抓取与收录节奏问题,不能反推规则写错了。请求量归零或抓取量下降也不能单独证明修改正确,它还可能来自服务器波动、链接结构变化或外部引用减少。
最后一点适用条件:不同搜索引擎对规则的支持和解释存在差异,同一份文件在不同抓取工具下的表现可能不同。验证时至少分别核查你实际关注的抓取来源,而不是用一次测试结果推断全部。HTTPS 只保证传输加密,不保证深层链路可访问,也不保证收录结果,所以它不能作为断点是否修复的证据。