什么是Robots.txt

什么是Robots?

robots的内容主要是给爬虫程序看,比如Google的爬虫GooglebotBing的爬虫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)

高级用法​

  1. 通配符 * 和 $​
  • *: 匹配任意字符(如 Disallow: /images/*.jpg)。
  • $: 表示精确匹配(如 Disallow: /*.pdf$ 仅阻止PDF文件)。
  1. 注释(#)​
  • # 添加注释,不影响规则
# 禁止爬虫访问后台
Disallow: /admin/
  1. 区分大小写​
  • 默认不区分大小写,但建议统一使用小写路径(如 /admin/ 而非 /Admin/)。
  1. 空白行​
  • 不影响解析,可用于提高可读性:
User-agent: *
Disallow: /private/

User-agent: Googlebot-News
Disallow: /temp/

常见配置示例​

  1. 允许所有爬虫访问全站​
User-agent: *
Disallow:
Sitemap: https://example.com/sitemap.xml
  1. 禁止所有爬虫访问特定目录​
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Sitemap: https://example.com/sitemap.xml
  1. 针对不同爬虫设置不同规则​
User-agent: Googlebot
Disallow: /private/

User-agent: Bingbot
Disallow: /temp/

User-agent: *
Disallow: /secret/
  1. 允许 Googlebot 访问图片,但禁止其他爬虫​
User-agent: Googlebot-Image
Allow: /images/

User-agent: *
Disallow: /images/

注意事项​

  1. ​​不要屏蔽 CSS/JS 文件​​,否则 Google 可能无法正确渲染页面,影响 SEO。
  2. 避免语法错误,错误的拼写(如 Disalow)会导致规则失效。
  3. 测试工具:使用 Robots-Tester 验证规则。

总结

指令 作用 示例
User-agent 指定适用的爬虫 User-agent: *(所有爬虫)
Disallow 禁止访问的路径 Disallow: /admin/(屏蔽后台目录)
Allow 允许访问的路径 Allow: /public/(开放公共目录)
Sitemap 指定站点地图URL Sitemap: https://example.com/sitemap.xml
# 注释(不生效) # 这是注释