爬虫访问网站时,第一步往往就是查看根目录下的 robots.txt 文件。这个看似简单的纯文本,掌管着搜索引擎抓取范围的权限。合理利用它,既能保护后台等敏感区域不被收录,又能把有限的抓取配额集中在最有价值的内容上。理解它的语法细节与潜在陷阱,对每个网站运营者都至关重要。
文件必须位于域名根目录,并通过 UTF-8 编码保存。同时,路径不仅区分大小写,而且每一条指令都需要独占一行。一套完整的规则体系,主要由以下字段构成:
一个组合示例:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://example.com/sitemap.xml
这表示所有爬虫被允许访问全站,唯独 /admin/ 目录被排除,但该目录下 /public/ 子文件夹是开放的。需要留意的是,如果某爬虫不识别 Allow,那么它依然会遵守更严格的 Disallow 规则。
不同业务的网站,对爬虫的开放策略截然不同。
对于追求内容收录的网站,通常需要最大化抓取范围。此时可写入空白的 Disallow:
User-agent: *
Disallow:
这里有个高频错误:很多人会把 Disallow 留空误写成 Disallow: /。一旦写下斜杠,整站将被封锁,收录瞬间归零,影响极大。
如果只想屏蔽某一家搜索平台,可以单独定义:
User-agent: Bingbot
Disallow: /
该规则仅作用于微软的爬虫,不影响其他平台访问。使用前务必核对对方官方文档中的爬虫 UA 名称,拼写错误会导致规则失效。
许多站点在此文件上栽跟头,往往源于对协议本质的误解。
误区一:认为它是一道安全屏障。 必须明确,robots.txt 是君子协定,并非防火墙。恶意程序或黑客根本不会理会这里的指令。若防护依赖它,敏感数据等于直接暴露在互联网上。
误区二:以为它能阻止已收录的页面展现。 它仅能影响未来的抓取行为。已经存在于搜索引擎索引库里的链接,不会因为新增规则而立即消失。要移除已有结果,需通过站长平台提交删除请求。
配置完成后,必须验证其有效性,避免规则书写错误造成严重后果。
这里建议定期检查文件,特别是当网站改版或目录结构调整后,防止旧的规则无意中封锁了新栏目。
可以。当文件内容为空,或者只有 User-agent 没有 Disallow 时,代表对爬虫完全开放。这也是一种合法的配置方式,适合那些不需要任何过滤的内容站。
优先确认爬虫是否支持该指令。市面上只有少数几款爬虫(如 Googlebot)完整支持 Allow 的优先级逻辑。如果是其他爬虫,它会默认 Disallow 优先,导致被允许的路径依然无法抓取。
虽然可以通过拒绝部分路径间接减少抓取量,但更科学的方式是利用 Crawl-delay 指令或搜索引擎后台的抓取速率设置。贸然使用 Disallow: / 来降频,不仅杀鸡用牛刀,还会导致索引量暴跌。
robots.txt 是一个需要谨慎对待的工具。每次修改前,建议先在测试环境模拟一遍,或者将改动部署在测试子域名上进行观察。上线后,持续监控服务器的爬虫日志,确保规则按预期生效。记住,让该抓的抓得到,让该藏的藏得住,才是配置的核心目标。