Robots.txt 是网站根目录下一个纯文本文件,用来和搜索引擎爬虫沟通哪些页面可以抓取、哪些要避开。合理设置它能控制爬虫抓取范围,减轻服务器压力,也能避免后台、测试页等被收录。不过要清楚,这个文件只对遵守协议的爬虫有效,不能当作安全防线。
爬虫访问网站时,会先读取根目录下的 robots.txt,再决定抓取范围。它的作用主要是避免重复内容被抓取、防止后台页面进入索引、控制抓取频率较高等资源消耗大的路径。但这份文件不是强制执行的标准,规范的搜索爬虫会遵守,恶意脚本则可能无视。因此,涉及登录信息、用户隐私等敏感内容,必须靠密码验证或访问权限来控制,别指望 robots.txt 来保护。
编写时要逐行写清楚,指令格式固定,尽量不要写错拼写或漏掉冒号。常用的指令有三个。
每条规则前必须写 User-agent 来声明适用于哪个爬虫,星号代表所有爬虫。例如:
Disallow 指明禁止抓取的路径,留空则代表没有禁止内容,即全部允许。Allow 可以在被禁止的目录中单独放行某条路径。比如禁止整站但允许公开目录:
User-agent: *
Disallow: /
Allow: /public/
Sitemap 指令告诉爬虫地图文件所在位置,有助于新内容更快被发现,它不依赖 User-agent,放文件末尾即可:
Sitemap: https://www.example.com/sitemap.xml
下面几种配置可以直接套用,适合大部分网站。
适合内容完全公开的站点,写法最简单:
User-agent: *
Disallow:
避免后台登录页、缓存和临时文件进入搜索引擎索引:
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Disallow: /cache/
比如允许 Google 抓取全站,但禁止某个爬虫抓取整站:
User-agent: Googlebot
Disallow:
User-agent: Baiduspider
Disallow: /
如果整个目录禁止,但希望部分页面可被抓取,用 Allow 覆盖:
User-agent: *
Disallow: /downloads/
Allow: /downloads/guide.pdf
配置完成后,先确认文件放在域名根目录,命名严格为 robots.txt。注意区分大小写,路径要写完整。每行指令后用换行分隔,不同爬虫之间用空行隔开。改完文件后,可以借助搜索引擎站长工具里的 robots 测试功能检查语法是否合法、规则是否按预期执行。如果没有测试工具,也可以直接在浏览器输入域名/robots.txt 查看文件内容,确认没有被服务器端程序修改。常见问题是规则写得太严格导致整站无法被抓取,建议先小范围验证再应用到全站。
Disallow 后面留空等同没有限制,表示允许爬虫抓取所有内容。想要禁止整站才写 Disallow: /。
不能。它只是礼貌协议,无法防止直接下载或盗链。想保护图片或文件资源,需要用其他技术手段,比如防盗链设置或权限控制。
爬虫会周期性重新读取文件,一般几小时到几天内会更新,主动在搜索引擎站长工具提交更新请求可以加快速度。
Robots.txt 是网站抓取管理的基础工具,但别把它的作用想得过大。建议先明确哪些路径需要隐藏,再按规则格式逐条配置,改完后用工具验证,并结合站长平台监控实际抓取情况。敏感数据务必用访问控制保护,不要依赖 robots.txt。