robots.txt 与 llms.txt 配置指南

搜索引擎时代,站长用 robots.txt 告诉爬虫哪里能进哪里不能进;现在又多了 AI 爬虫,规则一下子复杂起来。OpenAI 的 GPTBot、Anthropic 的 ClaudeBot、PerplexityBot 等 AI 爬虫会按各自的 User-Agent 抓取页面用于训练和问答。llms.txt 是另一种思路:与其被动禁止,不如主动给 AI 一份"该看哪些页面"的清单。两类文件配合使用,才能既保住敏感内容,又不浪费公开内容带来的流量。

先厘清一个常见的误解:robots.txt 不是安全机制。它是一个"君子协定",靠爬虫自觉遵守,真正恶意的抓取者根本不会看它。所以它的作用是管理"正常爬虫"的行为,而不是保护敏感数据——敏感数据应该靠访问控制(登录、权限、IP 白名单)来保护。想清楚这一点,你就知道 robots.txt 该写什么、不该写什么了。

robots.txt 基础配置

User-agent: *
Disallow: /admin/
Disallow: /debug/
Allow: /public/
Sitemap: https://example.com/sitemap.xml

最基本的规则是:禁止抓取后台和调试路径,允许公开内容页面,并明确写出 sitemap 地址。注意 Disallow 是"不要抓",不是"禁止索引";如果内容本身不想进搜索,还需要配合 noindex 标签。这里有个实际例子:很多站点把登录页放在 /login,但用户注册引导页 /signup 是需要被收录的,两者要区分对待。另外 Sitemap: 指令虽然不是所有爬虫都认,但写上没坏处,它能让搜索引擎更快发现新增页面。

针对 AI 爬虫单独设规则

User-agent: GPTBot
Disallow: /private/

User-agent: ClaudeBot
Disallow: /private/

User-agent: PerplexityBot
Disallow: /private/

常见的 AI 爬虫有 GPTBot、ClaudeBot、PerplexityBot、Google-Extended 等。如果只想允许部分页面用于训练,可以精确到路径;如果完全不想被某家抓取,直接 Disallow: /。到底要不要允许 AI 抓取,取决于你的内容策略:内容型站点通常愿意让 AI 引用以获取回流流量,靠工具和隐私数据吃饭的站点则倾向关闭。

判断标准可以落到三个问题上:你的内容会不会被 AI 引用并带来点击?你的内容是否有不可复制的独家价值?AI 抓取会不会泄露你靠数据吃饭的核心资产?比如一个做教程的站点,允许 GPTBot 抓取,用户问 ChatGPT 时可能直接引用你的文章并带上链接,带来稳定回流;而一个卖数据分析服务的 SaaS,核心报告如果被 AI 抓走并总结,用户就没有理由再订阅了,这种站点就该 Disallow: /

主流 AI 爬虫一览

User-Agent 归属 用途
GPTBot OpenAI 训练 ChatGPT / GPT 系列
ClaudeBot Anthropic 训练 Claude 系列
PerplexityBot Perplexity 搜索问答引用
Google-Extended Google Gemini 训练与 AI 摘要

llms.txt 是什么

llms.txt 是给大模型看的"站点说明书",放在域名根路径,用 Markdown 列出站点简介、主要页面和关键资源链接。它和 robots.txt 互补:robots.txt 决定能不能抓,llms.txt 决定抓了之后怎么理解。

llms.txt 示例

# Example.com

> 一站式企业建站服务介绍。

## 主要页面

- [首页](https://example.com/)
- [价格](https://example.com/pricing)
- [关于我们](https://example.com/about)

## 帮助文档

- [常见问题](https://example.com/faq)

格式上有几个规范要点。文件第一行必须是 H1 标题(# 站点名),紧接着用 blockquote(>)写站点简介——这两项是必填的,AI 会优先读取它们来理解"这个站点是什么"。之后用 H2 分段(##),每段下列出 Markdown 链接。链接用相对路径或绝对 URL 都可以,但建议写绝对 URL,方便 AI 直接抓取。llms.txt 的定位是"精选"而不是"全量":列 5-20 个最有价值的页面就够了,把所有页面都塞进去反而稀释了 AI 对重点页面的关注。

配置建议对照

场景 建议
后台、调试、临时页面 robots.txt 禁止抓取,必要时加 noindex
内容型公开页面 robots.txt 放行,llms.txt 里列为主要页面
敏感或付费内容 两类文件里都排除,保持与隐私条款一致
只想让 AI 看精选页 robots.txt 放行,llms.txt 只列精选链接

上线后的检查清单

配置文件发布后,建议做三件事:第一,用 curl 确认两个文件都能正常返回(curl https://example.com/robots.txt),有些 CDN 或框架会拦截 txt 文件的直接访问;第二,在 Search Console 的"robots.txt 测试"工具里验证规则语法,一个写错的通配符可能让整站禁止被抓取;第三,季度复查一次——AI 爬虫的名单和用途变化很快,半年前还在抓的爬虫可能已经换了 User-Agent,你需要跟着更新规则。

常见问题

  • 配置完多久生效? 爬虫重新抓取 robots.txt 的周期从几小时到几天不等,不是立刻生效。
  • 改了 robots.txt 会影响已有索引吗? 只影响未来抓取,已收录页面要等搜索引擎重新抓取后才会按新规则处理,配合 noindex 效果更明确。
  • llms.txt 需要列所有页面吗? 不需要,精选即可。列太多页面反而会让 AI 抓取成本升高,重点页面的权重也被稀释。

参考

参考:robots.txt 规范 https://developers.google.com/search/docs/crawling-indexing/robots/intro
参考:llms.txt 提案 https://llmstxt.org/
参考:Google 关于 AI 爬虫的管理 https://developers.google.com/search/docs/crawling-indexing/overview-google-crawlers

想系统梳理站点的抓取与收录策略,可以结合robots.txt 配置指南和XML Sitemap 指南一起看,针对 AI 搜索的优化可以再参考生成式 AI 搜索优化指南。