プラットフォーム別ガイド · 読了 11 分

ドキュメントサイトの llms.txt

Docusaurus、Mintlify、GitBook、VitePress。それぞれが生成するものと、生成ツールが決めてくれない 5 つのこと。

ドキュメントは AI アシスタントが最も読むコンテンツで、llms.txt のツールが最も進んでいる領域でもあります。この記事で扱う 4 つのうち 2 つはファイルを自動で配信し、残り 2 つはビルド時のプラグインで作ります。そして 4 つとも、生成結果は全ページの列挙で、仕様が想定した形では ありません。

各プラットフォームが何を生成するか、有名サイトの実際の出力が どう見えるか、プラグインが必要な 2 つの最小設定、そして 自分で決めることになる 5 点、つまり説明文、除外するもの、 バージョン、言語、llms-full.txt のサイズをまとめます。

30 秒で分かる結論:ドキュメントサイトの llms.txt はほぼ生成で済むので、仕事は「選ぶこと」

2026 年 9 月時点で、Mintlify と GitBook は設定なしで /llms.txt、/llms-full.txt、全ページの Markdown 版を配信します。Docusaurus と VitePress には組み込みの対応がなく、コミュニティ製プラグインが本番ビルドの 際に同じ 3 つを生成します。

見た限り、どの生成ツールも公開済みの全ページをリンクします。Vite のドキュメントの索引は 43 本、Mintlify 自身のドキュメントは 117 本、GitBook のドキュメントは 711 本です。llms.txt の仕様が説明しているのはリンクごとに一文を添えた短い索引なので、 導入後に残る仕事は編集です。説明文を書き、あるべきでないものを 除外し、バージョンと言語の分け方を決め、llms-full.txt をアシスタントが実際に読み込めるサイズに保ちます。

各プラットフォームが用意してくれるもの

プラットフォーム方式llms.txtllms-full.txtページ単位の Markdownカスタマイズ
Mintlify組み込み。ホスティング側で生成あり。/.well-known/llms.txt にもありあり(.md URL)プロジェクト直下に自前の llms.txt / llms-full.txt を置くと上書き。消すと生成版に戻る
GitBook組み込み。ホスティング側で生成あり。公開済み全ページを列挙ありあり(URL 末尾に .md)手で編集する方法はドキュメントにない。内容はページのタイトルと description から
Docusaurusコミュニティ製 docusaurus-plugin-llms。ビルド時ありあり任意(generateMarkdownFiles)プラグインのオプション:title、description、除外パターン、独自セクション、バージョン別出力
VitePressコミュニティ製 vitepress-plugin-llms。ビルド時ありありありプラグインのオプション:ignoreFiles、title、description、llms.txt の独自テンプレート

見落としやすい点が 1 つあります。Mintlify、GitBook、VitePress では llms.txt 内のリンクが HTML ページではなく .md のコピーを指しています。索引をたどったアシスタントは、 ナビゲーションやスクリプトのないきれいな Markdown を受け取ります。 ドキュメントサイトがマーケティングサイトよりこのファイルの恩恵を 受けやすい理由の大部分はここにあります。

生成されたファイルは実際どう見えるか

2026 年 9 月 29 日に公開ファイルを直接取得して測った値です。

  • Vite(VitePress プラグイン):llms.txt は 3.5 KB、43 リンク。短いプロジェクト説明のあとに Introduction、Guide といった見出しで分かれています。llms-full.txt は約 430 KB。
  • Vue.js(VitePress プラグイン):7.4 KB、94 リンク。サイドバーと同じ構成です。
  • Mintlify 自身のドキュメント:23 KB、117 リンク。Mintlify は生成する索引を 100,000 文字までに抑え、 それを超えるとルートのファイルは目次にして、グループごとの ファイルを /_llms/ 配下に置きます。llms-full.txt は約 1.7 MB。
  • GitBook のドキュメント:124 KB、711 リンク。公開ページ 1 枚につき 1 本で、注釈にはそのページの description が入ります。llms-full.txt は約 460 KB。

傾向ははっきりしています。生成された索引は網羅的で常に最新で、 手書きではなかなかそうなりません。一方で「何が重要か」という意見を 持たず、仕様が索引に求めているのはまさにその意見です。 この先は、自動化を手放さずにその意見を足す話です。

プラットフォーム別の設定

Mintlify

導入するものはありません。H1 はサイト名、引用ブロックは docs.json の description から取られるので、丁寧に書くべきはこのフィールドです。Mintlify は説明のあとにエージェント向けの指示ブロックを挿入し、ツールが ファイルを見つけるための Link と X-Llms-Txt レスポンスヘッダも返します。自分で 書きたければプロジェクト直下に llms.txt を置きます。消せば生成版に戻ります。

GitBook

導入するものはありません。公開ページの URL の末尾に .md を付ければその Markdown が、サイトのルートに /llms.txt や /llms-full.txt を付ければ索引と全文が返ります。公開サイトごとに Model Context Protocol サーバーも用意されています。索引はページのタイトルと description から作られ、GitBook のドキュメントには編集する方法が書かれていないので、 動かせるのは各ページの description です。一行の description がリンクの横の注釈になります。

Docusaurus

コミュニティ製プラグインを入れてプラグイン一覧に追加します。 ファイルが書き出されるのは本番ビルドのときだけで、開発サーバーでは 生成されません。

npm install docusaurus-plugin-llms --save-dev

// docusaurus.config.js
module.exports = {
  plugins: [
    [
      'docusaurus-plugin-llms',
      {
        title: 'Acme CLI',
        description: 'デプロイツール Acme のコマンドリファレンスとガイド。',
        ignoreFiles: ['changelog/**', 'blog/**', 'versioned_docs/version-1.*/**'],
        generateLLMsFullTxt: true,
      },
    ],
  ],
};

VitePress

プラグインは VitePress 自身ではなく Vite のプラグイン一覧に 差し込み、ビルド出力に llms.txt、llms-full.txt、ページ単位の Markdown を書き出します。README には利用プロジェクトとして Vite、Vue.js、Vitest などが挙げられています。

npm install vitepress-plugin-llms --save-dev

// .vitepress/config.ts
import { defineConfig } from 'vitepress'
import llmstxt from 'vitepress-plugin-llms'

export default defineConfig({
  vite: {
    plugins: [
      llmstxt({
        title: 'Acme CLI',
        description: 'デプロイツール Acme のコマンドリファレンスとガイド。',
        ignoreFiles: ['changelog.md', 'blog/*'],
      }),
    ],
  },
})

生成ツールが決めてくれない 5 つのこと

  1. 説明文。アシスタントが確実に読む唯一の行で、 どのツールも設定のフィールドから取ります。何の製品で、誰向けで、 ドキュメントが何を扱うかを一文で。「Acme のドキュメント」では 何も伝わりませんが、「コンテナをベアメタルサーバーに配備する ツール Acme の CLI リファレンスとデプロイガイド」なら伝わります。
  2. 外すもの。変更履歴、リリースノート、ブログ、 旧バージョンは、引用してほしいページと張り合う数百本のリンクを 足します。どのプラグインにも除外オプションがあるので使います。 ホスティング型なら、除外したいものは非公開にするかアーカイブ します。
  3. バージョン。ルートの索引からは現行バージョンを リンクします。旧バージョンに到達できる必要があるなら ## Optional の下に置き、読む余裕の少ない側が その手前で止まれるようにします。
  4. 言語。ロケールのルートごとに索引を 1 つずつ置くほうが、混在ファイルより使いやすいです。VitePress プラグインは i18n ルートを扱い、Mintlify はロケールのグループを 別ファイルに分け、Docusaurus ではロケールごとのビルドで 生成します。日本語と英語の両方を公開しているなら、日本語の 索引は日本語の説明文で始めます。
  5. llms-full.txt のサイズ。ドキュメントサイトが 最も得をするのがこの束で、最も膨らみすぎるのもここです。Vite や GitBook のドキュメントのように 400〜500 KB 程度なら余裕があります。数 MB を超えるなら、自動生成の API リファレンスは束から外し、 索引にだけ残します。

確認の仕方

デプロイしたら、クローラーと同じ方法でファイルを取得して、 先頭の数行とリンク数を見ます。

curl -sL https://docs.example.com/llms.txt | head -12
curl -sL https://docs.example.com/llms.txt | grep -c '^- \['
curl -sL https://docs.example.com/guide/getting-started.md | head -5
curl -sI https://docs.example.com/llms-full.txt | grep -i -E 'content-(type|length)'

1 つ目で H1 と、仮置きではなく説明として読める引用ブロックが 出ること。2 つ目で索引が選ばれたものか丸ごとの列挙かが分かること。 3 つ目でページ単位の Markdown が本当に配信されていること。 そのあとバリデータに通して、H1 の欠落、ドメイン変更後に ベース URL が古いままのリンク、生成ツールが H2 ではなく H1 にしてしまった見出しを拾います。

ドキュメントサイトの llms.txt を検証する

ドキュメントの URL を貼ると、/llms.txt を取得して仕様に沿った構造かを確認し、見つかったリンクをすべて一覧にします。生成された索引が実際どれだけ大きいかがそのまま分かります。

バリデータを開く →

よくある質問

ドキュメントを Mintlify か GitBook に置いています。何かする必要はありますか?

ファイル自体はすでにあります。どちらもドキュメントサイトのルートで /llms.txt と /llms-full.txt を配信し、全ページの Markdown 版も出しています。やる価値があるのは、生成された索引を一度読むことです。引用ブロックのサイト説明が自分で書くならこうなる、という文になっているか、古いと考えているページが引用してほしいページと同じ重みで並んでいないかを確認します。

Docusaurus に公式の llms.txt プラグインはありますか?

2026 年 9 月時点ではありません。要望は Docusaurus リポジトリの Issue として開いたままで、docusaurus.io 自身の /llms.txt も 404 です。コミュニティ製の docusaurus-plugin-llms がビルド時に llms.txt、llms-full.txt、任意でページ単位の Markdown を生成し、通常はこれを使います。

ドキュメントサイトは llms-full.txt を出すべきですか?

多くの場合は出す価値があります。ドキュメントは、Markdown の全文こそがアシスタントの欲しいものである数少ないケースで、設定に関する質問にページを 1 枚ずつ取りに行かずに答えられます。ただしサイズは見ておきます。今回測った範囲では Vite のドキュメントが約 430 KB、Mintlify 自身のドキュメントが 1.7 MB でした。これより大きく膨らむなら、自動生成の API リファレンスや変更履歴を束から外します。

生成された llms.txt が全ページを列挙しています。問題ですか?

どの生成ツールにも共通する一番の弱点です。仕様は llms.txt を「リンクごとに一文を添えた、選び抜かれた索引」と説明しており、700 本のリンクが並んだファイルは、どのページが重要かの手がかりをアシスタントに与えません。プラグインの除外オプションで変更履歴、リリースノート、旧バージョンを落とし、製品を人に教える順にセクションを並べ、引用ブロックに説明を書きます。プラットフォーム側に手を入れる余地がない場合でも、各ページの description は整えておきます。それがリンクの注釈になるからです。

バージョンと言語は 1 つの llms.txt にどう収めますか?

ルートの索引からは現行バージョンだけをリンクします。旧バージョンを残す必要があるなら Optional セクションの下に置くか、載せません。言語は、ロケールのルートごとに 1 つずつ索引を置くほうが、混在した 1 ファイルよりアシスタントには使いやすいです。Mintlify はロケールのグループを /_llms/ 配下の別ファイルに分け、VitePress プラグインは i18n ルートに対応し、Docusaurus のプラグインはバージョンごとの出力ができます。

ページ単位の .md URL のほうが llms.txt より重要ですか?

エージェントにとってはそうであることが多いです。Mintlify、GitBook、VitePress プラグインはどれも各ページの Markdown 版を公開し、llms.txt のリンクは HTML ではなくその .md URL を指しています。索引を読んだアシスタントは、必要なページをナビゲーションやスクリプト、フッターを除いたきれいな Markdown で受け取れます。

次に読む