它是什么

llms.txt 是一个放在域名根目录的纯文本 Markdown 文件,作用是给 AI 引擎提供一份「站点说明书」:

  • 这个站是做什么的
  • 有哪些核心内容
  • 每个重要页面的地址和一句话说明

访问路径固定为:

1
https://你的域名/llms.txt

一个必须说清的前提

它目前不是标准协议,也没有主流 AI 引擎公开承诺会读取它。

所以对它的定位应该是:成本极低的可选优化项,不是「做了就能被引用」的开关。

真正决定 AI 会不会引用你的,仍然是:

  1. 内容在静态 HTML 里(爬虫不执行 JS)
  2. 爬虫没被 CDN 拦截
  3. 内容本身有回答价值

llms.txt 是在这三条之上的一层「便利贴」。

格式规范

基本结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 站点名称

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

补充一到两段展开说明,可以包含主要覆盖的主题范围。

## 核心栏目
- [栏目名](https://域名/路径/): 一句话说明
- [另一个栏目](https://域名/路径/): 一句话说明

## 重点内容
- [文章标题](https://域名/文章路径/): 一句话说明这篇讲了什么

## 可选
- [次要内容](https://域名/路径/): 说明

## 关于
- [关于我们](https://域名/about/): 团队与联系方式

四条硬性规则

规则 说明
必须是 Markdown 不是 HTML,不是 JSON
只能有一个 H1 就是站点名
引用块 > 用于站点简介 放在 H1 之后
## 分节,- 列条目 条目格式为 - [标题](URL): 说明

一个容易踩的坑

## Optional 是约定俗成的特殊分节——里面的内容表示「上下文不够时可以跳过」。如果你的重点内容不多,可以不用这个分节。

可直接照抄的模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 示例科技

> 面向跨境电商卖家的独立站建站与 Google SEO 知识库,覆盖建站选型、关键词调研、技术 SEO 与跨境收款。

本站内容以实操为主,每个主题都给出可直接执行的步骤与判定标准,不写泛泛而谈的概念介绍。更新频率约每周一篇。

## 核心栏目
- [建站与选型](https://example.com/columns/site/): WordPress、Shopify 与静态站的选型对比
- [Google SEO](https://example.com/columns/seo/): 关键词调研、技术 SEO、Search Console 实操
- [跨境收款](https://example.com/columns/payment/): PayPal、Payoneer 与虚拟卡使用指南

## 重点内容
- [Google SEO 新站上线清单](https://example.com/google-seo-checklist/): 从 0 到被收录的 21 项检查
- [关键词调研完整流程](https://example.com/keyword-research/): 挖词、判意图、评竞争、定选题四步法
- [AIEO 指南](https://example.com/aieo-guide/): 让 ChatGPT 与 Perplexity 引用你的网站

## 关于
- [关于我们](https://example.com/about/): 团队背景与联系方式
- [商务合作](https://example.com/cooperation/): 广告与内容合作

怎么生成

静态站:写个生成脚本

如果站点有文章列表(Markdown 或 JSON),可以用脚本自动生成,避免手工维护:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import os, re

SITE = 'https://example.com'
posts = []
for f in sorted(os.listdir('source/_posts')):
if not f.endswith('.md'):
continue
text = open(f'source/_posts/{f}', encoding='utf-8').read()
title = re.search(r'^title:\s*"?(.*?)"?\s*$', text, re.M)
desc = re.search(r'^description:\s*"?(.*?)"?\s*$', text, re.M)
if not title:
continue
slug = f[:-3]
posts.append((title.group(1), f'{SITE}/{slug}/', desc.group(1) if desc else ''))

lines = [
'# 站点名称',
'',
'> 一句话站点简介。',
'',
'## 重点内容',
'',
]
lines += [f'- [{t}]({u}): {d}' for t, u, d in posts]
open('source/llms.txt', 'w', encoding='utf-8').write('\n'.join(lines) + '\n')

注意llms.txt 要放在能被直接访问的位置。静态站的 source/ 目录下会被原样拷贝到输出根目录;但如果文件名以 _ 开头会被忽略(这是多数静态站生成器的规则),所以不要命名为 _llms.txt

动态站:加一个路由

WordPress 可以用 wp_rewrite 或一个轻量插件;其他框架加一个返回 text/plain 的路由即可。

要不要做

按你的情况判断:

你的情况 建议
内容站 / 知识库 / 工具导航站 ✅ 值得做,成本低
电商站 ⚠️ 优先级低,先把商品页和结构化数据做好
企业官网 ⚠️ 可以做,但重点应放在「关于/资质」类页面的内容质量
站点还没被正常收录 ❌ 先解决收录问题,别做这个

和 robots.txt 的区别

经常有人搞混。两者职责完全不同:

robots.txt llms.txt
作用 限制爬虫能访问什么 推荐AI 优先看什么
性质 访问控制 内容索引
必需
格式 自定义文本 Markdown

robots.txt 决定「能不能进」,llms.txt 决定「进去后先看哪里」。 前者没做对,后者写了也没用。

验证

上线后确认能正常访问:

1
2
curl -s https://你的域名/llms.txt | head -20
# 期望返回 Markdown 文本,而不是 404 页面

同时检查 Content-Type。理想是 text/plain; charset=utf-8;如果服务器返回 text/html 也能被读取,但不够规范。

1
curl -sI https://你的域名/llms.txt | grep -i content-type

最后一句

把它当成给 AI 的一页目录,而不是排名手段。做了不亏,但别指望它是决定性的那一步。