什么是Robots?
robots的内容主要是给爬虫程序看,比如Google的爬虫Googlebot,Bing的爬虫Bingbot,同时告诉爬虫程序哪些可以读取,哪些不能读取,robots有一些固定的语法规则,爬虫程序按照这些规则读取你网站的内容。
注意:robots不能防止恶意的爬虫重新获取网站内容,它就只相当于一个君子协定,敏感内容应使用密码保护或 noindex 标签。
robot所在位置
robots.txt文件一般放在网站的根目录下,可以通过https://[你的域名]/robots.txt打开,如果你的网站没有robots.txt文件,那么对于爬虫来说网站的所有内容都是可以查看的。
Robot内容结构
robots.txt 由 用户代理(User-agent) 和 指令(Disallow/Allow/Sitemap 等) 组成,格式如下:
User-agent: [爬虫名称]
Disallow: [禁止访问的路径]
Allow: [允许访问的路径]
Sitemap: [站点地图URL]
User-agent (必选)
指定哪些爬虫程序可以访问网站内容
- 示例
User-agent: * # 所有爬虫程序都可以访问
User-agent: Googlebot # 只能Googlebot爬虫程序可以访问
常见的搜索引擎爬虫程序
Google
- Googlebot
- Googlebot-Image(用于图像)
- Googlebot-News(用于新闻)
- Googlebot-Video(用于影片)
Bing
- Bingbot
- MSNBot-Media(用于图像和影片)
Baidu
- Baiduspider
Disallow(禁止访问)
阻止爬虫访问指定路径,(支持通配符 * 和 $)。
- 示例
Disallow: /admin/ # 禁止访问 /admin/ 目录
Disallow: /tmp/ # 禁止访问 /tmp/ 目录
Disallow: /*.pdf$ # 禁止所有PDF文件($表示精确匹配)
Disallow: /book/*.xml # 禁止访问/book/下的所有xml文件
Allow(允许访问)
在 Disallow 范围内允许访问某些路径,Allow优先级高于 Disallow
- 示例
Disallow: /private/ # 禁止 /private/ 目录
Allow: /private/public.html # 但允许访问 /private/public.html
Sitemap(站点地图)
告诉爬虫网站地图(XML Sitemap)的位置(可多次使用)。
- 示例
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/news-sitemap.xml
Crawl-delay(爬取延迟,已废弃)
控制爬虫请求频率(Google 已不再支持,改用 Search Console 设置)。
- 示例
Crawl-delay: 5 # 每5秒请求一次(仅部分爬虫支持,如 Bing)
高级用法
- 通配符 * 和 $
*: 匹配任意字符(如Disallow: /images/*.jpg)。$: 表示精确匹配(如Disallow: /*.pdf$仅阻止PDF文件)。
- 注释(#)
- 用
#添加注释,不影响规则
# 禁止爬虫访问后台
Disallow: /admin/
- 区分大小写
- 默认不区分大小写,但建议统一使用小写路径(如 /admin/ 而非 /Admin/)。
- 空白行
- 不影响解析,可用于提高可读性:
User-agent: *
Disallow: /private/
User-agent: Googlebot-News
Disallow: /temp/
常见配置示例
- 允许所有爬虫访问全站
User-agent: *
Disallow:
Sitemap: https://example.com/sitemap.xml
- 禁止所有爬虫访问特定目录
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Sitemap: https://example.com/sitemap.xml
- 针对不同爬虫设置不同规则
User-agent: Googlebot
Disallow: /private/
User-agent: Bingbot
Disallow: /temp/
User-agent: *
Disallow: /secret/
- 允许 Googlebot 访问图片,但禁止其他爬虫
User-agent: Googlebot-Image
Allow: /images/
User-agent: *
Disallow: /images/
注意事项
- 不要屏蔽 CSS/JS 文件,否则 Google 可能无法正确渲染页面,影响 SEO。
- 避免语法错误,错误的拼写(如 Disalow)会导致规则失效。
- 测试工具:使用 Robots-Tester 验证规则。
总结
| 指令 | 作用 | 示例 |
|---|---|---|
User-agent |
指定适用的爬虫 | User-agent: *(所有爬虫) |
Disallow |
禁止访问的路径 | Disallow: /admin/(屏蔽后台目录) |
Allow |
允许访问的路径 | Allow: /public/(开放公共目录) |
Sitemap |
指定站点地图URL | Sitemap: https://example.com/sitemap.xml |
# |
注释(不生效) | # 这是注释 |