robots.txt编写:怎样区分访问抓取与索引结果

📍 WDQWDWQD987AAAAA:216.73.217.16
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /69d9f1173513.html
📄

robots.txt编写:怎样区分访问抓取与索引结果

编写 robots.txt 时,最容易混淆的是“抓取”和“索引”两件事:robots.txt 的 Disallow 只表达“请勿抓取这个路径”,并不等于“请从搜索结果中移除这个页面”。一个页面被禁止抓取后,仍可能因为外部链接、历史记录或其他信号而出现在索引结果里;反过来,允许抓取也不保证一定被索引。

准备:先分清三个动作

动手写之前,把三个动作分开记录,后面才不会误判:

判断起点很简单:如果你希望某个 URL 不出现在结果里,先问自己“它是否已经被索引”。已索引的页面,单靠 robots.txt 往往不够,需要配合页面级 noindex 或移除工具;未索引且不想被抓取的路径,才适合优先用 robots.txt 控制抓取。

实施:按目标选择规则,而不是一刀切

robots.txt 是放在站点根目录的纯文本文件,通过 User-agent、Allow、Disallow、Sitemap 等指令表达抓取偏好。常见写法如下:

User-agent: *

Disallow: /private/

Sitemap: https://example.com/sitemap.xml

注意几点:

最关键的一步是:先确定目标是“减少抓取”还是“减少索引”。目标不同,规则组合完全不同。

验证:用可观察结果区分抓取与索引

写完不要凭感觉判断,按下面顺序检查:

  1. 直接访问 https://你的域名/robots.txt,确认返回 200 且内容正确,没有多余 HTML。
  2. 用搜索引擎提供的 URL 检查工具查看“抓取状态”和“索引状态”两项,它们是分开的。
  3. 在结果中搜索完整 URL 或标题片段,看是否出现该页面;出现只说明可能已索引,不等于抓取被允许。
  4. 查看服务器日志中目标爬虫的请求记录。若某路径持续有请求,说明它仍在被抓取;若没有请求,可能是规则生效,也可能是爬虫尚未发现该 URL。

判断结果时注意:日志无请求不等于已移除索引;搜索结果无展示也不等于未被索引。两者需要分别核对。

维护:规则变更后持续观察

robots.txt 是公开文件,修改后可能被缓存一段时间,不同爬虫重新读取的节奏也不一样。建议在变更记录中写清日期、改动路径和预期目标,过一段时间再对比日志与索引状态。若目标是移除已索引内容,优先考虑页面级 noindex;若只是避免爬虫浪费配额抓取无价值路径,再用 Disallow。HTTPS 只解决传输加密,不代表页面没有漏洞,也不保证排名。

下一步:列出你当前最想控制的一个路径,判断它属于“只想减少抓取”还是“需要退出索引”,再按对应方法写规则并安排一次验证。

图1 图2

nginx