robots.txt 详解——能放什么、绝对不要放什么(2026)

独立站 robots.txt 实操指南:能跑的默认配置、悄悄毁掉收录的几条规则、robots.txt 与 noindex 的区别,以及 2026 年真正要管的 AI 爬虫(GPTBot、ClaudeBot、Google-Extended)。

robots.txt 是域名根目录里一个 500 字节的文本文件,要么啥也没干,要么一夜之间悄悄毁掉你的收录。大多数生成器给的默认版本是 OK 的。那些从老博客整段拷来的「聪明」200 行版本,才是独立站不小心告诉 Google「忘了我吧」的元凶——而且从 2026 年初开始,它还会让你不小心把全部内容喂给 AI 训练爬虫(或者反过来,把你本想留住的搜索爬虫给挡了)。

这篇给你能直接用的默认配置、那几条会反噬的规则、robots.txtnoindex 的真正区别,以及截至 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

实操步骤

  1. 浏览器打开 https://你的域名/robots.txt。404 说明服务器没在提供这个文件——多数静态主机只要框架把 robots.txt 放进 public/ 目录就会自动暴露。
  2. 确认开头是 User-agent: *,并且 Sitemap: 行写的是完整 URLhttps://你的域名/sitemap.xml),不是相对路径。
  3. 决定要屏蔽什么(如果有的话)。常见可屏蔽:/admin//cart//api/、站内搜索 /?q=。常见绝不要屏蔽:/static//_next//assets/、sitemap、CSS/JS。屏蔽这些会让 Google 渲染失败。
  4. 想让爬、但不想收录的页面(thank-you 页、内部重复页),在 HTML 里加 <meta name="robots" content="noindex">——别 Disallow 它。Disallow + noindex 会冲突:爬都被你挡了,Google 读不到 noindex
  5. 做出你的 AI 爬虫决定(见下一节),需要选择性开放或拒绝时,加上具名的 User-agent 段。
  6. 用 Search Console → 设置里的 robots.txt 报告验证,再用 URL 检查工具确认某个具体 URL 是否被允许。旧的独立「robots.txt 测试工具」已被移除。
  7. 改完通常什么都不用做——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-SearchBotChatGPT-User(OpenAI)、Claude-SearchBotClaude-User(Anthropic)、PerplexityBot(Perplexity)。

实操上的区别:屏蔽训练爬虫,是让你的内容不进下一版模型;屏蔽检索爬虫,是把你从 AI 回答和它们的引用里删掉——对独立站作者来说,这通常是反效果。截至 2026 年 6 月,GPTBot 是全网被屏蔽最多的 AI 标记,但屏蔽它并不影响 ChatGPT 的实时浏览引用——那一条走的是 OAI-SearchBot/ChatGPT-User

标记运营方用途独立站常见选择
GPTBotOpenAI模型训练不想被训练就屏蔽
OAI-SearchBotOpenAIChatGPT 搜索索引放行(你想要引用)
ChatGPT-UserOpenAI用户触发的实时抓取放行
ClaudeBotAnthropic模型训练不想被训练就屏蔽
Claude-SearchBotAnthropicClaude 搜索索引放行
Claude-UserAnthropic用户触发的实时抓取放行
Google-ExtendedGoogleGemini 训练的退出标记想退训练就屏蔽;不影响 Google 搜索
PerplexityBotPerplexityPerplexity 搜索索引放行

一个稳妥的「放行搜索、拒绝训练」配置长这样:

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-SearchBotChatGPT-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 报告里申请一次重新抓取来推一下。

相关阅读

标签: #独立开发 #SEO #Technical SEO #robots.txt