llms.txt 是放在网站根目录的一个 Markdown 文件,用来告诉大模型"这个站最值得读的内容在哪里"。它由 Jeremy Howard 在 2024 年提出,思路类似 robots.txt 和 sitemap.xml,区别在于它面向的是模型的阅读需求:给一份人工挑选过的、带简短说明的核心链接清单,而不是把整站丢过去。
这款工具抓取你站点的 llms.txt,按提案定义的结构逐项校验,并抽样验证里面的链接还能不能打开。站里已经有一个 llms.txt 生成器负责产出文件,这一款负责检查产出的东西是否合规、有没有随时间烂掉。
提案对结构的要求很简洁,但顺序是固定的:
- [名称](URL): 说明。说明部分可选,但写了对模型帮助很大。校验器会逐项检查这些结构,同时标出常见的写法问题:链接用了相对路径、条目缺少说明、分区为空、以及整个文件是否大到失去了"精选"的意义。
llms.txt 是索引,llms-full.txt 是全文。前者给链接和说明,模型按需去取;后者把主要内容直接拼在一个文件里,模型一次读完不用再发请求。
两者各有取舍。索引式的文件小、维护简单,但模型需要多次抓取,而且它抓不抓得动你的页面还要看你的站是不是需要 JavaScript 渲染。全文式的一次到位,代价是文件可能几百 KB 甚至几 MB,超出很多模型单次能吃下的量,也更难保持同步。
实践上的建议是两个都提供:llms.txt 做精选索引,llms-full.txt 给需要完整内容的场景。这款工具会同时检测两个文件是否存在,并给出体积。
这里需要说实话:到目前为止,没有任何一家主流 AI 厂商公开确认会读取 llms.txt。它是一个社区提案,不是被采纳的标准。日志里能看到的抓取,多数来自各类第三方工具和研究爬虫,而不是 ChatGPT、Claude 或 Gemini 的官方抓取程序。
那为什么还建议写?三个理由:一是成本极低,一个文件几十行,写一次维护成本接近于零;二是它是可赌的期权,如果哪天被采纳,早写的人不用临时补;三是写这个文件的过程本身有价值——被迫想清楚"我这个站最值得被读的十几篇内容是哪些",这个梳理对内容策略有实实在在的帮助。
但不要把它当成 GEO 的主要抓手。真正影响 AI 引用的仍然是内容本身的质量、结构和可抓取性,llms.txt 顶多是锦上添花。把精力放在让正文自包含、结构清晰、事实密度高上面,回报率高得多。
需要说实话:到目前为止没有任何一家主流AI厂商公开确认会读取它,这是社区提案不是采纳标准。建议写的理由是成本极低、属于可赌的期权,以及梳理过程本身对内容策略有帮助。别把它当成GEO的主要抓手。
顺序固定:一个H1写站点名(唯一必填),一个引用块写一两句话简介,若干可选段落,然后是H2分区加链接列表,格式为减号加中括号名称加圆括号URL加冒号说明。可以有一个名为Optional的分区放次要资源。
前者是索引给链接和说明,模型按需去取;后者把主要内容拼成一个文件,一次读完不用再请求。建议两个都提供,前者精选后者完整。
提案里的设计:放在这个分区的链接被视为次要资源,模型在上下文紧张时可以跳过。把核心内容和补充材料分开,是个容易被忽略但有用的机制。
建议写绝对地址。相对路径依赖读取方正确解析基准URL,不同实现的处理方式可能不同,绝对地址不会有歧义。
llms.txt是精选索引,几十条链接就够了,几百条就失去了精选的意义。llms-full.txt没有硬限制,但要考虑模型单次能吃下多少,几MB的文件多数场景下用不上。
为了控制耗时。链接很多时全部验证会让请求很慢,抽样已经足以发现文件是否年久失修。
需要。llms.txt最容易出的问题就是站点改版后文件没跟着更新,里面全是死链。建议纳入发布流程,或者定期回来跑一遍这个校验。