我審查了 70 家公司的 llms.txt 檔案,大多數沒有

每個人都在寫 llms.txt 教學,但沒人去檢查這些公司到底做了沒。我對 70 個理應有 llms.txt 的網站做了實測——AI 實驗室、文件平台、開發基礎設施巨頭、大型 SaaS——只有 31 家有真檔案。31 家裡又有 12 家不符合社群自己定義的格式。下面是數據。

/llms.txt 這份提案是 2024 年底提出的。兩年過去,每個 SEO 部落格都寫過它的教學;每篇討論「GEO」(生成引擎優化)的文章都把它當成檢核清單上的項目;WP Engine 在過去一個月發了五篇關於它的文章;Mintlify 為它做了產品功能。

只有一件事沒人做:檢查那些理應有 llms.txt 的網站到底有沒有,以及它們做出來的東西到底像不像樣。

所以我跑了個指令稿,掃了 70 個站——AI 實驗室、文件平台、開發基礎設施大廠、當下熱門 SaaS、WordPress 媒體——抓下它們的 /llms.txt。下面是我看到的。

結論先放這:70 家裡 31 家(44%)有真 llms.txt。剩下 56% 要嘛 404,要嘛回傳了 HTML(SPA 路由把這個路徑吃掉了),要嘛乾脆給爬蟲 403。這 31 個真檔案裡,有 12 個(41%)不符合 llmstxt.org 自己定義的格式。檔案大小從 648 byte 到 280 KB,相差 432 倍。你以為會領跑的公司——OpenAI、Hugging Face、Google AI、Mintlify、GitBook、ReadMe——一個都沒有。

測試方法

我從八個類別裡挑了 70 個站:

對每個站,我用一般瀏覽器 User-Agent,不加特殊 header,直接 GET https://<網域>/llms.txt。解析回應內容判斷是真 markdown(開頭是 # 標題)還是 HTML(SPA fallback 吃掉了路由)。

對每個真樣本,量化了七個維度:

  1. 檔案 byte 數
  2. 行數
  3. H2 章節數
  4. markdown 連結總數
  5. 深層內部連結 / 行銷首頁 / 外部連結 各佔比
  6. 是否符合 spec 的 # 標題 + > 引言區塊 格式
  7. 前 200 字元(用來找漏網的 HTML fallback)

就這些。沒登入、沒 API key、沒特殊爬蟲——任何 LLM 爬蟲都會發出的同樣 HTTP GET。

發現 1:超過一半「應該有」的站根本沒有

結果 數量 比例
llms.txt 31 44%
404 22 31%
HTML fallback(200 但 SPA 回傳) 9 13%
403 / 530 / 逾時 8 11%

44% 這個數字已經夠難看。但更難看的是,「理應有」那一群裡最響亮的都缺席:

可以反駁一句:「llms.txt 只對那種 LLM 會在答案裡引用的站有用;OpenAI 沒必要為 ChatGPT 引用 OpenAI 做最佳化。」 行。但這解釋不了 Mintlify——他們當下整個賣點就是「用我們的平台一鍵加 llms.txt」。如果他們自己都不吃自家狗糧,你應該問為什麼。

HTML fallback 那一組(9 個站回傳 200 但是 HTML 內容)也值得單獨看。Cohere docs、Cursor docs、Codeium、Windsurf、Claude.ai、Kinsta、Notion、Segment、Deno 全在這組。這些站跑的是 Next.js / Vue / 同類 SPA 框架,框架預設的 catch-all 路由把 /llms.txt 當成應用程式路由,回傳了 React 外殼。沒人發現。沒人監控。LLM 爬蟲抓到的「llms.txt」是一坨 50 KB 的 <div> 加上一堆 JavaScript bundle URL,裡面甚至沒有「llms.txt」這個字。

這是最尷尬的一類。404 是明確的「我沒有」。HTML fallback 是無意識的「我以為我有但其實沒有」。你跑了個工具,從 CMS 裡複製了一段,以為搞定了,結果沒。

發現 2:存在的檔案裡 41% 不符合格式

llmstxt.org 自己定義的 llms.txt spec 簡單到不行。結構上只有兩個必選元素:

  1. 檔案開頭一個 # 標題 H1。
  2. H1 後面緊跟一個 > 引言區塊,用一句話說這個站是做什麼的。

完了。剩下的章節、連結、## H2 分組——都是自由發揮。

去重後的 29 個獨立樣本裡(cloudflare.com / www.cloudflare.comcursor.com / www.cursor.com 是同一份):

不合格名單不是你以為的那種新手:

章節數 連結數 問題在哪
docs.anthropic.com 3 1,415 沒有引言區塊簡介
docs.stripe.com 26 528 沒有引言區塊簡介
render.com 6 295 沒有引言區塊簡介
bun.sh 2 317 沒有引言區塊簡介
netlify.com 10 83 沒有引言區塊簡介
developers.cloudflare.com 9 103 沒有引言區塊簡介
docs.mistral.ai 1 75 單一章節,沒有簡介
elevenlabs.io 7 49 沒有引言區塊簡介
cursor.com 20 0 沒有引言區塊,零 markdown 連結——只是裸 URL 清單
replicate.com 7 1 沒有引言區塊簡介,連結幾乎為零
amplitude.com 7 0 沒有引言區塊,零連結
supabase.com 2 19 沒有引言區塊簡介

Anthropic——LLM 生態裡字面意義上的標竿客戶——發了 150 KB 的連結,開頭沒有任何一句引言區塊。Stripe 發了 90 KB 結構化文件索引,開頭沒有任何一句話告訴讀者「這是 Stripe」。這些都不是新手網站,他們有專門的技術寫作者。

這看起來像什麼呢:平台團隊某個工程師按 docs sitemap 自動產生了 llms.txt,發了,沒看 spec。爬蟲抓到這個檔案,看到一片連結,不知道這個站到底是什麼。

Cursor 的最怪。20 個章節,巢狀得很整齊,零 markdown 連結——每一行都是裸 URL:

## Get Started
- https://cursor.com/docs.md
- https://cursor.com/docs/get-started/quickstart.md
- https://cursor.com/docs/models-and-pricing.md
  - https://cursor.com/docs/models/claude-4-6-sonnet.md

而且裡面至少有一處串接 bug:https://cursor.comhttps://cursor.com/changelog.md 直接寫在那兒。如果某個 LLM 爬蟲對 markdown 連結解析比較嚴格,Cursor 的檔案可能有一半對它而言是隱形的。

發現 3:檔案大小相差 432 倍,關於這個檔案是什麼沒人達成共識

最小的真 llms.txt:648 byte。這是 llmstxt.org 自己——這份 spec 的發源地——指向三個文件。

最大的:279,743 byte。PostHog,看起來像是把整個文件站台 sitemap 都倒進去了,外加每個條目的散文式註解,54 個 H2 章節,2,555 個 markdown 連結,每個指向某個文件頁面的 .md 版本。

中間隔著八個數量級的實作差異:

區間 數量 例子
極小(<1 KB) 1 llmstxt.org(648 byte)
小(1-5 KB) 8 railway.app(1.4 KB)、supabase.com(1.3 KB)、amplitude.com(2.8 KB)、replicate.com(3.4 KB)、mistral.ai(4.9 KB)、cohere.com(4.8 KB)、hackernoon.com(4.9 KB)、answerai.com(1.8 KB)
中(5-20 KB) 9 linear.app、cursor.com、framer.com、yoast.com、wordpress.com、cloudflare.com、elevenlabs.io、docs.mistral.ai、developers.cloudflare.com
大(20-100 KB) 9 docs.perplexity.ai(22 KB)、github.com(28 KB)、bun.sh(33 KB)、render.com(36 KB)、netlify.com(20 KB)、stripe.com(64 KB)、cloudways.com(64 KB)、docs.stripe.com(93 KB)、redocly.com(98 KB)
巨型(100 KB+) 2 docs.anthropic.com(152 KB)、posthog.com(280 KB)

中位數:9.4 KB。平均:34.7 KB。平均值被兩個巨型異常值拉高了——多數站的檔案其實很小。

這個分布直接對應「llms.txt 到底是什麼」的兩種不同理念。spec 文本對此態度模糊,於是大家各自做了選擇:

理念 A(spec 給的範例):llms.txt 是一個微型指標檔案。幾百 byte。一個標題、一句話簡介、幾個最重要頁面的連結。LLM 自己去爬那些連結。llmstxt.org(648 B)、supabase.com(1.3 KB)、railway.app(1.4 KB)、answerai.com(1.8 KB)屬於這一派。

理念 B(索引傾倒):llms.txt 是給 LLM 用的全量 sitemap。每一個記錄的頁面都列上。PostHog(280 KB)和 Anthropic 文件(152 KB)大致按這種方式把整個 docs map 倒進去。Stripe(90 KB)是稍微精簡版的同樣思路。

哪一種是對的,沒有共識。Mintlify 的產品(能用的時候)輸出的是理念 B。手寫的多半趨向理念 A。280 KB 的檔案對模型 context 來說想必負擔不小;648 byte 對模型來說想必資訊又太少。

誠實的回答是:現在沒人知道哪種更管用,因為沒人公開發過資料,證明任何一種做法帶來了更多 LLM 引用或流量。

發現 4:連結品質其實可以——但連結數量被幾個大檔案拉偏了

好消息:當各家網站真的在 llms.txt 裡放連結時,那些連結基本都是有用的。

29 個樣本累計 7,557 個 markdown 連結:

2.9% 這個數字讓人鬆了口氣。本來對 llms.txt 最大的擔心是各家公司會把它當 SEO 漏斗——把 AI 引到首頁和定價頁。結果他們基本沒這麼做,連結確實指向有用的文件。

壞消息是這個總數被幾個大檔案嚴重拉偏。PostHog 一家就貢獻了 7,557 個裡的 2,555 個,三分之一。Anthropic、Redocly、Stripe、Cloudways 再貢獻 3,000+。多數站的連結數其實在 0 到 100 之間。

四個站零 markdown 連結:amplitude.com、cohere.com、cursor.com、hackernoon.com。Cursor 和 Hackernoon 用裸 URL 字串(某些爬蟲能用,技術上不是 markdown)。Amplitude 和 Cohere 乾脆用散文描述自家產品,作為上下文勉強算有用,但不是 spec 設計的用法。

發現 5:WordPress 生態幾乎全軍覆沒

測試的 7 個 WordPress 生態候選裡:

這個結果特別刺眼,因為 WP Engine 最近一直在猛推「GEO」——生成引擎最佳化。一個月裡發了五篇專文,包括《Technical GEO: Ensuring Sites are Machine Readable》。寫這些文章的人服務的公司,自家行銷站沒有 llms.txt。

Kinsta 的 HTML fallback 更有意思。他們出內容教 agency 怎麼把網站做得對 AI 友善。他們大概覺得自家已經有了 llms.txt——可能裝了某個外掛。外掛沒起作用——Next.js 路由把 /llms.txt 吃成了 React shell。他們團隊沒人檢查過。

WordPress 生態裡,「寫關於 llms.txt 的文章」和「擁有 llms.txt」之間的距離接近無窮大。

發現 6:HTML fallback 這個問題比表面看上去更大

那 9 個回傳 200 OK 但回應是 HTML 的站,值得單獨說,因為從任何監控工具的角度看,它們都是「成功」。

如果你 curl -I kinsta.com/llms.txt,拿到的是 200。你 CDN log 上看到所有存取 /llms.txt 的請求都拿到了資料。什麼都沒壞。

但回應內容是 React 應用。把回應當 markdown 解析的 LLM 拿到的是 50 KB 的 <div class="..."> 加上一堆 JavaScript bundle URL。LLM 沒辦法知道這不是你的本意。

涉及的站:

它們多數跑現代 JS 框架,框架預設的 catch-all 路由處理了未知路徑。修復就一行設定:要嘛讓 /llms.txt 明確 404,要嘛真回傳檔案。沒人去改。

如果你的站跑 Next.js / Nuxt / Astro / 類似框架,這是第一件該查的事。用 curl 存取自家 /llms.txt,讀 body。如果看到 <!DOCTYPE html>,無論你本來有沒有打算做 llms.txt,都有問題。

發現 7:沒人有證據這玩意兒真的有用

這篇審查寫到最後最難的部分,是承認:現在沒有證據 llms.txt 做了什麼有用的事。

我特意找過:

三個問題,2026 年中的答案都是「基本沒有」。有軼事。有教學。有讀起來像供應商行銷的案例。但沒有嚴肅的公開證據證明 llms.txt 真的影響了什麼。

也可能——其實很可能——大 LLM 服務商把它當作 hint 在讀,類似某些搜尋引擎讀 sitemap.xml 的方式。也可能他們沒在讀,整個圍繞這個檔案的討論是 SEO 行業為了填補「AI 答案引擎到底怎麼排名」這個謎團的沉默。

最有意思的事實是:連那些商業模式最直接受益於 llms.txt 真的有用的公司——模型提供商自己——多數都沒給自家文件站寫一份。這要嘛是因為他們知道一些 SEO 行業不知道的事,要嘛是因為他們和所有人一樣困惑。

我覺得這意味著什麼

幾個謹慎的結論。不是建議——網路上的 llms.txt 建議已經太多了。只是盯了 31 個真檔案一天得出的觀察。

1. llms.txt 是靠預設勝出,不是靠採用率勝出。 這是這個領域唯一一個有公開擁護的提案。但「我聽說過」和「我加到我站上了」不是一回事。多數站都沒加。加了的,多數沒加好。

2. 真正的開放問題是理念 A 還是理念 B,不是「該不該加 llms.txt」。 648 byte 的指標檔案和 280 KB 的 sitemap 倒賣,不可能同時是同一份 spec 的正確解讀。在有人公開發出「哪種檢索效果更好」的真資料之前,所有「最佳實踐」文章都是在猜。

3. HTML fallback 是當下槓桿最高的修復點。 如果你用現代 JS 框架,且從來沒檢查過自家 /llms.txt 回應內容——你大概率有一個沉默的漏掉。一行 curl 能看出來。一行路由設定能修好。

4. 遵守 spec 幾乎免費,但幾乎沒人做。 41% 的存在的檔案跳過了開頭的引言區塊。爬蟲讀這些檔案得從 URL 清單裡猜這個站是做什麼的。在 > 引言區塊裡加一句話十秒鐘搞定,可能比下面那一堆精緻的結構更重要。可能。

5. 「寫關於 llms.txt 的文章」和「擁有 llms.txt」之間的差距非常大,在 WordPress 和主機商生態尤其明顯。 這要嘛是機會(其他人都在睡覺),要嘛是訊號(最貼近 SEO 的人已經算過了,決定跳過)。你自己挑。

關於樣本資料

如果想看原始資料:我把 31 個真 llms.txt 檔案、probe 指令稿、分析輸出都做了公開鏡像。方法簡單到你可以在 5 分鐘內對自己的懷疑名單跑同樣的審查。

至少值得對自家站跑一次。HTML fallback bug 是沉默的,spec 是短的,萬一 llms.txt 真有用——一個格式正確的文字檔就夠了。

如果有人跑出來的結論和我這個差得很遠,我真心想看看。特別是有人能拿出引用份額資料證明這事真在起作用。在這件事上,目前觀點的市場喧囂,證據的市場沉默。


資料說明:70 個候選站點於 2026-05-16 用普通 HTTP GET + 桌面瀏覽器 User-Agent 探測。31 個回傳真 llms.txt。去掉鏡像網域(cloudflare.com / www.cloudflare.com、cursor.com / www.cursor.com)後 29 個獨立樣本。Probe 指令稿、原始回應、單站分析均做了鏡像。

方法限制:只探測了根路徑 /llms.txt。某些站可能在子網域或帶版本的路徑下也有 llms.txt。沒檢查 spec 裡可選的 /llms-full.txt(詳細版)。按 IP 或 User-Agent 阻擋自動請求的站(Reddit、部分 Indie Hackers)可能有看不到的真檔案。HTML fallback 這一類是偽陰性風險,估計低估了真實採用率 1-3 個站。