robots.txt 是域名根目录里一个 500 字节的文本文件,要么啥也没干,要么一夜之间悄悄毁掉你的收录。大多数生成器给的默认版本是 OK 的。那些从老博客整段拷来的「聪明」200 行版本,才是独立站不小心告诉 Google「忘了我吧」的元凶——而且从 2026 年初开始,它还会让你不小心把全部内容喂给 AI 训练爬虫(或者反过来,把你本想留住的搜索爬虫给挡了)。
这篇给你能直接用的默认配置、那几条会反噬的规则、robots.txt 与 noindex 的真正区别,以及截至 2026 年 6 月最该关注的 AI 爬虫标记(GPTBot、ClaudeBot、Google-Extended)。
TL;DR
- 典型独立内容站,正确的
robots.txt三行就够:User-agent: *、Allow: /,再加一行写完整 URL 的Sitemap:。 Disallow是「不要爬」,不是「不要收录」。被屏蔽的页面仍可能只带 URL、没有描述地出现在 Google 里。- 要让页面不进索引,用页面上的
<meta name="robots" content="noindex">——绝不要用Disallow。两者会冲突:爬都被你挡了,Google 根本读不到noindex。 - 永远不要屏蔽
/_next/、/static/、/assets/或你的 CSS/JS——Google 需要它们来渲染页面,屏蔽会伤排名。 - AI 爬虫(GPTBot、ClaudeBot、Google-Extended)各自服从独立的
User-agent标记。想退出模型训练,必须显式加上它们——笼统的User-agent: *并不会像大多数人以为的那样改变 AI 的行为。 - 独立的「robots.txt 测试工具」已经下线,Google 用 Search Console → 设置里的 robots.txt 报告取而代之。
robots.txt 到底管什么
robots.txt 是一个控制爬取的文件,已被标准化为 RFC 9309。它只能放在唯一一个位置——https://你的域名/robots.txt——告诉爬虫哪些路径可以抓。
最烧钱的一个误解:Disallow 不是「不要收录」,是「不要爬」。一个被 Disallow 的页面,只要有任何链接指过去,仍可能被收录(只剩 URL,没有摘要)。真正阻止收录的工具是页面级指令 <meta name="robots" content="noindex">,不是 robots.txt。
| 你想要…… | 用 | 不要用 |
|---|---|---|
| 让爬虫别抓某个路径 | robots.txt 里的 Disallow: | noindex(页面照样被爬) |
| 让页面不出现在搜索结果 | <meta name="robots" content="noindex"> | Disallow(URL 仍可能出现,无摘要) |
| 退出 AI 模型训练 | 具名的 AI User-agent + Disallow: / | User-agent: *(不专门针对 AI) |
| 藏掉一个 staging 站 | HTTP auth / IP 白名单 | Disallow: /(URL 仍可能被收录) |
这篇适合什么情况
- 你接手或生成了一份
robots.txt,不确定对不对。 - Search Console 的 Pages 报告里出现「Blocked by robots.txt」。
site:你的域名搜出来的结果描述是「由于该网站的 robots.txt 限制,无法提供描述」。- 你加了
Disallow想「藏」掉某些页面,结果它们还是被收录了。 - 你想决定要不要让 ChatGPT、Claude 或 Google 的 AI 功能拿你的内容去训练。
能跑的默认配置
对大多数独立内容站,下面这整份就是正确的文件:
User-agent: *
Allow: /
Sitemap: https://你的域名/sitemap.xml
只对你真的不想被爬的路径加 Disallow——一般是 /admin/、/cart/、/api/ 和站内搜索结果。要让页面不进索引,用页面上的 noindex,不是这里的 Disallow。
实操步骤
- 浏览器打开
https://你的域名/robots.txt。404 说明服务器没在提供这个文件——多数静态主机只要框架把robots.txt放进public/目录就会自动暴露。 - 确认开头是
User-agent: *,并且Sitemap:行写的是完整 URL(https://你的域名/sitemap.xml),不是相对路径。 - 决定要屏蔽什么(如果有的话)。常见可屏蔽:
/admin/、/cart/、/api/、站内搜索/?q=。常见绝不要屏蔽:/static/、/_next/、/assets/、sitemap、CSS/JS。屏蔽这些会让 Google 渲染失败。 - 想让爬、但不想收录的页面(thank-you 页、内部重复页),在 HTML 里加
<meta name="robots" content="noindex">——别Disallow它。Disallow+noindex会冲突:爬都被你挡了,Google 读不到noindex。 - 做出你的 AI 爬虫决定(见下一节),需要选择性开放或拒绝时,加上具名的
User-agent段。 - 用 Search Console → 设置里的 robots.txt 报告验证,再用 URL 检查工具确认某个具体 URL 是否被允许。旧的独立「robots.txt 测试工具」已被移除。
- 改完通常什么都不用做——Google 会频繁重新抓
robots.txt。如果你刚解封了重要 URL,可以在 robots.txt 报告里申请一次重新抓取来加速。
2026 年的 AI 爬虫:这才是真正的新东西
从 2026 年初开始,对很多站点来说,robots.txt 里最关键的决定已经不是 Googlebot,而是 AI 爬虫。OpenAI 和 Anthropic 都把自家爬虫拆成了多个可独立控制的标记,所以「一刀切全屏蔽」往往并不是你想要的。它们分两类:
- 训练爬虫抓内容去训练或微调模型:
GPTBot(OpenAI)、ClaudeBot(Anthropic)、Google-Extended(Google AI/Gemini 训练)、Applebot-Extended(Apple Intelligence)、CCBot(Common Crawl)。 - 检索 / 搜索爬虫实时抓页面来回答当下的提问,而且通常会标注引用来源:
OAI-SearchBot和ChatGPT-User(OpenAI)、Claude-SearchBot和Claude-User(Anthropic)、PerplexityBot(Perplexity)。
实操上的区别:屏蔽训练爬虫,是让你的内容不进下一版模型;屏蔽检索爬虫,是把你从 AI 回答和它们的引用里删掉——对独立站作者来说,这通常是反效果。截至 2026 年 6 月,GPTBot 是全网被屏蔽最多的 AI 标记,但屏蔽它并不影响 ChatGPT 的实时浏览引用——那一条走的是 OAI-SearchBot/ChatGPT-User。
| 标记 | 运营方 | 用途 | 独立站常见选择 |
|---|---|---|---|
GPTBot | OpenAI | 模型训练 | 不想被训练就屏蔽 |
OAI-SearchBot | OpenAI | ChatGPT 搜索索引 | 放行(你想要引用) |
ChatGPT-User | OpenAI | 用户触发的实时抓取 | 放行 |
ClaudeBot | Anthropic | 模型训练 | 不想被训练就屏蔽 |
Claude-SearchBot | Anthropic | Claude 搜索索引 | 放行 |
Claude-User | Anthropic | 用户触发的实时抓取 | 放行 |
Google-Extended | Gemini 训练的退出标记 | 想退训练就屏蔽;不影响 Google 搜索 | |
PerplexityBot | Perplexity | Perplexity 搜索索引 | 放行 |
一个稳妥的「放行搜索、拒绝训练」配置长这样:
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: Applebot-Extended
Disallow: /
User-agent: *
Allow: /
Sitemap: https://你的域名/sitemap.xml
有两点要清楚。第一,Google-Extended 只是训练退出标记,它不会把你从 Google 搜索里删掉;普通的 Googlebot 照样抓取并给你排名。第二,robots.txt 是一套靠自觉的约定;正规爬虫(OpenAI、Anthropic、Google、Perplexity)都声明遵守,但它不是强制机制。要真正挡住不守规矩的抓取程序,得靠服务端手段(WAF 规则、限速,或 Cloudflare 那类 CDN 的反爬产品)。
容易踩的坑
- **用
Disallow: /「藏」一个公网可达的 staging 站。**只要有人贴了链接,Google 仍可能收录这些 URL(只是没内容)。staging 应该上 HTTP auth 或 IP 白名单。 - **屏蔽 CSS、JS,或
/_next/、/static/、/assets/。**Google 需要它们来渲染页面,屏蔽会伤排名。 - 为了让页面 noindex 而去
Disallow它。Disallow不去除收录——只是不让爬。URL 仍可能出现在结果里,没有描述。 - **以为
User-agent: *能管 AI 爬虫。**它并不会像你以为的那样针对它们,具名的 AI 爬虫只认更精确的那一段。有训练偏好就显式加上对应标记。 - **把另一套技术栈的 200 行
robots.txt整段拷过来。**WordPress 的robots.txt放到非 WordPress 站上,屏蔽的是根本不存在的路径——无害,但暴露了这份文件并不在你掌控之中。只写你真正需要的那几行。 - **漏了
Sitemap:行。**不致命(你在 Search Console 也提交了),但加一行没坏处。
这篇不适合谁
需要做企业级精细爬取管理的站点——按 user-agent 选择性收录、爬取速率协商、或用了托管的反爬产品。这篇假设你希望大部分内容都被爬,并且想给 AI 爬虫定个合理的态度。
FAQ
- robots.txt 和
noindex有什么区别?:robots.txt控制爬取——爬虫抓不抓页面。noindex控制收录——Google 展不展示它。两层不同的东西,而且Disallow+noindex还会冲突,因为爬被挡了,Google 就读不到noindex。 - 屏蔽 GPTBot 会让 ChatGPT 不再引用我吗?: 不会。
GPTBot是 OpenAI 的训练爬虫。ChatGPT 的实时浏览和引用走的是OAI-SearchBot和ChatGPT-User。屏蔽GPTBot拒绝训练的同时,放行OAI-SearchBot,你照样能出现在 ChatGPT 的回答里。 Google-Extended会把我从 Google 搜索里删掉吗?: 不会。Google-Extended只是 Gemini 和 Google AI 功能的训练退出标记。普通的Googlebot照常抓取、收录、给你排名。- 要屏蔽站内搜索结果页吗(
/?q=...)?: 内容站一般要——站内搜索内容薄,还会产生无穷的 URL 变体。用Disallow: /search/(或你搜索 URL 实际的模式)屏蔽。 - robots.txt 能写多个 sitemap 吗?: 能。写多行
Sitemap:就行——按语言或内容类型拆 sitemap 时很有用。Google 会全部读取。 - 改完 robots.txt 多久 Google 会知道?: Google 会频繁重新抓
robots.txt,一般一天内。解封重要 URL 后,可以在 Search Console → 设置的 robots.txt 报告里申请一次重新抓取来推一下。