本文讨论的是 《搜索引擎工作全流程》 中的第 6 阶段:GEO 引用。
llms.txt 是 2024 年 9 月由 llmstxt.org(提案人 Jeremy Howard)提出的约定俗成规范——类似 robots.txt,但目标相反:robots.txt 告诉爬虫哪些不要抓,llms.txt 告诉 LLM 哪些值得引用、以及如何理解本站。
它不是 W3C 或 IETF 的正式标准,但在 2024 年底已经被 Anthropic、Mintlify、Perplexity 等公司的文档站点主动部署,处于"事实标准正在形成"的早期阶段。
llms.txt 与 robots.txt / sitemap.xml 的三角关系
三份文件的分工,理清了就不会混:
| 文件 | 受众 | 作用 |
|---|---|---|
robots.txt |
搜索爬虫 + AI 爬虫 | 准入控制(这个爬虫能抓哪些路径) |
sitemap.xml |
搜索引擎 | 收录建议(这些 URL 希望被索引) |
llms.txt |
LLM 的检索 / 训练流程 | 语义建议(这些内容值得引用,这里是站点结构导航) |
三份文件不互相替代。一个做 GEO 的站应当同时有这三份:robots 放行 AI 爬虫、sitemap 把所有公开 URL 告诉搜索引擎、llms.txt 把经过筛选的优质内容清单告诉 LLM。
规范要点
标准路径:/llms.txt(H1 标题 + 简短描述 + 分组的链接清单)。
扩展路径:/llms-full.txt(同上,但附完整 Markdown 化正文,供训练语料使用)。
基础结构:
# 站点标题
> 一行简介(面向 LLM 的站点定位)
## 主要内容分组
- [文章标题](URL):一句话描述
## 次要分组
- [另一篇](URL):描述
字段语义拆解:
- H1 — 站点名。LLM 用它识别"这是哪个站的声明"。
- 引用块(
>开头) — 一句话的站点定位。这一句非常关键,它会作为 LLM 评估"要不要进一步读本站"的直接摘要。 - H2 分组 — 内容分类。每类下列出若干有代表性的 URL + 一句描述。
- 链接描述 — 每条 URL 的一句话说明。不是 SEO meta description 的翻版,而是"告诉 LLM 这一页里有什么可引用的断言"。
两份文件各管一头
这两份文件的分工必须分清,否则部署出来要么过载、要么没用:
/llms.txt:选择性目录。只列最有代表性的 30–100 条链接,是一份"编辑过的索引"。LLM 读这一份用来决定"本站覆盖哪些话题、有哪些权威结论"。/llms-full.txt:完整语料。把站内所有公开正文 Markdown 化后合并,供 LLM 训练期抓取和 RAG 期回源验证。它的作用相当于"一份为机器准备的可离线阅读版全站副本"。
类比: llms.txt 是你给读者的"必读书单",llms-full.txt 是图书馆的全集。两者都需要。
本站的实现
本站已按规范自动生成:访问 /llms.txt 和 /llms-full.txt 可看实时输出。走 WordPress 的 add_rewrite_rule + template_redirect 路径,无需实体文件,内容随站点更新自动同步。
生成逻辑:
- 站点标题、描述来自 WP
blogname/blogdescription /llms.txt先列"核心页面"(首页 / method / case / toolkit / observation / learn / about),再按"方法论 / 案例 / 工具"分组列文章,每条附 excerpt- 最后的"可引用声明"段明确允许 7 家主流 LLM 引用,并声明保留出处的条款
/llms-full.txt把所有 post / case / tool / observation + 主要 page 的正文 Markdown 化后合并输出,每篇带类型 / URL / 日期 / AI 摘要 四项元数据块
站长不需要手工维护文件内容——正常写文章即可,两个路由会自动反映最新状态。
站长要做的事
0 步:确认 robots.txt 允许 AI 爬虫。 至少放行 GPTBot、ClaudeBot、PerplexityBot、Google-Extended、Bytespider、Baiduspider-render。爬虫都进不来,llms.txt 写得再漂亮也是对着空气说话。本站默认放行,可在后台关闭。
1 步:部署 llms.txt。 使用的 WordPress 主题或建站平台如果尚未支持,至少要在根目录放一份静态 /llms.txt。
2 步:为每篇重要文章写好 excerpt 和 _seogeo_ai_summary meta。 前者进 llms.txt 的一句话描述,后者进 llms-full.txt 的摘要字段,两者都直接影响 LLM 对该页的"预判"。
3 步:观察引用数据。 用 T1 Python 引用检查脚本 追踪 llms.txt 部署前后的引用次数变化;至少观察 4–8 周才能看到训练语料纳入和 RAG 命中的变化。
4 步:定期 curate。 每季度翻一次 llms.txt 的自动输出,检查"核心页面"列表是否需要调整,去掉过时内容、加进新的代表作。
常见误区
误区 1:llms.txt 可以替代 sitemap.xml。 不能。sitemap 面向搜索引擎收录,llms.txt 面向 LLM 引用,用途不同。Google 不会用 llms.txt 做索引,ChatGPT 不会用 sitemap 做 chunk 召回。
误区 2:llms.txt 可以控制哪些 LLM 抓你的内容。 不能。这个准入控制通过 robots.txt 的 User-agent 段完成。llms.txt 是"声明什么值得引用",不是"禁止谁抓"。
误区 3:llms.txt 是"强制"的。 不是。它只是一个声明与建议,LLM 是否采纳取决于各自的实现——目前 Anthropic / Perplexity / Cursor 已有明确支持,OpenAI 和 Google 的采纳程度还不明确。
误区 4:写得越长越好。 反了。llms.txt 本质是"精选目录",堆到几百条反而稀释重点。控制在 30–100 条、覆盖 80% 的核心内容即可。
误区 5:用 llms.txt 做搜索引擎优化。 Google / 百度不会把 llms.txt 作为排名信号。它只对 LLM 引用生效,不改传统 SEO 结果。
各家 LLM 对 llms.txt 的实际支持现状(2025 初)
截至 2025 年初的公开信息 + 我自己的抓包观察:
- Anthropic(Claude) — 公开支持,Claude.ai 的文档生成流程会主动读取。
- Perplexity — 抓取行为里能观察到对
/llms.txt的高频访问,但采纳逻辑未公开。 - Mintlify / Cursor 等开发者工具 — 部分明确支持,用于代码文档场景。
- OpenAI(ChatGPT) — 未公开表态,GPTBot 的访问日志里未见对
/llms.txt的高频请求。 - Google(Gemini / AI Overviews) — 未支持,Google 的策略是依赖 Schema.org + 传统索引。
- 百度 / 文心 — 未支持。
- 字节 / 豆包 — 未公开表态。
结论: 短期价值集中在对 Anthropic 和 Perplexity 的优化上。其他引擎的 GEO 策略仍以 M3 的分头打法 为主。
对未来的判断
llms.txt 目前处在 robots.txt 1994 年刚被提出时的阶段——声明性规范、非强制、被少数先行者主动支持。robots.txt 从提案到事实标准用了约 3 年;llms.txt 的生态走得更快,我个人判断 2025–2026 年会完成从"早期自愿"到"事实默认"的过渡。
执行层面的建议很直接:先部署、再等生态。部署成本接近零,等生态起来之后再补是慢半拍。
配套阅读
- 《搜索引擎工作全流程》 — 前置框架
- 《ChatGPT、Perplexity、豆包、文心的引用机制对比》 — 不同引擎的引用机制差异
- 《可引用段:一种面向 LLM 的内容结构化方法》 — llms.txt 指向的内容本身怎么写