ByteScope

llms.txt Generator

把 sitemap 變成今天就能上線的 llms.txt。

sitemap 網址和各頁的 head 由我們的 Worker 代抓,不會存下來;上傳的 XML 檔不會離開你的瀏覽器。

1. Sitemap

或上傳 XML:

要放哪裡、Content-Type 怎麼設

把檔案上傳到網站根目錄,讓 /llms.txt 打得開,並用 Content-Type: text/plain; charset=utf-8 回應。沒帶 charset,中文標題可能變亂碼;如果是任何路徑都回 HTML 外殼的單頁應用程式,送出去的就會是那個外殼,而不是你的檔案。

Cloudflare Pages 或 Workers 靜態資源:輸出資料夾裡的 _headers

/llms.txt
  Content-Type: text/plain; charset=utf-8

Netlify:發布資料夾裡的 _headers

/llms.txt
  Content-Type: text/plain; charset=utf-8

nginx:放在 server 區塊裡

location = /llms.txt {
    types { text/plain txt; }
    charset utf-8;
}

Vercel:專案根目錄的 vercel.json

{
  "headers": [
    {
      "source": "/llms.txt",
      "headers": [
        {
          "key": "Content-Type",
          "value": "text/plain; charset=utf-8"
        }
      ]
    }
  ]
}

上線後拿首頁跑一次 AI 搜尋檢查,確認它被當成文字讀取。

關於這個工具

llms.txt 是放在網站根目錄的一份 Markdown,用來給 AI 工具一張精簡的網站地圖:H1 寫網站名稱,引用區塊放一句話摘要,底下是一個個 H2 段落,列出 - [標題](網址): 說明 的連結(llmstxt.org 的慣例)。這個工具直接從你的 sitemap 組出這份檔案,不用手打幾百行。

怎麼用

貼上 sitemap 網址,或上傳 XML 檔。如果是 sitemap index,會自動往下抓子 sitemap,最多 20 個。頁面依網址路徑的第一層分段落,只有一頁的群組會併進最上面那段,每個段落名稱都能自己改。網址如果是 /en/、/ja/ 這種語系開頭,記得選一個語系,免得同一個網站在檔案裡重複三次。排除規則沿用 robots.txt 的寫法:* 代表任意字元,結尾的 $ 代表到此為止。頁數上限一開始是 500,最多 2,000。

標題與描述

按下「抓標題」會透過我們的 Worker 讀每一頁的 <title> 和 <meta name="description">,一次請求 10 頁,同時最多 2 個請求。Worker 對每個 IP 位址每分鐘限 60 次請求,所以 500 頁大約一分鐘跑完,碰到限流也會自動等一下再繼續。中途隨時可以停,已經抓到的會留著;也可以整步跳過,直接拿網址路徑當標題。過程中沒有任何 AI 幫你寫文案,描述都是你頁面上本來就有的。

要放在哪裡

把檔案放在網站根目錄,讓 /llms.txt 以 Content-Type: text/plain; charset=utf-8 回應。大部分主機對 .txt 本來就會回 text/plain,但有些不帶 charset,中文標題就會變亂碼;單頁應用程式(SPA)則常常對不認得的路徑回傳 HTML 外殼,AI 工具就會把那個外殼當成你的 llms.txt。預覽下方附了 Cloudflare、Netlify、nginx、Vercel 的標頭設定範例。

常見問題

llms.txt 是什麼格式?

llmstxt.org 提出的一份 Markdown:一個 # 標題寫網站或專案名稱,可以加一段 > 摘要,接著是 ## 段落,每行一個 - [標題](網址): 備註 連結。名稱叫 Optional 的段落,代表 AI 工具在上下文不夠時可以略過的連結。

怎麼從 sitemap 做出 llms.txt?

貼上 sitemap 網址(通常是 /sitemap.xml,或 robots.txt 裡 Sitemap: 那行),多語系網站就選一個語系,加上排除規則後抓標題;想改段落名稱就改,最後下載檔案、上傳到網站根目錄就完成了。

llms.txt 要用什麼 Content-Type?

text/plain; charset=utf-8。內容雖然是 Markdown,但純文字每個用戶端都吃得下,加上 charset 中文標題才不會亂碼。上線後拿首頁跑一次 AI 搜尋檢查,llms.txt 那張卡片會抓出被當成 HTML 回傳的檔案。

描述是 AI 幫我寫的嗎?

不是。每個連結用的是該頁自己的 <title> 和 meta description,只把換行和多餘空白壓掉。沒有 description 的頁面就不會有備註;想要更好的摘要,下載後自己改就好。

為什麼有些標題只是網址路徑?

那一頁的 head 讀不到:可能回了錯誤、轉址後失敗、不是 HTML,或根本沒有 <title>。跳過抓取或中途停下來時,還沒抓到的頁面也會用路徑代替。這是看得懂的替代寫法,不是檔案格式出錯。

我的 sitemap 或網站內容會被存下來嗎?

不會。上傳的 XML 檔在你的瀏覽器裡解析;sitemap 網址和各頁的 head 由 Worker 代抓,交回你的瀏覽器後什麼都不留。每個 IP 位址每分鐘限 60 次請求。