llms.txt:让 AI 读懂你的网站

💡 原文中文,约8100字,阅读约需20分钟。
📝

内容提要

llms.txt 是网站根目录下的 Markdown 文件,用自然语言向大模型说明网站定位与核心内容,由 Jeremy Howard 于 2024 年提出。它旨在解决 HTML 页面噪声大、模型难以判断内容价值的问题,与 SEO 无关,服务于 GEO。格式上仅 H1 必需,可添加摘要、分组链接和 Optional 标记。写作应注重策展而非罗列,清晰描述内容价值。目前尚无厂商背书,但实现成本极低,值得顺手完成。

🔎

延伸解读

llms.txt 与 robots.txt 的本质区别

文章用一句话点明两者分工:robots.txt 管「你能不能抓」,是许可;llms.txt 管「抓完怎么理解」,是导读。robots.txt 自 1994 年沿用至今,有合规压力和明确的爬虫行为规范;llms.txt 则没有强制力,也没有被主流厂商承诺支持。理解这一区别,有助于读者摆正对 llms.txt 的预期——它更像一份主动递出的站点说明书,而非必须遵守的协议。

落地成本与优先级:先保证正文可抓取

文章给出的投入产出排序值得注意:正文服务端渲染、干净的 URL 与语义化 HTML、保留 sitemap 与 RSS 属于高优先级,而 llms.txt 被列为低优先级。原因很直接——如果正文本身抓不到,写再好的 llms.txt 也没用。此外,给页面配 Markdown 版本比 llms.txt 更本质,但成本也更高,.md 后缀方案会让资源翻倍并需维护 URL 映射,Link 响应头方案则依赖服务器或 CDN 配置。

内容策展:描述要回答「读了能得到什么」

文章强调 llms.txt 的难点不在格式而在内容,最容易犯的错是写成 sitemap 的 Markdown 版。若站点有 700 篇文章,全部列出等于没列,模型仍要读完 700 行才能决策。好的做法是挑出 10~30 个真正值得作为入口的页面,按主题分组,每条描述写清价值而非复述标题。摘要也应包含领域、内容形态、规模或边界三要素,避免「专注于分享高质量技术内容」这类无信息量的宣传语。

内容协商的缓存陷阱

文章提到,靠 Accept 请求头区分返回格式的内容协商方式最容易踩坑的是缓存:如果响应被 CDN 缓存,第一个请求缓存了 HTML,后续带 Accept: text/markdown 的请求也会拿到 HTML,而发起方往往察觉不到。因此缓存 key 必须带上 Accept 才安全。此外,服务端无法满足时应回退到 HTML,而不是返回 406,否则普通浏览器也会拿不到页面。

❓

Q&A

llms.txt 是什么?它和 robots.txt 有什么区别?

llms.txt 是一个约定:在网站根目录放一个 Markdown 文件,用自然语言告诉大模型和 AI Agent 这个网站是什么、哪些内容值得读、每一篇讲了什么。它由 Jeremy Howard 在 2024 年 9 月提出。与 robots.txt 的区别在于:robots.txt 管的是「你能不能抓」,是许可;llms.txt 管的是「抓完怎么理解」,是导读。

为什么需要 llms.txt?它解决了什么问题?

HTML 页面本身对模型不友好:真正有用的正文只占一小部分,其余是导航栏、侧边栏、广告位、cookie 提示、内联脚本和样式,模型需要先做一轮「抽取正文」,既消耗 token 也容易抽错。此外,站点有几百篇文章时,模型没有好办法知道哪几篇是核心、哪几篇已过时,只能靠 sitemap 遍历、搜索命中或猜 URL 规律。llms.txt 的思路是主动告诉模型,而不是让模型自己猜。

llms.txt 的文件格式规范是怎样的?哪些部分是必需的?

llms.txt 的格式非常克制:按固定顺序排列几个部分,其中只有 H1 标题是必需的。具体包括:可选的 BOM;必需的 H1 标题(站点或项目名);可选的引用块 > 一句话摘要;可选的段落补充说明;可选的 H2 分组 + Markdown 链接列表;可选的 ## Optional 分组放次要内容。文件必须是 Markdown,放在站点根目录或任意子路径,路径就是 /llms.txt 或 /docs/llms.txt。除 H1 外所有部分都是可选的,但只有 H1 的 llms.txt 基本没有价值。

llms.txt 和 SEO 有什么关系?它能提升搜索排名吗?

llms.txt 和 SEO 不是一回事。它不提升搜索排名,Google 明确表示不用它做排名信号。它服务的是另一条链路——AI 搜索、AI 浏览器、编程 Agent 在回答问题时如何取用你的内容,这个环节通常叫 GEO(Generative Engine Optimization)。做 SEO 是把页面喂给爬虫,做 GEO 是把理解喂给模型。

写 llms.txt 时内容应该怎么写?有哪些常见错误?

写 llms.txt 时最容易犯的错是把它写成 sitemap 的 Markdown 版。正确做法是策展而非罗列:挑出 10~30 个真正值得作为入口的页面,按主题分组。每个描述要回答「读了能得到什么」,而不是复述标题。摘要要写清「是什么」,包含领域、内容形态、规模或边界,而不是写宣传语。Optional 只放次要内容,如关于页、更新日志、友链、法律声明。

llms.txt 目前有厂商支持吗?实际效果如何?

llms.txt 目前没有强制力,也没有被主流厂商承诺支持。OpenAI、Google、Anthropic 等都没有承诺会读取 llms.txt。它不是 robots.txt 那种被广泛遵守的约定。公开的爬虫日志分析普遍显示,AI 爬虫对 /llms.txt 的请求量很低,主要流量仍然集中在页面和小部分 feed 上。但它并非无用:成本是一个静态文件和半小时的整理,副作用接近于零,可以作为一个便宜的赌注,而不是 SEO 银弹。

除了 llms.txt,还有哪些更值得优先做的优化?

按投入产出比排序,真正该先做的包括:高优先级——正文服务端渲染(全 JS 渲染的页面爬虫几乎取不到内容)、干净的 URL 与语义化 HTML(<article> / <h1> 比一堆 <div> 有用)、保留 sitemap 与 RSS(这两个才是被真正消费的发现渠道);中优先级——robots.txt 不误伤 AI 爬虫、页面自带结构化数据(作者、发布时间、摘要);低优先级——llms.txt。llms.txt 是锦上添花的那一层,如果正文本身抓不到,写再好的 llms.txt 也没用。

🏷️

标签

➡️

继续阅读