本文目录
什么是 robots.txt?
robots.txt 是放置在网站根目录下的一个纯文本文件,用于告诉网络爬虫哪些页面或区域可以抓取、哪些不可以。它遵循机器人排除协议(Robots Exclusion Protocol),这是一项自 1994 年起就被用来向搜索引擎机器人、AI 爬虫及其他自动化程序传达抓取偏好的标准。
当爬虫访问你的网站时,它会先检查 yourdomain.com/robots.txt 处是否存在 robots.txt 文件,然后才抓取任何页面。该文件包含一系列指令,用于规定哪些用户代理(爬虫)可以访问哪些路径。请注意,robots.txt 只是建议性的——行为规范的爬虫会遵守它,但恶意机器人可能会完全无视它。
robots.txt 语法
robots.txt 文件采用简单的、基于指令的语法。每个区块以一行 User-agent 开始,后面跟着一条或多条规则:
- User-agent——指定规则适用于哪个爬虫。使用 * 表示所有爬虫,或使用具体名称,如 Googlebot、Bingbot 或 GPTBot
- Disallow——禁止访问特定路径或模式。Disallow: /admin/ 可阻止抓取 admin 目录
- Allow——显式允许访问某个路径,可用于覆盖范围更广的 Disallow 规则。Allow: /admin/public/ 会允许抓取该特定子目录
- Sitemap——指定你的 XML 站点地图网址,让爬虫能够发现你的所有页面。Sitemap: https://example.com/sitemap.xml
- Crawl-delay——建议在连续两次请求之间延迟的秒数。并非所有爬虫都支持此指令(Google 会忽略它,Bing 则会遵守)
Disallow 和 Allow 中支持通配符:* 匹配任意字符序列,$ 匹配网址的结尾。例如,Disallow: /*.pdf$ 会屏蔽所有以 .pdf 结尾的网址。
常见的 robots.txt 模式
以下是针对不同场景最实用的几种 robots.txt 配置:
- 允许全部——一条空的 Disallow 指令(User-agent: * 搭配 Disallow: ),或者干脆不放 robots.txt,都表示允许完整抓取
- 屏蔽全部——Disallow: / 会阻止所有爬虫访问任何页面。适用于预发布环境或尚未上线的站点
- 屏蔽 AI 爬虫——针对特定的 AI 机器人使用 User-agent: GPTBot、CCBot、anthropic-ai,后跟 Disallow: /,即可在允许搜索引擎的同时阻止内容被抓取
- 仅允许 Google——将 User-agent: Googlebot 搭配 Allow: /,再为 User-agent: * 单独设置 Disallow: /
- 保护后台路径——对 /admin/、/wp-admin/、/api/ 或任何敏感目录使用 Disallow,使它们不出现在搜索结果和爬虫日志中
免费试用 —— 无需注册
生成 robots.txt →常见使用场景
一份配置得当的 robots.txt 文件在网站管理中承担着几项重要作用:
- SEO 优化——阻止抓取重复内容、分页页面、搜索结果页以及筛选后的网址,避免它们稀释你的搜索排名
- 屏蔽抓取工具——通过禁止内容抓取工具和 AI 训练机器人各自的用户代理,来阻止它们复制你的内容
- 保护预发布环境——在预发布和开发服务器上屏蔽所有爬虫,防止未完成的内容出现在搜索结果中
- 管理抓取预算——对于大型站点,屏蔽低价值页面(标签归档、站内搜索结果、会话网址)可确保搜索引擎把抓取预算花在你重要的页面上
robots.txt 与 SEO
robots.txt 对搜索引擎如何发现和索引你的内容有直接影响。理解它与 SEO 的关系至关重要:
- 屏蔽不等于取消索引——如果其他网站链接到某个你在 robots.txt 中屏蔽的页面,搜索引擎仍可能索引该网址(但没有内容)。若要阻止索引,应改用 noindex 元标签
- 务必包含你的站点地图——添加 Sitemap 指令有助于搜索引擎发现你的所有页面,尤其是那些可能还没有外部链接的新页面
- 不要屏蔽 CSS 或 JavaScript 文件——搜索引擎需要这些文件来渲染你的页面。屏蔽它们会损害你的排名,因为爬虫将无法理解你的页面布局
- 常见错误——不小心屏蔽了整个目录、对敏感页面用 robots.txt 而非 noindex,或在站点重构后忘记更新 robots.txt,这些都会损害你的 SEO
常见问题
robots.txt 是强制性的还是仅供参考?
robots.txt 完全是建议性的。像 Googlebot、Bingbot 这样行为规范的爬虫以及大多数正规机器人都会遵守它,但并没有任何技术上的强制手段。恶意机器人、抓取工具和某些 AI 爬虫可能会完全无视它。对于敏感内容,应使用服务器端的访问控制(身份验证、IP 屏蔽),而不是仅仅依赖 robots.txt。
如何测试我的 robots.txt 文件?
Google Search Console 提供了 robots.txt 测试工具,可显示特定网址是被屏蔽还是被允许。你也可以使用在线校验工具,它们会解析你的 robots.txt 并模拟爬虫行为。测试时应检查关键页面是否可访问、非必要页面是否被屏蔽。每次部署更改后都要进行验证。
Google 会遵守 robots.txt 中的 Crawl-delay 吗?
不会,Google 不支持 Crawl-delay 指令。相反,Google 会根据服务器响应时间,使用自己的算法来确定最佳抓取速率。若要控制 Google 的抓取速率,请使用 Google Search Console 中的抓取速率设置。Bing 会遵守 Crawl-delay,因此如果 Bing 流量对你很重要,就应加上它。