llms.txtの書き方決定版:AI検索に選ばれるための構造化ガイド
各章へクイックジャンプ:
インターネットの情報収集手法が一変しようとしています。ユーザーは検索結果の青いリンクをクリックするのではなく、ChatGPT Search、Perplexity、そしてGoogleのAI Overviews(SGE)といった「AIエージェント(回答エンジン)」から直接答えを得るようになりました。
この変化の中で、あなたのサイトの情報をAIに「正しく、できるだけ低コストで」読み取らせるための提案仕様が llms.txt です。
1. なぜ今「llms.txt」が必要なのか?
クローラー制御の「第三の進化」
Webのクローラー制御には、歴史的に3つの進化の段階があります。まず1994年に標準化されたのが robots.txt で、これは「どのURLにアクセスしてよいか・してはならないか」を機械に伝えるための禁止/許可ルールでした。次いで2000年代にSEOが本格化すると、sitemap.xml が「どのURLを優先的にインデックスすべきか」を案内する地図の役割を担うようになりました。 そして今、LLMエージェントの台頭により、「このサイトは何であり、どう解釈すれば正確な回答を生成できるか」を直接伝える第三の制御ファイルが必要になりました。それが llms.txt です。
HTMLはAIにとって「ノイズ」が多すぎる
従来のWebサイトは「人間の目」に向けた装飾(CSS)や動的挙動(JavaScript、React/Vueなどのフレームワーク)で構成されています。高度なクローラーであればこれらをレンダリングして読み取りますが、AIエージェントにとっては、無数の <div> タグやヘッダーナビゲーションのメニューリスト、フッターの免責事項などは、純粋な学習データ・引用データとしては余計なノイズ(コンテキストウィンドウの無駄遣い)に過ぎません。
LLMには「コンテキストウィンドウ」という一度に処理できる文字数の上限があるため、読み取りコストが高いサイトは情報が途中で切り捨てられ、不完全な引用や誤った回答を生む原因になります。ここで重要なのは、HTMLを完全に置き換えることではなく、AIが取り回しやすい補助的な入口を用意することです。
そこで、Fast.aiのJeremy Howard氏らが2024年に提唱したのが llms.txt です。これは特定のURL(通常は /llms.txt)で、サイトの情報構造や重要ページへの導線をMarkdownで提供する提案です。2026年4月13日時点では、主要AI事業者が「llms.txt を正式な必須仕様として採用している」とまでは言えません。 一方で、低コストで導入でき、ドキュメントの案内図として有用なため、実務上は「将来性の高い補助レイヤー」として扱うのが妥当です。
- 重要ページへの導線を明示できる: AIや人間に対して「まず何を読むべきか」を短いテキストで案内できます。
- 開発ツール向けの補助コンテキストになる: CursorやClaude Codeなどに、読みやすいドキュメント入口を渡しやすくなります。
- 独自の情報設計を伝えられる: HTMLの見た目ではなく、サイト運営者が意図する情報の論理ツリーを補助的に表現できます。
📌 2026年4月13日時点の現実的な位置づけllms.txt は「設置すれば主要AIに必ず優先引用される魔法のファイル」ではありません。現時点では、仕様提案 + 実務上のベストプラクティス として捉えるのが正確です。検索流入や引用獲得の土台としては、公開された一次情報、クロール許可、構造化データ、読みやすい本文のほうが依然として重要です。
2. llms.txt の基本構文とルール
llms.txt はサイトのルートディレクトリに配置します(例:https://example.com/llms.txt)。書き方はAIにとって最も親和性が高い Markdown形式 を採用しますが、仕様上「AIが解釈しやすい」ためのいくつかの厳格なルール(ベストプラクティス)が存在します。
仕様上の必須要素と、実務で有効な書き方
これは仕様上の核です。ファイルの1行目は # サイト名(プロジェクト名) で始め、ドキュメント全体の主題を示します。
blockquote は仕様上の必須ではありませんが、実務では非常に有効です。H1の直下に > このサイトは〇〇を提供する公式ドキュメントです。 のような短い要約を書くと、読み手が文書の用途をすぐ把握できます。
リンク集を羅列する前に、## 公式ドキュメント や ## APIリファレンス のようにH2タグで情報の塊を定義します。AIは情報をチャンク(塊)として認識するため、関連するリンクを適切にH2の下にグループ化することが重要です。
ただ - [ガイド](/guide) と書くのではなく、- [ガイド](/guide): 初心者向けのインストールと初期設定の手順
のように、リンクの後ろにコロンと説明文を追加すると、リンク先の価値が伝わりやすくなります。これは必須ではありませんが、実務ではかなりおすすめです。
## Optional セクションにまとめる ## Optional は、追加資料をまとめるための便利な慣例です。読む側や周辺ツールがこのセクションを軽量コンテキストから除外する実装もあります。容量の大きい補助資料やアーカイブ記事はここに置くと扱いやすくなります。
# AIOGeoScan 公式ナレッジベース > 次世代SEO(生成AI検索最適化)およびllms.txtの設置方法について解説する公式ドキュメントです。 ## Documentation 各機能の仕様やガイドラインへのリンクです。 - [基礎ガイド](/articles/llms-txt): llms.txtの基本構文とメリットの解説 - [自動診断ツール](https://aiogeoscan.com/): サイトがAIクローラーにどう見えているかの解析ツール ## Optional - [llms-full.txt](/llms-full.txt): このサイトの全ての情報を1つにまとめた全文ファイル
💡 重要なポイント:リンク先も「Markdown」を返すのが最適
llms.txt 内で指定するURLは通常のHTMLページでも構いませんが、/page.md や /page?format=md のように、リンク先自体もMarkdownやプレーンテキストを返せると扱いやすくなります。これは「公式必須要件」ではなく、AIに優しい公開設計として有効な実務ノウハウです。
3. Content-Type と正しい配信設定
llms.txt は「プレーンテキストファイル」として正しく配信される必要があります。ファイルを設置しても、サーバーが誤ったContent-Typeを返している場合、AIパーサーがHTMLドキュメントとして解釈し、コンテンツを無視してしまう場合があります。
# 設置後は必ずこのコマンドで確認する curl -I https://example.com/llms.txt # 正しい場合の出力例 HTTP/2 200 content-type: text/plain; charset=utf-8 ← これが必須 cache-control: public, max-age=3600
text/html(HTMLとして解釈される)application/octet-stream(バイナリとして扱われる)
これらが返ってくる場合、VercelやNetlifyのリライト設定が誤っている可能性があります。
text/plain; charset=utf-8
静的ファイルとして public/llms.txt に置いた場合、Next.jsやViteなどの主要フレームワークはこれを自動的に返します。動的生成(Route Handlers等)の場合は明示的に指定が必要です。
4. 大きな補助ファイルとの使い分け
llms.txt 自体は「重要ページへの案内図」です。一方で実務では、より大きな補助ファイルとして全文統合版を別途公開したくなることがあります。当サイトではそれを llms-full.txt と呼んでいますが、これは一般に広く固定化された仕様名というより、サイト運営上の独自運用 として理解してください。
サイト全体の「地図」です。各ページへのリンクと概要のみを記載し、AIクローラーが「どのページに何の情報を探しにいけばいいか」をナビゲートするインデックスの役割を果たします。
サイト内の情報を1つの大きなMarkdownファイルに結合した独自運用例です。開発者が外部ドキュメントをまとめて渡したいときに便利ですが、ファイルサイズ管理と更新同期が重要になります。
5. AIOGeoScanが検知する「致命的なエラー」トップ3
いざ llms.txt を実装しても、文法や構造に問題があるとAIエージェントに無視されてしまいます。当サイトの診断ツール「AIOGeoScan」で検出される頻出エラーには以下のようなものがあります。
NO.1: リンクの記述フォーマット違反
Markdownのリンクは [テキスト](URL) が基本ですが、実務では [テキスト](URL): 説明文 のように、コロンの後にそのリンク先の内容を補足する書き方が有効です。仕様違反というより「読み手に不親切」な状態なので、推奨事項として扱うのが適切です。
NO.2: プレーンテキスト(Markdown)外のタグ混入
CMSなどを経由して出力した結果、<br> や <p> などのHTMLタグが混入してしまうケースです。AI用パーサーが誤作動を起こす原因となります。
NO.3: robots.txt との競合
llms.txt の中で案内しているURL(例:/docs/api)が、robots.txt 側で Disallow: /docs/ と指定されていると、AIクローラーはアクセスできず迷子になります。
解決策:llms.txt 内で参照する全URLが robots.txt の Disallow 対象になっていないか定期的に照合してください。AI専用クローラー(GPTBot、ClaudeBot、PerplexityBot等)には、robots.txt 内で User-agent 別の Allow ルールを明示的に追加することも有効です。
全5章を通して、AI時代にWebサイトを正しく伝える技術を学びましょう。
あなたのサイトの llms.txt は、
AIに正しく読まれていますか?
AIOGeoScanの「AIクローラー制御診断」なら、llms.txt の存在チェックから、内部のMarkdownフォーマットの妥当性、robots.txtとの整合性までを一瞬でハイライトします。
今すぐ自社サイトを無料診断する