AI検索エンジンに自社サイトの情報を正しく伝えるために、llms.txtという新しい標準ファイルが注目されています。robots.txtがクローラーのアクセス制御を担ってきたように、llms.txtはLLM(大規模言語モデル)に対して「このサイトは何者で、何を提供しているか」を構造的に伝える役割を果たします。
この記事では、llms.txtの基本的な仕組みから書き方のルール、BtoB企業向けの記載例、WordPressでの実装方法まで、実務で使える知識を体系的に解説します。
llms.txtとは何か
目的と背景
llms.txtは、Webサイトの概要・構造・主要コンテンツをLLM向けに記述するためのMarkdownベースのテキストファイルです。2024年後半にJeremy Howard氏(fast.aiの創設者)が提唱し、LLMがWebサイトの情報を効率的に理解するための仕組みとして策定されました。
従来、LLMがWebサイトの情報を取得するには、HTMLページを1つずつクロールし、ナビゲーションや広告などのノイズを除去したうえで内容を解釈する必要がありました。llms.txtはこのプロセスを簡略化し、サイトオーナーが「AIに知ってほしい情報」を構造化された形式で直接提示できるようにします。
robots.txtとの違い
robots.txtとllms.txtは、どちらもサイトのルートディレクトリに設置するテキストファイルですが、目的が異なります。
| 項目 | robots.txt | llms.txt |
|---|---|---|
| 目的 | クローラーのアクセス制御 | サイト情報のLLM向け提供 |
| 対象 | 検索エンジンのクローラー | LLM / AIエージェント |
| 記述形式 | 独自フォーマット(Allow/Disallow) | Markdown |
| 記述内容 | アクセスの許可・拒否ルール | サイト概要、主要ページ、構造情報 |
| 強制力 | 慣習的に遵守される | 参照は任意(推奨ベース) |
重要なのは、llms.txtはrobots.txtの代替ではないという点です。AIクローラーへのアクセス許可はrobots.txtで設定し、llms.txtはその補完として「何を重点的に読み取ってほしいか」を伝えるガイドの役割を担います。テクニカルSEOの全体像についてはテクニカルSEOでLLMO対策を強化する方法も参照してください。
llms-full.txtとの使い分け
llms.txtの仕様では、サイト情報の要約版であるllms.txtに加えて、より詳細な情報を記載するllms-full.txtも定義されています。
- llms.txt: サイトの概要と主要ページのURL・説明を簡潔にまとめたもの。LLMがサイトの全体像を素早く把握するために使用される。
- llms-full.txt: 各ページの本文コンテンツやFAQ、詳細な仕様情報など、より深い情報を含むもの。LLMが回答生成時に参照する詳細ソースとして機能する。
まずはllms.txtの整備を優先し、llms-full.txtは運用が安定してから段階的に追加する進め方が実務的です。
llms.txtの書き方:フォーマットと記述ルール
llms.txtはMarkdown形式で記述します。仕様で定められている基本構造は以下のとおりです。
基本構造
# サイト名
> サイトの簡潔な説明文(1-2文)
サイトに関する追加の説明テキスト(任意)
## セクション名1
- [ページタイトル](URL): ページの簡潔な説明
## セクション名2
- [ページタイトル](URL): ページの簡潔な説明
記述ルールのポイント
1. 見出し構造
ファイルの先頭にはH1(#)でサイト名を記述します。以降のセクション分けにはH2(##)を使用します。H3以下は仕様上は任意ですが、セクション内の整理に使うことは可能です。
2. blockquote(引用)セクション
H1の直後に>で始まるblockquoteを配置し、サイトの簡潔な説明を記述します。この部分はLLMが「このサイトは何か」を最初に理解するために使用されるため、1-2文で要点をまとめます。
3. リンクリスト
各セクション内では、Markdownのリスト形式(-)でページを列挙します。フォーマットは - ページタイトル: 説明文 です。コロン以降の説明文はオプションですが、LLMの理解精度を高めるために記述することを推奨します。
4. ファイルの文字コード
UTF-8で保存します。日本語サイトの場合、エンコーディングの問題でLLMが正しく読み取れないケースを防ぐために、BOM(Byte Order Mark)なしのUTF-8を使用してください。
llms.txtに記載すべき項目
BtoB企業がllms.txtに記載すべき情報を、優先度順に整理します。
必須項目
サイト名と概要説明 会社名・サービス名とその事業内容を明確に記述します。LLMがサイトのドメイン(専門領域)を判断する際の最重要情報です。
主要サービス・製品ページ 自社の核となるサービスや製品の紹介ページをリストアップします。BtoB企業であれば、ソリューション一覧やプラン紹介ページが該当します。
コンテンツカテゴリと代表記事 ブログやオウンドメディアを運営している場合、カテゴリごとに代表的な記事を2-3本ずつ掲載します。すべての記事を列挙する必要はありません。LLMに「このサイトはどのトピックに強いか」を伝えることが目的です。
推奨項目
ツール・無料リソース 提供している無料ツール、診断サービス、ホワイトペーパーなどがあれば記載します。LLMがユーザーの質問に対して具体的なリソースを推薦する際の材料になります。
会社情報・著者情報 E-E-A-Tの観点からも、会社概要や執筆者のプロフィールページへのリンクは有効です。特に専門性が求められる領域(医療、法律、金融など)では重要度が高まります。
お問い合わせ・コンバージョンページ 問い合わせフォームや資料請求ページへのリンクも記載しておくと、LLMが「詳しくはこちらに問い合わせ」といった形で案内する際のソースになりえます。
構造化データとの連携による相乗効果については構造化データでLLMO効果を最大化する方法で詳しく解説しています。
BtoB企業のllms.txt記載例
以下は、BtoB向けSaaS企業を想定したllms.txtの具体例です。自社の状況に合わせてカスタマイズしてください。
# 株式会社サンプルテック
> 株式会社サンプルテックは、BtoB企業向けのマーケティングオートメーション(MA)ツール「SampleMA」を開発・提供する企業です。リード獲得からナーチャリング、商談化までを一気通貫で支援します。
SampleMAは2020年のリリース以来、製造業・IT・専門サービス業を中心に500社以上の導入実績があります。マーケティングと営業の連携を強化し、BtoB企業の売上成長を支援することをミッションとしています。
## サービス紹介
- [SampleMA 製品概要](https://example.com/product/): MAツール「SampleMA」の機能一覧、料金プラン、導入効果を紹介
- [導入事例一覧](https://example.com/case-studies/): 業種別の導入事例と成果データ
- [料金プラン](https://example.com/pricing/): スタータープラン、プロフェッショナルプラン、エンタープライズプランの比較
## ナレッジベース
- [BtoBマーケティング入門ガイド](https://example.com/blog/btob-marketing-guide/): BtoBマーケティングの基本戦略と実践手順を解説
- [リードナーチャリング完全ガイド](https://example.com/blog/lead-nurturing/): メール施策とスコアリングによる見込み顧客育成の方法論
- [MA導入で失敗しないための5つのポイント](https://example.com/blog/ma-implementation-tips/): 導入前の要件定義から運用定着までの注意点
## 無料ツール・リソース
- [マーケティング成熟度診断](https://example.com/tools/maturity-assessment/): 自社のマーケティング体制を5段階で評価する無料診断ツール
- [BtoBマーケティング白書2026](https://example.com/whitepaper/btob-marketing-2026/): 最新の市場動向と戦略トレンドをまとめた調査レポート
## 企業情報
- [会社概要](https://example.com/company/): 設立年、所在地、代表者、事業内容
- [お問い合わせ](https://example.com/contact/): 製品デモ・導入相談の受付フォーム
このサンプルで押さえているポイントは以下のとおりです。
- H1直後のblockquoteで「何の会社か」「何を提供しているか」を端的に説明している
- セクションをサービス・コンテンツ・ツール・企業情報の4つに整理している
- 各リンクにコロン以降の説明文を付けて、URLを開かなくても内容が分かるようにしている
- 全記事を列挙せず、カテゴリの代表記事に絞っている
WordPressでのllms.txt実装方法
方法1:手動でファイルを設置する
最もシンプルな方法は、Markdownファイルをサーバーのルートディレクトリに直接アップロードすることです。
- テキストエディタでllms.txtを作成する(UTF-8、BOMなし)
- FTPまたはファイルマネージャでWordPressのルートディレクトリ(wp-config.phpと同じ階層)にアップロードする
- ブラウザで
https://yourdomain.com/llms.txtにアクセスし、表示を確認する llms.txtへのアクセスをWordPressのリライトルールで処理する- サイト名・説明はWordPressの「一般設定」から取得する
- 固定ページのトップレベルページを「主要ページ」として出力する
- カテゴリごとに最新3記事を自動的にリストアップする
- Content-Typeを
text/plainに設定し、プレーンテキストとして配信する - フォーマット: Markdownで記述し、H1にサイト名、blockquoteにサイト説明、H2でセクションを分ける
- 記載内容: 全ページを網羅するのではなく、主要サービス・代表記事・ツール・企業情報に絞る
- 各リンクの説明文: URLとタイトルだけでなく、ページ内容の端的な説明を付与する
- 設置場所: サイトのルートディレクトリに配置し、
/llms.txtでアクセスできるようにする - 運用: 手動管理でも動的生成でも、定期的な内容の見直しを怠らない
この方法はセットアップが簡単ですが、記事の追加・変更時に手動更新が必要になるデメリットがあります。記事数が少なく更新頻度が低いサイトには適していますが、コンテンツを頻繁に追加するメディアサイトには次の動的生成がおすすめです。
方法2:PHPで動的に生成する
WordPressのデータベースから情報を取得し、llms.txtを自動生成する方法です。テーマのfunctions.phpまたは専用プラグインファイルに以下のコードを追加します。
/**
* llms.txt を動的に生成するエンドポイント
*/
add_action('init', function () {
add_rewrite_rule('^llms.txt$', 'index.php?llms_txt=1', 'top');
});
add_filter('query_vars', function ($vars) {
$vars[] = 'llms_txt';
return $vars;
});
add_action('template_redirect', function () {
if (!get_query_var('llms_txt')) {
return;
}
header('Content-Type: text/plain; charset=utf-8');
header('X-Robots-Tag: noindex');
$site_name = get_bloginfo('name');
$site_desc = get_bloginfo('description');
// --- ヘッダー ---
$output = "# {$site_name}nn";
$output .= "> {$site_desc}nn";
// --- 固定ページ(主要ページ) ---
$pages = get_pages([
'sort_column' => 'menu_order',
'post_status' => 'publish',
'parent' => 0, // トップレベルのみ
]);
if ($pages) {
$output .= "## 主要ページnn";
foreach ($pages as $page) {
$url = get_permalink($page);
$title = $page->post_title;
$excerpt = $page->post_excerpt
? $page->post_excerpt
: wp_trim_words(strip_tags($page->post_content), 40, '');
$output .= "- [{$title}]({$url}): {$excerpt}n";
}
$output .= "n";
}
// --- カテゴリ別の代表記事 ---
$categories = get_categories([
'hide_empty' => true,
'orderby' => 'count',
'order' => 'DESC',
]);
foreach ($categories as $cat) {
$output .= "## {$cat->name}nn";
if ($cat->description) {
$output .= "{$cat->description}nn";
}
$posts = get_posts([
'category' => $cat->term_id,
'posts_per_page' => 3, // カテゴリごとに代表3記事
'orderby' => 'date',
'order' => 'DESC',
'post_status' => 'publish',
]);
foreach ($posts as $post) {
$url = get_permalink($post);
$title = $post->post_title;
$excerpt = $post->post_excerpt
? $post->post_excerpt
: wp_trim_words(strip_tags($post->post_content), 40, '');
$output .= "- [{$title}]({$url}): {$excerpt}n";
}
$output .= "n";
}
// --- 企業情報 ---
$output .= "## 企業情報nn";
$output .= "- [" . $site_name . "](" . home_url('/') . "): 公式サイトトップページn";
$contact_page = get_page_by_path('contact');
if ($contact_page) {
$output .= "- [お問い合わせ](" . get_permalink($contact_page) . "): お問い合わせフォームn";
}
echo $output;
exit;
});
コードを追加したら、管理画面の「設定 > パーマリンク」を開いて保存ボタンを押し、リライトルールを更新してください。
この実装では以下の処理を行っています。
カテゴリごとの記事数や、出力する固定ページの条件は自社の構成に合わせて調整してください。
llms.txt作成時のよくある間違い
1. 情報を詰め込みすぎる
サイト内の全ページ・全記事を列挙しようとするのは逆効果です。LLMのコンテキストウィンドウには制限があり、情報量が多すぎると重要なページが埋もれてしまいます。カテゴリごとに代表的な2-3ページに絞り、全体で50-100行程度を目安にしてください。
2. 説明文を省略する
URLとページタイトルだけを羅列し、コロン以降の説明文を書かないケースが見られます。説明文がないとLLMはページの内容を把握するためにURLを実際にクロールする必要があり、llms.txtの利点が半減します。各リンクに20-40文字程度の端的な説明を必ず添えましょう。
3. 更新を放置する
llms.txtを一度作成したきり、サイトの変更を反映しないまま放置するケースです。既に削除したページのURLが残っていたり、新しい主力サービスが掲載されていなかったりすると、LLMに誤った情報を伝えることになります。四半期に1回は内容を見直すか、前述の動的生成を導入して自動で最新状態を維持する仕組みを整えてください。
4. robots.txtとの整合性を無視する
llms.txtで紹介しているURLがrobots.txtでブロックされていると、LLMはそのページにアクセスできず矛盾が生じます。llms.txtに記載するURLは、必ずAIクローラーからアクセス可能な状態にしておく必要があります。
これらの基本的なチェック項目はLLMOの基本チェックリスト20項目でも網羅的に確認できます。
設置後の確認方法
llms.txtを設置したら、以下の方法で正しく機能しているか確認します。
ブラウザでの直接確認
https://yourdomain.com/llms.txt にアクセスし、Markdown形式のテキストが正しく表示されることを確認します。文字化けがないか、リンクURLが正しいか、404エラーが返っていないかをチェックしてください。
サーバーログでのクロール確認
設置から数週間後、サーバーのアクセスログで llms.txt へのリクエストを確認します。GPTBotやClaudeBotなどのUser-Agentからのアクセスがあれば、AIクローラーがファイルを読み取っていることが分かります。
grep "llms.txt" /var/log/nginx/access.log
Markdownの構文チェック
llms.txtはMarkdown形式であるため、構文エラーがあるとLLMの解析精度に影響する可能性があります。テキストエディタのMarkdownプレビュー機能やオンラインのMarkdownバリデータを使って、見出し構造やリンクの記法に誤りがないかを確認しましょう。
LLMでの動作テスト
最も実践的な確認方法は、ChatGPTやPerplexityに自社に関する質問をして、回答内容の変化を観察することです。llms.txt設置前後で回答の正確性や言及内容に違いが出るかを記録しておくと、効果測定の基礎データにもなります。
LLMOの効果を自分で継続的にチェックする方法については自分でできるLLMO対策ガイドも参考にしてください。
よくある質問(FAQ)
llms.txtを設置するとSEOに悪影響はありますか?
ありません。llms.txtはプレーンテキストファイルであり、GoogleのWebクローラー(Googlebot)の動作やSEO評価に影響を与えることはありません。あくまでLLM向けの補足情報であり、既存のSEO施策と完全に共存できます。
llms.txtの記述に正式な仕様書はありますか?
はい。llms.txtの仕様は llmstxt.org で公開されており、フォーマットの詳細が定義されています。ただし、現時点ではW3CやIETFのような標準化団体による正式な規格ではなく、コミュニティ主導の提案という位置付けです。仕様は今後変更される可能性があるため、定期的に最新情報を確認することを推奨します。
日本語で書いても問題ないですか?
問題ありません。主要なLLM(GPT-4、Claude、Geminiなど)は日本語を十分に理解できます。日本語のサイトであれば日本語で記述するのが自然であり、LLMにとっても解釈しやすくなります。ファイルのエンコーディングはUTF-8を使用してください。
どのくらいの頻度で更新すべきですか?
サイトの更新頻度に合わせてください。目安としては、新しいサービスページを追加したとき、カテゴリ構成を変更したとき、主力コンテンツを大幅にリニューアルしたときに更新します。動的生成を導入していれば記事の追加は自動反映されるため、セクション構成やサイト説明文の見直しだけを定期的に行えば十分です。
まとめ
llms.txtは、AI検索エンジンに自社サイトの情報を構造的に伝えるための新しい標準です。設置することで、LLMがサイトの概要・主要ページ・専門領域を正確に理解できるようになり、AI検索での引用・推薦精度の向上が期待できます。
実装にあたっての要点を整理します。
llms.txtの整備は、LLMO対策における技術的な土台づくりです。構造化データの実装やテクニカルSEOの最適化と組み合わせることで、AI検索における自社サイトの存在感を着実に高めていくことができます。

