llms.txt 放在哪里?标准答案是:放在当前站点主机的根路径,访问地址应是 https://你的域名/llms.txt。 如果你的官网、文档站、帮助中心分别在不同子域名上,通常要分别部署,而不是只在主域名放一份。
llms.txt 是给大语言模型和 AI 代理读取的网站内容说明文件,常用于告诉 AI:这个站点是谁、哪些页面最重要、哪些内容适合引用。Chrome Lighthouse 关于 llms.txt 的说明也将它描述为面向 LLM 和 AI 代理的机器可读摘要,并建议放在网站根目录。

一句话结论:优先放在站点根目录
llms.txt 应放在站点根目录,而不是文章目录、静态资源目录或后台目录。 对外可访问 URL 应固定为 /llms.txt,例如 https://example.com/llms.txt,并返回 200 状态码。
推荐配置如下:
| 场景 | 推荐地址 | 是否推荐 |
|---|---|---|
| 官网主站 | https://example.com/llms.txt |
推荐 |
| 文档子域名 | https://docs.example.com/llms.txt |
推荐 |
| 博客子目录 | https://example.com/blog/llms.txt |
不作为主文件推荐 |
| 静态资源目录 | https://example.com/assets/llms.txt |
不推荐 |
| 需要登录后访问 | 登录后才可见 | 不推荐 |
原因很简单:llms.txt 借鉴了 robots.txt、sitemap.xml 这类“约定路径”的发现方式。AI 工具或代理如果要尝试读取,最自然的探测地址就是根路径文件,而不是全站递归寻找某个隐藏文件。
如果你还没区分它和 robots 的作用,可以先看 MaxAEO 的这篇:llms.txt和robots.txt区别:先分清访问控制与内容引导。一句话概括:robots 管“能不能抓”,llms.txt 管“优先理解什么”。
www、裸域、子域名要不要各放一份?
要按“主机名”判断:example.com、www.example.com、docs.example.com 是三个不同入口。 哪个入口承载可被 AI 引用的内容,就在哪个入口的根路径部署对应文件。
常见做法有三种:
-
只使用一个规范域名
如果所有访问都会 301 到https://www.example.com/,则把主文件放在https://www.example.com/llms.txt,裸域可重定向到同一地址。 -
官网和文档分离
SaaS 网站常见结构是官网在www,开发文档在docs。这时建议两边各放一份:官网文件突出产品、行业方案、定价与案例;文档文件突出 API、SDK、快速开始和错误码。 -
多品牌或多区域站点
us.example.com、cn.example.com、jp.example.com如果内容、语言和服务范围不同,应分别维护llms.txt,避免 AI 把区域信息混在一起。
这里的关键不是“多放越好”,而是每份文件只代表它所在主机下的权威内容。一份主站文件不要试图包办所有子域名,否则 AI 读取时可能无法确认哪些链接属于同一上下文。
放在子目录可以吗?
可以作为补充说明,但不应作为主要发现入口。 对于“llms.txt 放在哪里”这个问题,子目录文件最多是局部索引,不能替代根路径 /llms.txt。
例如,https://example.com/blog/llms.txt 可以专门整理博客文章,但根路径仍应存在:
https://example.com/llms.txt
根文件里可以加入博客索引入口:
## 内容资源
- [博客精选](https://example.com/blog/): 产品选型、AI 搜索与品牌可见性文章
- [博客机器可读索引](https://example.com/blog/llms.txt): 博客内容的专题索引
这种结构更适合内容量大的站点:根文件负责“全站导航”,子目录文件负责“局部深挖”。但如果只能部署一份,请优先部署根目录版本。
CDN、对象存储和前端框架怎么部署?
无论底层是 Nginx、Cloudflare、Vercel、Next.js、对象存储还是静态站点,最终检查标准只有一个:公网访问 /llms.txt 返回纯文本内容。 技术栈不是核心,URL 可达性才是核心。
常见部署位置如下:
| 技术栈 | 常见放置方式 | 检查点 |
|---|---|---|
| Next.js / Nuxt / Vite | 放入 public/llms.txt |
构建后根路径可访问 |
| WordPress | 上传到站点根目录或用服务器规则映射 | 不被插件重写成 HTML |
| Nginx | 直接放在站点 root 指向目录 | MIME、缓存、权限正确 |
| Cloudflare Pages | 放入 public 或输出目录 | 不被重定向规则覆盖 |
| S3 / OSS 静态站 | 上传到 bucket 根路径 | 对象公开可读 |
如果你的网站启用了 CDN、WAF 或 Bot 管理,部署完成后还要确认 AI 爬虫不会被误拦。MaxAEO 在排查 AI 爬虫访问时,通常按“robots → CDN → WAF → 源站日志”的顺序定位问题,具体可参考:AI爬虫白名单配置:从 robots 到 WAF 的放行顺序。

要不要在 robots.txt 或 sitemap.xml 里声明?
可以声明,但不能替代根目录部署。 当前更稳妥的做法是:根路径放 llms.txt,再在 robots 或 sitemap 体系中增加发现线索。
可选写法示例:
# robots.txt
Sitemap: https://example.com/sitemap.xml
# AI context file: https://example.com/llms.txt
严格来说,robots.txt 没有为 llms.txt 提供统一的官方标准字段。因此,不建议依赖某个非标准指令作为唯一发现方式。注释可以帮助工程、SEO 和内容团队协作,但 AI 代理是否读取注释并不稳定。
更实际的做法是把 llms.txt 当成三个系统的交汇点:
- robots.txt:访问控制,决定哪些路径允许抓取;
- sitemap.xml:URL 发现,帮助搜索引擎理解页面集合;
- llms.txt:内容策展,告诉 AI 哪些页面最值得读、如何概括品牌。
如果你正在搭建完整的文件规范,可以继续看:llms.txt 文件规范:格式、部署位置与验证方法。
MaxAEO 的 12 组部署测试:最容易出错的是重定向和 MIME
MaxAEO 用 12 组常见 SaaS 站点部署组合做过可达性复盘,最容易出问题的不是“文件写错”,而是“AI 请求拿不到正确文本”。 测试维度包括根路径、www/裸域、子域名、301/302、CDN 缓存、WAF 拦截和 Content-Type。
结果可以归纳为四类:
| 问题类型 | 典型表现 | 风险 |
|---|---|---|
| 根路径缺失 | /llms.txt 返回 404 |
AI 无法按约定发现 |
| 跳转链过长 | HTTP 到 HTTPS,再到 www,再到语言目录 | 部分代理中途放弃 |
| MIME 异常 | 返回 text/html 或下载附件 |
内容被误判为网页或文件 |
| WAF 拦截 | 浏览器可访问,Bot User-Agent 返回 403 | AI 爬虫无法读取 |
其中最隐蔽的是第四类:人工打开正常,日志里却看到 AI 爬虫 403。遇到这种情况,先不要急着改 llms.txt 内容,而要检查 CDN 或防火墙规则。若你使用 Cloudflare,可参考:Cloudflare 放行 AI 爬虫:从 robots.txt 到 WAF 的最小放行方案。
这个测试给出的部署原则是:少跳转、明 MIME、可缓存、可被 Bot 访问。只要这四点不满足,文件写得再好也可能没有被读取。
上线后如何验证放置位置正确?
验证 llms.txt 位置,至少要做三层检查:浏览器可访问、命令行返回正确、日志能看到真实请求。 只看浏览器页面打开是不够的。
推荐步骤:
- 打开
https://你的域名/llms.txt,确认不是 404、登录页或下载弹窗。 - 用命令检查状态码和类型:
curl -I https://example.com/llms.txt
理想结果包括:
HTTP/2 200
content-type: text/plain; charset=utf-8
- 用不同 User-Agent 测试是否被拦截:
curl -A "GPTBot" -I https://example.com/llms.txt
curl -A "ClaudeBot" -I https://example.com/llms.txt
- 查看 CDN、WAF、Nginx 或应用日志,确认请求没有被 403、429、JS Challenge 或验证码拦截。
- 每次内容更新后,记录修改时间、文件大小和核心链接数量,避免发布系统覆盖旧版本。
更完整的排查流程,可以参考:llms.txt验证方法:从格式到日志的三层检查。

常见问题
llms.txt 必须叫这个名字吗?
是的,主文件建议固定命名为 llms.txt。 这是 AI 工具按约定路径发现它的基础。不要改成 llm.txt、ai.txt 或 llms-file.txt 作为主文件,否则发现稳定性会下降。
llms-full.txt 要放在哪里?
llms-full.txt 通常也放在根目录,作为更完整的补充文件。 它适合文档站、API 站或开发者工具站,但文件可能较大。中小型 SaaS 官网通常先把 llms.txt 做准,再考虑全文版本。
语言目录下要不要放一份?
如果语言站是子目录,例如 /en/、/zh/,主文件仍放根目录。 根文件中可以分语言列出重要链接。若语言站使用不同子域名,如 en.example.com,则建议该子域名单独部署。
llms.txt 放好后会立刻影响 AI 答案吗?
不会保证立刻生效。 它是内容发现和理解的辅助信号,不是排名指令。AI 是否引用你,还取决于页面质量、可访问性、品牌实体清晰度、外部引用和用户问题匹配度。可以用 AI 搜索品牌可见性监控工具持续观察提及、引用和竞品变化,例如 MaxAEO 官网 提供的品牌在 AI 引擎中的提及与引用监控能力。
文件内容更新后需要重新提交吗?
通常不需要像搜索控制台那样提交,但需要确保缓存刷新。 如果使用 CDN,建议清理 /llms.txt 缓存,并在文件中保持清晰的更新时间或版本信息,方便团队排查。
部署清单:照着检查一遍
最终判断标准很简单:任意 AI 代理访问 https://你的域名/llms.txt 时,应能快速拿到一份清晰、可信、无阻拦的 Markdown 文本。
上线前确认:
- 文件位于当前主机根路径:
/llms.txt; - HTTPS 可访问,返回 200;
- 不需要登录、Cookie、验证码或 JS 渲染;
- Content-Type 建议为
text/plain; charset=utf-8; - www、裸域、子域名的权威关系明确;
- CDN 和 WAF 不拦截常见 AI 爬虫;
- 文件内链接指向规范 URL;
- 内容只放高价值页面,不把全站链接无差别塞进去;
- 更新后检查缓存和访问日志。
对 SaaS 品牌来说,llms.txt 的价值不只是“多一个文件”,而是把官网、文档、案例、定价、行业方案重新整理成 AI 能快速理解的品牌说明书。位置放对,是第一步;真正影响 AI 引用质量的,是你在文件里提供了哪些可信、清晰、可验证的内容。
