Robots.txt编写与配置教程,含常用规则示

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

Robots.txt 是网站根目录下一个纯文本文件,用来和搜索引擎爬虫沟通哪些页面可以抓取、哪些要避开。合理设置它能控制爬虫抓取范围,减轻服务器压力,也能避免后台、测试页等被收录。不过要清楚,这个文件只对遵守协议的爬虫有效,不能当作安全防线。

1. Robots.txt 能做什么,不能做什么

爬虫访问网站时,会先读取根目录下的 robots.txt,再决定抓取范围。它的作用主要是避免重复内容被抓取、防止后台页面进入索引、控制抓取频率较高等资源消耗大的路径。但这份文件不是强制执行的标准,规范的搜索爬虫会遵守,恶意脚本则可能无视。因此,涉及登录信息、用户隐私等敏感内容,必须靠密码验证或访问权限来控制,别指望 robots.txt 来保护。

2. 基础语法与常用指令

编写时要逐行写清楚,指令格式固定,尽量不要写错拼写或漏掉冒号。常用的指令有三个。

2.1 User-agent 指定爬虫对象

每条规则前必须写 User-agent 来声明适用于哪个爬虫,星号代表所有爬虫。例如:

2.2 Disallow 与 Allow 控制抓取路径

Disallow 指明禁止抓取的路径,留空则代表没有禁止内容,即全部允许。Allow 可以在被禁止的目录中单独放行某条路径。比如禁止整站但允许公开目录:

User-agent: *
Disallow: /
Allow: /public/

2.3 Sitemap 声明站点地图

Sitemap 指令告诉爬虫地图文件所在位置,有助于新内容更快被发现,它不依赖 User-agent,放文件末尾即可:

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

3. 常用场景的配置示例

下面几种配置可以直接套用,适合大部分网站。

3.1 完全放开,允许所有爬虫

适合内容完全公开的站点,写法最简单:

User-agent: *
Disallow:

3.2 禁止后台和临时目录被抓取

避免后台登录页、缓存和临时文件进入搜索引擎索引:

User-agent: *
Disallow: /admin/
Disallow: /tmp/
Disallow: /cache/

3.3 对不同爬虫区别对待

比如允许 Google 抓取全站,但禁止某个爬虫抓取整站:

User-agent: Googlebot
Disallow:
User-agent: Baiduspider
Disallow: /

3.4 禁止目录下放行特定文件

如果整个目录禁止,但希望部分页面可被抓取,用 Allow 覆盖:

User-agent: *
Disallow: /downloads/
Allow: /downloads/guide.pdf

4. 编写注意事项与调试方法

配置完成后,先确认文件放在域名根目录,命名严格为 robots.txt。注意区分大小写,路径要写完整。每行指令后用换行分隔,不同爬虫之间用空行隔开。改完文件后,可以借助搜索引擎站长工具里的 robots 测试功能检查语法是否合法、规则是否按预期执行。如果没有测试工具,也可以直接在浏览器输入域名/robots.txt 查看文件内容,确认没有被服务器端程序修改。常见问题是规则写得太严格导致整站无法被抓取,建议先小范围验证再应用到全站。

5. 常见问题

5.1 Disallow 留空是什么意思

Disallow 后面留空等同没有限制,表示允许爬虫抓取所有内容。想要禁止整站才写 Disallow: /。

5.2 Robots.txt 能阻止别人盗用图片吗

不能。它只是礼貌协议,无法防止直接下载或盗链。想保护图片或文件资源,需要用其他技术手段,比如防盗链设置或权限控制。

5.3 修改 Robots.txt 后需要多久生效

爬虫会周期性重新读取文件,一般几小时到几天内会更新,主动在搜索引擎站长工具提交更新请求可以加快速度。

6. 总结

Robots.txt 是网站抓取管理的基础工具,但别把它的作用想得过大。建议先明确哪些路径需要隐藏,再按规则格式逐条配置,改完后用工具验证,并结合站长平台监控实际抓取情况。敏感数据务必用访问控制保护,不要依赖 robots.txt。

图1 图2

nginx