什么是 robots.txt?
robots.txt(又称“爬虫协议”或“机器人协议”)是一个存放在网站根目录下的纯文本文件,它的作用是告知搜索引擎的爬虫(也称为“机器人”或“蜘蛛”),网站中哪些页面可以抓取,哪些页面不可以抓取。

重要提示: robots.txt 是一个建议性的协议,而不是一个强制性的命令,遵守良好的爬虫(如 Googlebot、Bingbot)会遵循它的规则,但恶意爬虫或不良爬虫完全可以忽略它,对于需要绝对保密的内容,不应依赖 robots.txt,而应使用其他方法(如密码保护、登录验证)。
robots.txt 的主要作用
- 引导搜索引擎爬取:告诉搜索引擎哪些页面是重要的、可以抓取的,帮助它们更高效地理解网站结构。
- 节省服务器资源:防止爬虫抓取无用的页面(如搜索结果页、后台管理页、重复内容页面),从而减少服务器的负载和带宽消耗。
- 避免重复内容问题:通过禁止抓取多个版本的同一页面(如带 参数的URL),可以防止搜索引擎索引重复内容,避免分散权重。
- 保护隐私或敏感内容:虽然不是绝对安全,但可以用来阻止搜索引擎抓取用户登录页、后台管理面板、临时文件等。
robots.txt 的基本语法
robots.txt 文件由一个或多个记录块组成,每个记录块包含两条指令:
User-agent
- 作用:指定这条规则适用于哪个爬虫。
- 值:
- 适用于所有爬虫(通配符)。
- 具体名称:如
Googlebot(谷歌爬虫)、Bingbot(必应爬虫)、Slurp(雅虎爬虫)等。 - 你可以在 Which user agents does Google use? 找到 Google 的用户代理列表。
Disallow
- 作用:指定
User-agent不应抓取的 URL 路径。 - 值:
- 空值(即只有
Disallow:):禁止抓取该User-agent所有内容。 - 具体路径:如
/admin/(禁止抓取admin目录下的所有文件)、/private-page.html(禁止抓取单个文件)。 - 关键点:
Disallow指的是路径前缀。Disallow: /private会禁止/private、/private/、/private-page.html、/private/images/等所有以/private开头的路径。
- 空值(即只有
Allow
- 作用:与
Disallow相反,指定User-agent可以抓取的 URL 路径,通常用于在Disallow一个大范围后,开放其中的某个小范围。 - 值:与
Disallow类似,指定一个路径前缀。 - 使用场景:你想禁止抓取
/temp/目录,但允许抓取/temp/public/子目录。User-agent: * Disallow: /temp/ Allow: /temp/public/
Sitemap
- 作用:告诉搜索引擎你网站的 XML 站点地图(Sitemap)文件在哪里,这是一个非常实用的指令,有助于搜索引擎发现你网站的所有页面。
- 值:站点地图的完整 URL。
Sitemap: https://www.example.com/sitemap.xml- 一个
robots.txt文件中可以有多个Sitemap指令。 Sitemap指令可以放在文件的任何位置,并且不依赖于任何User-agent。
- 一个
robots.txt 文件示例
示例 1:最简单的配置(允许所有)
允许所有爬虫抓取网站的任何部分。
User-agent: *
Disallow:
或者直接空文件,效果也是允许所有。

示例 2:禁止所有爬虫
禁止所有爬虫抓取网站的任何部分。
User-agent: *
Disallow: /
示例 3:针对特定爬虫的配置
只允许 Googlebot 和 Bingbot 抓取,禁止其他所有爬虫。
User-agent: Googlebot
Disallow:
User-agent: Bingbot
Disallow:
User-agent: *
Disallow: /
示例 4:常见电商/博客网站配置
这是一个非常典型的配置,适用于大多数网站。
User-agent: *
# 禁止抓取管理后台、临时文件、用户相关页面和搜索结果页
Disallow: /admin/
Disallow: /tmp/
Disallow: /wp-admin/
Disallow: /search/
Disallow: /*?*
# 允许抓取站点地图
Sitemap: https://www.example.com/sitemap.xml
示例 5:禁止抓取特定文件类型
禁止所有爬虫抓取 .pdf 和 .docx 文件。

User-agent: *
Disallow: /*.pdf$
Disallow: /*.docx$
如何创建和放置 robots.txt 文件?
- 创建文件:使用任何文本编辑器(如记事本、VS Code、Sublime Text)创建一个名为
robots.txt的文件。 - 编写规则:按照上述语法编写你的规则。
- 放置位置:必须将文件放置在您网站的根目录下。
- 对于
https://www.example.com/网站,robots.txt文件的完整地址是https://www.example.com/robots.txt。 - 如果放置在子目录(如
https://www.example.com/folder/robots.txt),它将只对该子目录下的内容有效,这是错误的。
- 对于
如何检查 robots.txt 文件?
- 浏览器直接访问:在浏览器地址栏输入
你的域名.com/robots.txt即可查看。 - 使用 Google 搜索控制台的“robots.txt 测试器”:
- 这是最推荐的工具。
- 登录 Google 搜索控制台,选择你的网站。
- 在左侧菜单中找到“站点地图”(Sitemaps)或直接搜索“robots.txt”。
- 在这里你可以测试你的
robots.txt规则是否生效,并模拟不同爬虫的抓取行为,非常直观。
常见误区
-
误区 1:用
robots.txt隐藏私密的页面。- 错误:如前所述,
robots.txt只是建议,不能阻止恶意用户或不良爬虫直接访问这些页面,真正的隐私页面必须通过密码或登录保护。
- 错误:如前所述,
-
误区 2:
Disallow: /secret-page.html就能隐藏这个页面。- 错误:如果其他网站链接到了
secret-page.html,搜索引擎仍然可能通过发现这个链接而抓取和索引它。robots.txt只能阻止“主动抓取”,不能阻止“被动发现”。
- 错误:如果其他网站链接到了
-
误区 3:忘记
Allow指令。- 错误:在
Disallow一个目录后,如果你想让子目录可被访问,必须明确使用Allow指令。Disallow: /css/会禁止抓取/css/style.css,但Disallow: /css/+Allow: /css/public/才能允许抓取/css/public/main.css。
- 错误:在
robots.txt 是网站管理和 SEO 策略中一个强大且基础的工具,正确配置它可以帮助你引导搜索引擎爬虫、优化网站资源、并保护非敏感的内部结构,但请务必记住它的局限性,并始终将真正的敏感信息放在更安全的地方。
