Robots.txt 文件生成器 — 是什么以及如何创建
了解 robots.txt 文件的作用、爬取规则的工作原理,以及如何在无需编写代码的情况下为您的网站生成正确的 robots.txt 文件。
互联网上的每个网站都会被各种机器人访问——Googlebot、Bingbot、AI 爬虫以及数十种其他类型。robots.txt 文件就是您告诉它们哪些内容可以索引、哪些不可以的方式。设置正确,您就能掌控搜索结果中显示的内容;设置错误,您可能会意外地将整个网站从 Google 中屏蔽。
什么是 robots.txt 文件?
robots.txt 文件是一个纯文本文件,放置在网站根目录,用于指示网络爬虫哪些页面或栏目应该爬取、哪些应该跳过。它遵循机器人排除协议(Robots Exclusion Protocol)——这是一个几乎所有主流爬虫都遵守的非正式标准。
当 Googlebot 访问您的网站时,它请求的第一个 URL 是:
https://yourdomain.com/robots.txt
如果该文件存在,机器人会读取规则并相应调整其爬取行为。如果不存在,机器人则默认所有内容都可以爬取。
重要提示: robots.txt 是一种指令,而非安全措施。它告诉行为规范的机器人不应爬取哪些内容——但并不能阻止访问。恶意机器人和爬虫可能完全忽略它。切勿依赖 robots.txt 来隐藏敏感内容。
robots.txt 文件结构
一个 robots.txt 文件由一条或多条记录组成。每条记录包含:
- 一行
User-agent— 指定规则适用的机器人 - 一行或多行
Disallow或Allow— 爬取规则 - 可选的
Crawl-delay指令 - 可选的
Sitemap指令(位于文件级别)
User-agent: Googlebot
Disallow: /admin/
Allow: /admin/public/
User-agent: *
Disallow: /private/
Crawl-delay: 10
Sitemap: https://yourdomain.com/sitemap.xml
关键指令说明
| 指令 | 作用 |
|---|---|
User-agent |
指定后续规则适用的爬虫。* 表示所有机器人。 |
Disallow |
阻止指定路径被爬取。 |
Allow |
明确允许某个路径,即使其父目录已被禁止。 |
Crawl-delay |
要求机器人在请求之间等待 N 秒(Google 不支持此指令)。 |
Sitemap |
将爬虫指向您的 XML 站点地图。 |
User-agent 值 — 您在与谁通话?
每个爬虫都有唯一的 user-agent 字符串。最重要的几个:
| User-agent | 爬虫 | 搜索引擎 |
|---|---|---|
* |
所有爬虫 | — |
Googlebot |
Google 网页爬虫 | Google Search |
Googlebot-Image |
Google 图片爬虫 | Google Images |
Googlebot-Video |
Google 视频爬虫 | Google Video |
Bingbot |
Microsoft Bing 爬虫 | Bing Search |
Slurp |
Yahoo! 爬虫 | Yahoo Search |
DuckDuckBot |
DuckDuckGo 爬虫 | DuckDuckGo |
Baiduspider |
百度爬虫 | 百度搜索 |
YandexBot |
Yandex 爬虫 | Yandex Search |
GPTBot |
OpenAI 训练爬虫 | ChatGPT |
ClaudeBot |
Anthropic 训练爬虫 | Claude |
CCBot |
Common Crawl 机器人 | 各类 AI 数据集 |
规则按 user-agent 分别应用。如果机器人匹配某个特定的 user-agent 记录,则应用该记录中的规则。如果不存在特定记录,则应用 *(通配符)规则。
Disallow 与 Allow — 路径匹配的工作原理
Disallow
Disallow: /path/ 会阻止该路径及其下的所有内容被爬取。
Disallow: /admin/ # 阻止 /admin/、/admin/users、/admin/login 等
Disallow: /private.html # 仅阻止该文件
Disallow: / # 阻止整个网站
Disallow: # 空值 = 允许所有内容(无限制)
Allow
Allow 会针对更具体的路径覆盖 Disallow 规则。更具体的规则优先生效。
User-agent: Googlebot
Disallow: /products/
Allow: /products/featured/ # 尽管上方有 Disallow,Googlebot 仍可爬取 /products/featured/
通配符
大多数爬虫(包括 Google)支持两种通配符字符:
| 模式 | 含义 | 示例 |
|---|---|---|
* |
匹配任意字符序列 | Disallow: /*.pdf$ |
$ |
匹配 URL 末尾 | Disallow: /*.pdf$ — 阻止以 .pdf 结尾的 URL |
Disallow: /*? # 阻止所有带查询字符串的 URL
Disallow: /*.pdf$ # 阻止所有 PDF 文件
Disallow: /tag/*/page/ # 阻止分页标签归档页面
常见 robots.txt 规则模式
允许所有内容(默认行为)
User-agent: *
Disallow:
空的 Disallow 表示无任何限制。这等同于没有 robots.txt 文件——但拥有该文件是良好实践,方便日后添加规则。
阻止整个网站(例如,测试环境)
User-agent: *
Disallow: /
在开发、测试或预览环境中使用此设置,防止这些环境被索引。
阻止特定目录
User-agent: *
Disallow: /admin/
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /checkout/
Disallow: /cart/
Disallow: /account/
阻止 AI 训练爬虫
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Google-Extended
Disallow: /
电商网站 — 阻止不需要索引的页面
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /account/
Disallow: /wishlist/
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?ref=
Allow: /products/
Allow: /collections/
Sitemap: https://yourdomain.com/sitemap.xml
WordPress 网站
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-login.php
Disallow: /wp-includes/
Disallow: /?s=
Disallow: /search/
Disallow: /trackback/
Sitemap: https://yourdomain.com/sitemap.xml
如何在不编写代码的情况下生成 robots.txt 文件
手动编写 robots.txt 容易出错——一个小错别字可能就会阻止您本想允许的页面。我们的 Robots.txt Generator 让您可以:
- 选择要针对的机器人
- 通过简单的表单添加允许和禁止规则
- 按需设置爬取延迟
- 添加您的 Sitemap URL
- 即时复制或下载生成的文件
生成后,请使用 Robots.txt Tester 在部署前验证规则是否按预期生效。
robots.txt 文件应放置在哪里
该文件必须位于域名根目录:
https://yourdomain.com/robots.txt ✓ 正确
https://yourdomain.com/robots/robots.txt ✗ 错误
https://subdomain.yourdomain.com/robots.txt ✓ 正确(适用于子域名)
每个子域名都需要有自己的 robots.txt。位于 www.yourdomain.com/robots.txt 的文件不适用于 blog.yourdomain.com。
部署 robots.txt
静态网站(HTML): 将 robots.txt 上传到 Web 服务器公共目录的根目录(/public_html/、/dist/、/public/ 等)。
WordPress: 将其放置在 WordPress 安装目录的根目录。许多 SEO 插件(Yoast、RankMath)会通过管理面板自动管理该文件。
Next.js: 将 robots.txt 放在 /public 文件夹中,或在 /app 中使用 robots.js 文件进行程序化生成(Next.js 13+)。
Vercel / Netlify: 放置在 /public 目录中——部署时会自动从根目录提供服务。
robots.txt 与 SEO — 需要注意的要点
不要阻止 CSS 和 JavaScript
过去有一种常见做法是阻止 /wp-content/ 或 /assets/ 以节省爬取预算。这样做会适得其反:Google 需要渲染您的页面才能理解其内容,而阻止 CSS/JS 会妨碍这一过程。只阻止您真正不想被索引的内容。
robots.txt 不能防止索引——noindex 才能
Disallow 阻止 Google 爬取 URL,但不能阻止 Google 索引它(如果其他网站链接到该页面)。要阻止索引,请在页面本身使用 noindex meta 标签或 X-Robots-Tag HTTP 头。
声明 Sitemap
务必在 robots.txt 中包含您的 Sitemap URL——这是确保爬虫找到它的最可靠方式:
Sitemap: https://yourdomain.com/sitemap.xml
Sitemap: https://yourdomain.com/sitemap-images.xml
您可以列出多个 Sitemap。
爬取预算
大型网站(数千个页面)从 robots.txt 优化中获益最多。阻止低价值页面(过滤 URL、内部搜索结果、重复的低质量内容)有助于 Google 将爬取预算集中在真正重要的页面上。
验证您的 robots.txt 文件
创建文件后,请在部署前进行验证:
- Robots.txt Tester — 粘贴文件内容并测试特定 URL,确认允许/禁止行为是否正确
- Google Search Console — 爬取统计报告显示 Google 如何爬取您的网站;URL 检查工具显示特定页面是否被阻止
- 手动检查 — 部署后访问
https://yourdomain.com/robots.txt,确认文件已上线并正常提供服务
常见问题
Google 一定会遵守 robots.txt 吗?
Google 会遵守爬取方面的 Disallow 指令。但是,如果 Google 发现指向被禁止 URL 的链接,它仍可能索引该 URL——Disallow 阻止的是爬取行为,而非索引条目。请在页面本身使用 noindex 来防止索引。
同一个机器人可以有多个 User-agent 块吗? 不可以。每个 user-agent 应只出现在一个块中。如果同一个机器人在多个块中有冲突的规则,其行为是不确定的。请将某个 user-agent 的所有规则合并到一条记录中。
如果我的 robots.txt 有语法错误会怎样? 大多数爬虫会忽略格式错误的规则,或在错误处停止解析。Google 通常会继续应用错误之前已成功解析的规则。请在部署前测试您的文件。
我应该阻止 Googlebot-Image 吗? 仅当您明确不希望自己的图片出现在 Google 图片搜索结果中时才阻止。如果您销售摄影作品或运营图片密集型网站,阻止 Googlebot-Image 可能会大幅减少流量。
爬虫多久重新读取一次 robots.txt? Google 通常会将 robots.txt 缓存最多 24 小时。更新文件后,更改可能需要长达一天时间才能反映在 Google 的爬取行为中。
robots.txt 会影响页面速度或 Core Web Vitals 吗? 不会。robots.txt 只影响爬取行为,不影响页面为真实用户加载或运行的方式。
robots.txt 文件大小与限制
- Google 支持大小最多为 500 KB 的 robots.txt 文件
- 超过 500 KB 的文件会被截断——超出该大小的规则将被忽略
- 规则数量没有官方上限,但请保持文件条理清晰、简洁明了
- 推荐使用 UTF-8 编码;ASCII 也适用
相关工具
- Robots.txt Generator — 通过表单界面生成 robots.txt 文件
- Robots.txt Tester — 验证规则并测试特定 URL
- Sitemap Generator — 生成 XML 站点地图,与 robots.txt 配合使用
- Meta Tag Generator — 为您的页面生成 SEO meta 标签