它想解决什么

模型抓取网页时拿到的是 HTML:导航、模板、脚本、评论混在一起,真正的事实段落被噪声包围。llms.txt 的思路是给机器一份纯文本的站点导览——这是什么站、讲什么、关键页面在哪,用 Markdown 写清楚,让模型不必从模板里猜。

提案地址是 llmstxt.org,社区里也常配一份 llms-full.txt,把所有内容拼成一个长文件。

格式约定

结构很薄,一个标题、一段摘要、若干分组链接:

1
2
3
4
5
6
7
8
9
10
11
# 站点名称

> 一两句话说明这个站是做什么的、面向谁。

Details: 可选,补充口径、更新频率等。

## 关键页面
- [页面名](https://example.com/services/): 一句话说明这一页讲什么

## 近期内容
- [文章标题](https://example.com/2026/10/26/slug/): 摘要一句话

写的时候有两条要注意:摘要与每页说明必须描述那一页,不要写成宣传语;链接用绝对地址,别让人再拼一遍域名。

与 robots.txt、sitemap.xml 的分工

三者不是替代关系,是三道不同的门:

文件 回答的问题 缺了会怎样
robots.txt 允不允许抓 直接挡在门外,内容再好也进不去
sitemap.xml 有哪些 URL、什么时候更新 靠爬链发现,新页面与冷门页面容易漏
llms.txt 这个站是什么、重点在哪 模型自己从 HTML 里猜,容易被模板噪声干扰

所以顺序是:先确认放行与可达,再给索引,最后才谈”读得懂”。

一个务实的结论

截至 2026 年 10 月,主流生成式引擎是否读取 llms.txt,没有官方确认。它更像一份成本极低的自述文件:写了不会错,但别期待它单独改变引用情况。

真正决定引用的是前面那两件事——内容是否可抽取、站点是否可抓取。把 llms.txt 当成”结构化的入口页”顺手做掉,性价比最高;把它当成 GEO 的全部,就是自我安慰。

另外要维护一致性。这份文件里的业务描述与联系方式如果和页面正文各说一套,反而制造实体歧义——那正是五步做法里”实体一致性”要避免的事。

OneGeo 站是怎么生成的

本站的 llms.txt(直接查看)由 scripts/llms.js 在构建时生成:站点名与描述取自 _config.yml,地址电话取自主题配置的 contact 节点,近期文章取最新 40 篇并带摘要。这样只有一个数据源,不会出现”页面上改了、说明文件没改”的情况。