判断 robots.txt 相关问题属于哪一层,核心是看“谁在什么阶段读取了什么文件、得到了什么结果”。抓取层问题表现为爬虫根本没来或直接被拒绝;解析层问题表现为文件语法、编码、路径匹配不符合预期;索引层问题表现为页面已被抓取却仍未出现在搜索结果中。三者证据不同,不能用一个现象直接下结论。
抓取层关注的是爬虫是否请求了目标 URL,以及请求是否被 robots.txt 拦截。解析层关注的是 robots.txt 文件本身能否被正确读取、规则是否被正确理解。索引层关注的是页面被抓取后,搜索引擎是否选择将其纳入索引并可展示。
如果只看到“页面没排名”,不能直接归因于 robots.txt。必须先确认爬虫是否被允许抓取,再确认文件是否被正确解析,最后才判断索引决策。
抓取层的证据来自服务器日志和抓取工具。检查日志中是否出现目标爬虫对目标 URL 的请求记录。如果没有任何请求,可能是爬虫尚未发现该 URL,也可能是 robots.txt 或服务器配置阻止了抓取。
执行步骤:
适用条件:日志可访问、爬虫有明确 User-Agent。判断结果:若日志无请求且测试显示被阻止,抓取层是直接原因;若日志有请求且状态码正常,则问题不在抓取层,继续向下排查。
解析层问题通常来自文件无法访问、语法错误或规则匹配范围过大。常见检查项包括:
text/plain。错误的 Content-Type 可能导致部分爬虫无法解析。User-agent、Disallow、Allow、Sitemap 的大小写和冒号格式。Disallow: / 会阻止全站抓取,而 Disallow: /private/ 只阻止特定目录。短例子:假设 robots.txt 中写的是 Disallow: /tmp,而目标 URL 是 /tmp-page。由于路径匹配按前缀处理,/tmp-page 也可能被阻止。此时问题属于解析层的规则匹配范围,而不是爬虫本身不愿抓取。
判断结果:如果文件无法访问或语法错误导致规则被忽略或误读,问题在解析层。修复后需要重新测试抓取,而不是直接期待索引变化。
robots.txt 的抓取限制不等于可靠的索引移除。即使 robots.txt 阻止了抓取,页面仍可能因为外部链接或其他信号出现在搜索结果中,只是摘要可能受限。反过来,允许抓取也不保证页面一定被索引。
索引层的判断依据包括:
noindex 元标签或 HTTP 头。如果抓取层和解析层都正常,页面仍未被索引,应检查 noindex、规范链接、内容质量和内部链接。此时问题在索引层,与 robots.txt 的抓取规则无关。
面对具体问题时,按以下顺序收集证据:
noindex、规范链接和内容质量。每一步只回答一个问题:爬虫来了吗?被允许了吗?文件读对了吗?页面本身允许索引吗?如果某一步已经定位到原因,就不需要继续向下猜测。不同搜索引擎对 robots.txt 的支持细节可能不同,涉及具体搜索引擎时应分别核查其官方文档。
下一步:打开服务器日志和搜索引擎官方抓取测试工具,先确认目标 URL 是否被请求、是否被阻止,再决定是否需要修改 robots.txt 或转向索引层排查。