llms.txt 放在哪里:根目录、子域名与多站点部署规则

llms.txt 放在哪里:根目录、子域名与多站点部署规则

llms.txt 放在哪里?标准答案是:放在当前站点主机的根路径,访问地址应是 https://你的域名/llms.txt 如果你的官网、文档站、帮助中心分别在不同子域名上,通常要分别部署,而不是只在主域名放一份。

llms.txt 是给大语言模型和 AI 代理读取的网站内容说明文件,常用于告诉 AI:这个站点是谁、哪些页面最重要、哪些内容适合引用。Chrome Lighthouse 关于 llms.txt 的说明也将它描述为面向 LLM 和 AI 代理的机器可读摘要,并建议放在网站根目录。

llms.txt 放在哪里的根目录部署示意图

一句话结论:优先放在站点根目录

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.txtsitemap.xml 这类“约定路径”的发现方式。AI 工具或代理如果要尝试读取,最自然的探测地址就是根路径文件,而不是全站递归寻找某个隐藏文件。

如果你还没区分它和 robots 的作用,可以先看 MaxAEO 的这篇:llms.txt和robots.txt区别:先分清访问控制与内容引导。一句话概括:robots 管“能不能抓”,llms.txt 管“优先理解什么”。

www、裸域、子域名要不要各放一份?

要按“主机名”判断:example.comwww.example.comdocs.example.com 是三个不同入口。 哪个入口承载可被 AI 引用的内容,就在哪个入口的根路径部署对应文件。

常见做法有三种:

  1. 只使用一个规范域名
    如果所有访问都会 301 到 https://www.example.com/,则把主文件放在 https://www.example.com/llms.txt,裸域可重定向到同一地址。

  2. 官网和文档分离
    SaaS 网站常见结构是官网在 www,开发文档在 docs。这时建议两边各放一份:官网文件突出产品、行业方案、定价与案例;文档文件突出 API、SDK、快速开始和错误码。

  3. 多品牌或多区域站点
    us.example.comcn.example.comjp.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 的放行顺序

llms.txt 在 CDN 和源站之间的访问链路

要不要在 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 位置,至少要做三层检查:浏览器可访问、命令行返回正确、日志能看到真实请求。 只看浏览器页面打开是不够的。

推荐步骤:

  1. 打开 https://你的域名/llms.txt,确认不是 404、登录页或下载弹窗。
  2. 用命令检查状态码和类型:
curl -I https://example.com/llms.txt

理想结果包括:

HTTP/2 200
content-type: text/plain; charset=utf-8
  1. 用不同 User-Agent 测试是否被拦截:
curl -A "GPTBot" -I https://example.com/llms.txt
curl -A "ClaudeBot" -I https://example.com/llms.txt
  1. 查看 CDN、WAF、Nginx 或应用日志,确认请求没有被 403、429、JS Challenge 或验证码拦截。
  2. 每次内容更新后,记录修改时间、文件大小和核心链接数量,避免发布系统覆盖旧版本。

更完整的排查流程,可以参考:llms.txt验证方法:从格式到日志的三层检查

llms.txt 放在哪里的验证清单与日志检查

常见问题

llms.txt 必须叫这个名字吗?

是的,主文件建议固定命名为 llms.txt 这是 AI 工具按约定路径发现它的基础。不要改成 llm.txtai.txtllms-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 引用质量的,是你在文件里提供了哪些可信、清晰、可验证的内容。