导语:一家 2003 年上线的德国光伏电商站,在网站根目录放了 llms.txt 与 llms-full.txt 两个文件,并用 .htaccess 给 AI 爬虫单独记账。6 周后拿到第一份真实抓取日志:5 个 AI 系统、17 次 llms 文件请求,PerplexityBot 首抓 10 次里有 9 次直接读的是 llms-full.txt。
背景:一个"不知道有没有用"的电商站
solar-autark.com 是德国做离网光伏、房车电源、储能电站的垂直电商,2003 年上线,站内约 120 个商品分类、数百个 SKU,卖 Victron、Anker SOLIX、Offgridtec 等品牌。和绝大多数电商站一样,它在做这次实验之前没有任何 AI 专项配置。
这类站点有三个典型痛点:
商品参数、价格、库存、型号全埋在模板和组件里,代理抓一页 HTML 要连带吃掉导航、购物车、推荐位,token 成本高,抓到的还不一定是要点。
Google Analytics、Matomo 这类工具统计不到 AI 爬虫,因为它们既不执行 JS 也不带 cookie。结果是:你改了,但没有任何数据能证明改没改有效。
站内筛选、排序、加购参数会产生大量重复 URL,爬虫预算被这些地址吃掉,真正的商品页反而抓得少。
案例方(llms.txt 生成器团队)的做法很轻:2026 年 3 月初生成 llms.txt 与 llms-full.txt,上传到网站根目录,同时在 .htaccess 加一段按 User-Agent 记账的跳转规则,之后不再做其他改动。一次性配置约 15 分钟。
落地清单
1. 文件位置与路由
两个文件都放在站点根目录,路径固定、无跳转、无登录:
| 文件 | 实测大小 | 行数 | 覆盖范围 |
|---|---|---|---|
| /llms.txt | 43,316 字节 | 192 行 | 50 个商品、37 个分类、13 个品牌、9 个计算器/工具,加问答路由 |
| /llms-full.txt | 56,584 字节 | 1,144 行 | 144 个页面的逐页条目(含价格、库存、品牌、型号、对应 Schema 类型) |
配套还有一个 /llms-data.json,和两个 txt 一起写在 robots.txt 的注释里公开了路径。这一点很关键:机器能猜到 /llms.txt,但猜不到你还有 llms-full.txt 和 json 版本,注释是最省事的公告位。
2. llms.txt 原文片段(真实内容,节选)
# SOLAR-AUTARK.COM > Solaranlagen für Wohnmobil, Gartenhaus und Notstrom: Komplettsets, Powerstations, > Akkus und Laderegler von Victron, Anker SOLIX und Offgridtec - seit 2003. > Stand: 2026-11-04 - Sprache: Deutsch - Language: German - > Quelle: https://www.solar-autark.com ## Über SOLAR-AUTARK.COM Online-Shop für Inselanlagen und netzunabhängige Solarstromversorgung für Wohnmobil, Gartenhaus und Notstrom ... Seit 2003. Diese Datei erfasst 50 Produkte, 37 Kategorien, 13 Marken und 9 Rechner/Tools der Website. Zusätzlich vorhanden: FAQ, Glossar, Downloads/Anleitungen. ## Wegweiser: Welche Seite beantwortet welche Frage? - Produkte finden & kaufen: [Shop: Solarmodule, Powerstations & Zubehör](.../shop/), [Solar-Komplettsets für Wohnmobil & Garten](.../produktkategorie/solar-komplettsets/) - Bedarf berechnen & Anlage auslegen: [MPPT-Rechner](.../mppt-rechner/), [Speicher-Rechner](.../akku-rechner/), [Ladezeit-Simulator](.../ladezeit-simulator/) - Versand & Lieferzeit: [Versandarten & Versandkosten](.../versandarten/) - Rückgabe, Widerruf & Reklamation: [Widerrufsbelehrung](.../widerrufsbelehrung/), [Rücksendung, Widerruf & Reklamation](.../ruecksendung/) - Preise & Mehrwertsteuer: [Nullsteuersatz 0 % MwSt.](.../nullsteuersatz/) ## Hauptseiten - [Inselanlagen & Solar-Komplettsets kaufen](https://www.solar-autark.com/): ... - [Shop: Solarmodule, Powerstations & Zubehör](.../shop/): ... ## Produkte - [Anker SOLIX S2000 Powerstation 1500W LiFePO4 USV](.../produkt/anker-solix-s2000-...): 756.29 EUR | Anker SOLIX | auf Lager | ... - [Anker SOLIX C2000 Gen 2 Powerstation 2048Wh 2400W LiFePO4](.../produkt/anker-solix-c2000-...): 999.90 EUR | Anker SOLIX | auf Lager | ... - [Solargenerator Set 1024Wh - Anker SOLIX C1000X Gen 2 + PS200 bifazial](.../produkt/...): 879.00 EUR | Anker SOLIX | auf Lager | ...
三个可直接抄的结构点:
首行 H1 是站名,紧跟一段 blockquote 摘要,再给一行"数据快照"(更新日期、语言、来源)。代理读前 6 行就知道这是谁、覆盖什么、什么时候更新的。
用"哪个页面回答哪个问题"的问答式目录(Wegweiser),而不是按栏目罗列。政策类页面(运费、退货、0% 增值税)单列一组,这类问题在 AI 问答里出现频率极高,却是电商站最容易漏的地方。
商品条目统一为"名称 + 价格 + 品牌 + 库存状态 + 一句差异点",价格带币种,库存用站点自己的德语原词(auf Lager)。
3. llms-full.txt 怎么分块
llms-full.txt 是逐页平铺,文件头三行交代元信息,之后每页一个 ## 块:
# www.solar-autark.com - Vollständige Seitenübersicht Generiert am: 04.11.2026 15:40 UTC Quelle: LLMs.txt Generator (https://llmstxtgenerator.de) Seiten: 144 ## Anker SOLIX S2000 Powerstation 1500W LiFePO4 USV URL: https://www.solar-autark.com/produkt/anker-solix-s2000-powerstation-1500w-lifepo4-usv/ Bereich: Produkte Beschreibung: Anker SOLIX S2000: Bis zu 20 % mehr nutzbare Laufzeit als vergleichbare 2-kWh-Modelle... Schema: Product **Produkt:** Anker SOLIX S2000 Powerstation 1500W LiFePO4 USV **Preis:** 756.29 EUR **Verfügbarkeit:** auf Lager **Marke:** Anker SOLIX **Modell:** AS220311
放进去的:商品名、规范化 URL、所属板块、一句话描述、对应 Schema 类型、价格、库存、品牌、型号。
不放进去的(也是这份文件能压到 56 KB 的原因):站内搜索结果页、筛选与排序参数 URL、加购与结算参数、wc-ajax 接口、上传日志目录、后台路径。这六类在 robots.txt 里同时被 Disallow,两边口径一致才不会出现"文件里列了、robots 里挡了"的自相矛盾。
一个反直觉的实测结论:首抓时 PerplexityBot 10 次请求里 9 次读的是 llms-full.txt,只 1 次读 llms.txt。说明对电商这种"结构化事实密集"的站,摘要不够用,代理要的是带价格的完整清单。而 4 月之后所有爬虫改读 llms.txt,案例方的推测是首轮已索引全量、后续用短文件做增量确认。
4. robots 与爬虫放行
这是最容易被忽略、也最容易"写了等于没写"的一环。该站 robots.txt 给 AI 爬虫开了独立 UA 组,26 个 User-agent 共用一个组:
# KI-Crawler: eigene Gruppe mit identischen Regeln (sonst gilt fuer sie keine *-Gruppe) User-agent: GPTBot User-agent: ChatGPT-User User-agent: OAI-SearchBot User-agent: ClaudeBot User-agent: Claude-User User-agent: Claude-SearchBot User-agent: anthropic-ai User-agent: PerplexityBot User-agent: Perplexity-User User-agent: Google-Extended User-agent: GoogleOther User-agent: Applebot User-agent: Meta-ExternalAgent User-agent: Bytespider User-agent: CCBot ... Allow: / Disallow: /wp-content/uploads/wc-logs/ Disallow: /*?add-to-cart= Disallow: /*?wc-ajax= Disallow: /*?*filter_ Disallow: /*?*orderby= Disallow: /?s=
要点不是这些 Disallow,而是"必须有独立组":robots.txt 的规则是,只要某 UA 匹配到了自己的组,* 组就不再对它生效。所以如果你在 * 组里写了 Allow: /,又在某个插件的 AI 规则里给 GPTBot 单独写了一行 Disallow: /,GPTBot 会按自己的组走。反过来,很多站以为 * 组放行就够了,实际是别处有更具体的组在挡。
另外该站把 SeobilityBot(SEO 审计工具)单独成组并加了 Crawl-delay: 3,注释里写明 2026-10-31 当天该爬虫请求量约 98,000 次。AI 爬虫放行的同时,把非 AI 的高频抓取单独节流,是同一份文件里两个方向的操作。
5. 抓取记账:.htaccess 规则(真实片段)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "(GPTBot|ChatGPT-User|OAI-SearchBot|ClaudeBot|Claude-User|anthropic-ai|PerplexityBot|Google-Extended|GoogleOther|Meta-ExternalAgent|FacebookBot|Applebot|YouBot|cohere-ai|Diffbot|Amazonbot|Bytespider|CCBot|bingbot|msnbot|Timpibot)" [NC]
RewriteRule ^llms(-full)?\.txt$ https://llmstxtgenerator.de/api/bot-tracker.php?action=site&site=%{HTTP_HOST}&path=%{REQUEST_URI} [R=302,L]
</IfModule>放置位置有硬要求:必须在 .htaccess 顶部,WordPress 站点要放在 # BEGIN WordPress 之前。原因是很多 CMS 最后一条规则会把所有请求转给 index.php,规则排在它后面就永远不触发。
这段规则同时也暴露了这个方案的结构性弱点:它把 /llms.txt 的响应交给第三方 302 中转。好处是 15 分钟就能拿到数据;代价是 llms.txt 的可用性从此依赖第三方接口,对方接口抖动时,AI 爬虫拿到的就是 5xx 而不是你的文件。
结果:前后对照(全部标注口径)
| 指标 | 配置前 | 配置后 | 口径 |
|---|---|---|---|
| 可观测的 AI 抓取 | 无(GA/Matomo 统计不到) | 3/28 至 4/9 共 17 次 llms 文件请求,5 个系统 | 站点自建 .htaccess 记账,案例方自述,非第三方复现 |
| llms-full.txt 被读 | 无 | 3/28 单次爬行 10 请求中 9 次 | 同上 |
| 爬虫多样性 | 无 | PerplexityBot 12、ChatGPT-User 2、Applebot 1、Meta-ExternalAgent 1、Bytespider 1 | 同上,按 UA 归因 |
| GPTBot / ClaudeBot | 无 | 6 周内未出现 | 案例方承认是缺口,未解释原因 |
| 收入归因 | 无 | 无 | 无法追踪 AI 会话到下单,案例方明确写"不能" |
案例标题写的是 6 周 328 次访问,但正文能逐日核对的是 3 月 28 日到 4 月 9 日的 17 次 llms 文件请求(其余为全站其他页面访问)。引用时建议用 17 次这个能对账的数字。
定性观察三条:
文件被读这件事本身可证。首抓 28 天后仍能被复现(4 月 6-7 日 PerplexityBot 连续两天各来一次)。
ChatGPT-User 的出现比"抓取"更有意义:它不是训练爬虫,而是真实用户在 ChatGPT 里提问时触发的实时取页,说明内容进了检索池。
从"被读"到"被推荐"没有证据。案例方自己写了:bot tracking 证明的是技术可达性,不是推荐结果。
外部负面对照也必须给:2026 年 1 月 Search Engine Land 的 90 天前后对照(10 个站点)显示 7 个站无可见变化、1 个站 AI 流量下降 19.7%,两个增长站的增长可归因于公关投放与新内容;OtterlyAI 在自家 90 天日志测试后把 llms.txt 检查项从 GEO 审计里直接删掉了。这两个结论都来自第三方报道与厂商自述,本站未复现,但足以说明:llms.txt 的价值集中在"文档型、参数型、代理要拿准确事实"的站点,不是通用流量杠杆。
复盘:3 条可抄配置 + 2 条踩坑
可以直接抄的 3 条:
根目录双文件,且在 robots.txt 顶部用注释公开 llms.txt / llms-full.txt / llms-data.json 三条路径。文件写得好不好是第二步,先让它能被找到。
AI 爬虫永远单独开 UA 组,组内
Allow: /,再把加购、筛选、站内搜索、日志目录逐一 Disallow。不要指望*组。记账规则放 .htaccess 最顶部,CMS 更新或换栈之后必须复查一次。案例站就是活例子:案例方自述底层是 Gambio GX5,但今天的 robots.txt 里全是 wp-content、wc-ajax、WooCommerce 的痕迹,说明中途换过栈,这类文件最容易在迁移中静默失效。
两条踩坑:
只做 v1 形态,代理拿到的还是 HTML。2026-11-05 抽查该站首页 HTML:
rel="alternate" type="text/markdown"出现 0 次,rel="describedby"也是 0 次,全站没有给任何页面提供.md版本。也就是说 llms.txt 里链接指向的仍是 HTML 页面,代理还是要自己剥模板。llmstxt.org 现行 v2 提案要求的正是"同 URL 的 markdown 版本 + 两枚 link relation",这两项它都没做。用第三方 302 做统计,等于把 llms.txt 的可用性外包。想长期跑,建议自建端点或在网关层按 UA 打点,把"文件仍能 200 返回原文"作为硬指标监控。
标注
llms.txt 版本:站点文件为 v1 形态(markdown 目录 + 链接清单,无 .md 页面、无 link relation)。llmstxt.org 当前提案为 v2(2026-11-05 查询),核心是每个信息页提供
.md版本,并用rel="alternate" type="text/markdown"与rel="describedby"双向声明。规范状态:社区提案(Jeremy Howard 发起),截至查询日未被任何 LLM 厂商确认为必需抓取信号或排序信号。OpenAI、Anthropic、Google 为自己的开发者文档发布了 llms.txt 文件,这只能说明厂商自用,不等于对第三方站点生效。
来源:案例 https://llmstxtgenerator.de/en/knowledge/ai-bot-tracking-in-practice (2026-04,含 6 周日志);.htaccess 片段 https://llmstxtgenerator.de/en/knowledge/ai-bot-tracking/ (2026-03);规范 https://llmstxt.org/ ;文件实测与首页 link relation 抽查于 2026-11-05。
复盘时间:2026-11-05。
标签
llms.txt、AI可见度、AIWO、结构化暴露、跨境电商、GEO