llms.txt,90天后:一次诚实的回顾
三个月前我们在aat.ee全站部署了llms.txt。它是什么,我们做了什么,日志和引荐数据实际显示了什么,以及关于你是否值得折腾的诚实结论。

六月,我们在 aat.ee 全站上线了一个 llms.txt——一个路由文件,一份站点关键内容的 markdown 地图,通过 aat.ee/llms.txt 提供。前后花了大约一个小时。九十天后,这是一份关于它做了什么、没做什么的诚实记录,因为你读到的关于 llms.txt 的内容,大多要么是规范复述,要么是推销话术,而中间地带——来自真实生产站点的实测结果——少之又少。
一段话讲清 llms.txt 是什么
llms.txt 是一个提议中的约定(不是标准——后面再谈):放在域名根目录下的一个 markdown 文件,为语言模型提供一份精心整理的站点地图。sitemap.xml 是给爬虫的详尽 URL 列表,而 llms.txt 是给助手的简短、按优先级排序的_阅读清单_——什么重要、它叫什么、它在哪里。这个赌注是:智能体更偏好一份精心整理的摘要,而不是盲目爬取。
我们上线了什么
实现方式刻意做得平淡无奇:一个动态路由,把三样东西组合起来——一段静态的爬取策略前言、最近 15 个上线的项目、最新发布的 10 篇文章,以及分类列表——拼成 markdown,并用一个转义函数包裹所有用户可控的内容。
// User text (project names, article titles) must not break out of the
// markdown link or inject headings into an agent-facing file.
function mdSafe(text: string): string {
return text
.replace(/[\r\n]+/g, " ")
.replace(/[[\]()]/g, "")
.trim()
}
const projectLinks = recentProjects
.map((p) => `- [${mdSafe(p.name)}](${baseUrl}/projects/${p.slug})`)
.join("\n")// User text (project names, article titles) must not break out of the
// markdown link or inject headings into an agent-facing file.
function mdSafe(text: string): string {
return text
.replace(/[\r\n]+/g, " ")
.replace(/[[\]()]/g, "")
.trim()
}
const projectLinks = recentProjects
.map((p) => `- [${mdSafe(p.name)}](${baseUrl}/projects/${p.slug})`)
.join("\n")这个净化步骤是唯一微妙的地方。项目名称和标题来自用户和 LLM 流水线;嵌入的换行符或方括号会让某个条目向一个被邀请当作地图来信任的文件里注入标题或假链接。
日志显示了什么
来自九十天服务器日志和来源数据的三个观察。
智能体确实会抓取它。 我们看到来自已知助手爬虫 user-agent 对 /llms.txt 的周期性拉取,频率远低于 robots.txt,但持续存在。无论该规范的处境如何,抓取行为是真实存在的。
没有可衡量的推荐奇迹。 本季度 AI 助手给 aat.ee 带来的推荐流量有所增长——但增长与我们的发布节奏同步,而非与 llms.txt 的上线同步。我们无法把任何一次会话归因于某个智能体读了该文件,而且我们对任何声称在此有紧密归因的人都持怀疑态度:助手先抓取,然后从混合来源中作答,而引用很少会带上一个 llms.txt 形状的来源标识。
它倒逼出了一份有用的清单。 意料之外的好处:写一份精心整理的地图意味着要决定你站点的_顶部_究竟是什么。我们的路由渲染实时数据,所以文件保持最新——但“什么该进阅读清单”这一自律,对分类结构的改进比文件本身更大。
令人不适的部分:它仍是一个提议
llms.txt 背后没有已批准的标准。MIME 类型仍有争议(text/markdown 还是 text/plain),没有文档记载助手会读取它,而且你没有它也不会出任何问题。任何在 2026 年告诉你它“对 AI SEO 必不可少”的文章,都跑在了证据前面。
九十天后我们的立场是:成本如此之低,以至于期望值仍为正,就像一间组织良好的大堂对一栋办公楼是加分项一样。它本身不会带来结果,但当某个智能体确实去寻找方向时,你宁愿它找到的是一份精心整理的地图,而不是一堵墙。
你应该做一个吗?
一张诚实的决策表:
- 如果你的站点不到约 50 个页面、标题清晰——边际收益。你的 sitemap 和导航已经讲清了故事。
- 如果你有一个数据驱动的站点(上线项目、列表、文章、文档——每周都在变的内容)——做。生成的 llms.txt 就是一个路由文件,自动保持最新,并给助手一份你的 sitemap 无法提供的无垃圾摘要。
- 如果有人告诉你它会提升 AI 排名——别做。它是一张地图,不是一个 meta 标签。
上面的实现模式——组合、净化、提供——适用于任何带路由层的框架。让它保持生成而非手写,让用户文本保持净化,让你的预期保持校准。