AI向けのサイトとは?llms.txtで実験してみた
はじめに
「AIに読まれやすいサイト」という概念が注目されています。
2025年以降、ChatGPT Browse、Claude、PerplexityなどのAIエージェントがWebを直接参照・引用するケースが急増しています。検索エンジン向けのSEO対策に加えて、AI向けの設計を意識する時代になってきました。
本記事では「AI向けサイト」とは何か、どう作るかを整理します。そして実際にこのブログ(noplabo.com)に llms.txt を設置し、AIに読み込ませる実験も行います。
なぜ「AI向けサイト」が必要になったのか
AIエージェントによるWeb参照の現状
2025〜2026年にかけて、主要AIサービスはWeb参照機能を標準搭載するようになりました。
SE Rankingの調査1によると、AIプラットフォーム経由のWebトラフィックは2024年から2025年にかけて7倍以上に成長しました。AIトラフィックのシェアはChatGPTが約78%を占め、Perplexityが約15%、Geminiが約6%と続きます1。また、AIユーザーはオーガニック検索経由のユーザーよりも約68%長くサイトに滞在するという傾向も報告されています(AI平均 約9分19秒 vs 検索平均 約5分33秒)1。
| AIサービス | Web参照方式 | ファイル直接読み込み | llms.txt対応 |
|---|---|---|---|
| ChatGPT Browse | リアルタイムクロール | URL指定で直接読込 | 非公式対応 |
| Claude(Web版) | URLフェッチ | テキスト貼り付け/URL指定 | 対応 |
| Perplexity | インデックス+クロール | 自動クロール | 非公式対応 |
| Google AI Overview | Googleインデックス経由 | 自動 | 構造化データ重視 |
| Bing Copilot | Bingインデックス経由 | 自動 | robots.txt準拠 |
特にClaudeやChatGPT BrowseはURLを直接渡すことでページのテキストを取得し、回答の根拠として使います。ユーザーが「このサイトの記事を要約して」と依頼するシーンも日常的になっています。
従来のSEOとの違い
従来のSEO(検索エンジン最適化)との違いを整理すると、以下のように言えます。
- SEO: Googleなどの検索インデックスに正しくキーワードが入ることを重視
- AI向け最適化(LLMO): AIが内容を正確に理解・要約できることを重視
AIはHTMLのレンダリング結果ではなく、テキスト情報の意味を解釈します。そのため「見た目が良い」よりも「構造が明確で意味が取りやすい」設計が重要です。
この分野は LLMO(Large Language Model Optimization) とも呼ばれ始めており、SEOの次世代版として議論されています。
AI向けサイトの要件
llms.txt — AIへの自己紹介ファイル
llms.txt は、2024年にAI向けのサイト概要を提供するためのファイル形式として提唱された仕様です。
場所は https://yourdomain.com/llms.txt(ドメインのルート直下)に置きます。フォーマットはシンプルなMarkdownです。
# サイト名
> サイトの一行説明
## セクション名
- [ページタイトル](URL): 説明
Anthropicも自社ドキュメントサイトに llms.txt を設置しており、Claude自身がAnthropicのドキュメントを参照する際に利用しています。robots.txt がクローラー向けの案内なら、llms.txt はLLM(大規模言語モデル)向けの案内ファイルです。
robots.txtでAIクローラーを制御する
AIサービスはそれぞれ独自のクローラーを持っています。robots.txt でこれらを制御できます。
| クローラー名 | 運営元 | User-agent値 |
|---|---|---|
| GPTBot | OpenAI | GPTBot |
| ChatGPT-User | OpenAI | ChatGPT-User |
| ClaudeBot | Anthropic | ClaudeBot |
| Claude-Web | Anthropic | Claude-Web |
| PerplexityBot | Perplexity | PerplexityBot |
| Google-Extended | Google-Extended | |
| Applebot-Extended | Apple | Applebot-Extended |
クロールを許可する場合は特に設定不要ですが、拒否したい場合は Disallow: / を追加します。逆に積極的に参照を歓迎するサイトは、明示的に Allow: / と書くことでその意図を示せます。
セマンティックHTMLと構造化データ
AIがページを読む際、HTML構造から意味を読み取ります。適切なタグの使用が重要です。
<article>: 記事本文のラッパー<h1>〜<h6>: 見出し階層で構造を明示<time datetime="...">: 日付の機械可読形式<nav>: ナビゲーション領域の明示<main>: メインコンテンツのラッパー
加えて、JSON-LD(構造化データ) をページの <head> に埋め込むと、記事のメタ情報(著者、公開日、カテゴリ)をAIや検索エンジンに伝えられます。
その他の対応ポイント
- 明確な文章構造: 箇条書きや表を使い、情報を整理した形式にする
- メタdescription: 記事の要約をAIが最初に参照する情報として活用する
- 内部リンク: 関連記事へのリンクをAIが次の参照先として辿れるようにする
- サイトマップ(sitemap.xml): クローラーに全ページを案内する
実装手順:AI向けサイトに変換する
1. llms.txtを作成する
public/llms.txt にMarkdownファイルを作成します。Astroの場合、public/ ディレクトリのファイルはビルド時にドメインのルートに配置されます。
# サイト名
> サイトの一行説明
## ブログ記事
- [記事タイトル](https://example.com/blog/slug/): 記事の説明(公開日)
ポイントは以下です。
- 各記事の絶対URLを記載する
- 記事の説明文を添える(AIが内容を判断しやすくなる)
- 全記事を網羅するより、重要な記事を厳選して精度を上げる
2. robots.txtにAIクローラー設定を追加する
public/robots.txt にAIクローラー向けの設定を追加します。クロールを許可する基本的な設定は以下です。
User-agent: *
Allow: /
# AI Crawlers
User-agent: GPTBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Allow: /
Sitemap: https://yourdomain.com/sitemap-index.xml
特定AIのクロールを拒否したい場合は Allow: / を Disallow: / に変更します。
3. JSON-LDで構造化データを追加する
Astroのブログ記事レイアウト(src/layouts/BlogPost.astro)に JSON-LD を追加します。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "記事タイトル",
"description": "記事の説明",
"datePublished": "2026-04-03",
"author": {
"@type": "Person",
"name": "NOP"
},
"publisher": {
"@type": "Organization",
"name": "NOP Labo 技術メモ",
"url": "https://noplabo.com"
}
}
</script>
Astroでは動的にフロントマターの値を JSON-LD に埋め込むことができます。
4. HTMLのセマンティクスを整える
既存のAstroテンプレートを確認し、<article>、<time>、<main> などのセマンティックタグが適切に使われているか確認します。Astroのデフォルトブログテンプレートはすでに基本的なセマンティクスが揃っているため、大きな変更は不要なケースが多いです。
実験:noplabo.comにllms.txtを設置してみた
実際にこのブログ(noplabo.com)に llms.txt を設置し、AIに読み込ませてどう変わるかを確認します。
llms.txtの内容
public/llms.txt として以下の内容を設置しました。
# NOP Labo 技術メモ
> AIとテクノロジーを気軽に試してみるブログです。開発や技術に関するメモを発信しています。
## サイト情報
- URL: https://noplabo.com/
- 著者: NOP
- フレームワーク: Astro v5(静的サイト生成)
## ブログ記事
- [AI向けのサイトとは?llms.txtで実験してみた](https://noplabo.com/blog/ai-friendly-site-llms-txt/): ...
- [Sakana Chat (Namazu) を試してみた](https://noplabo.com/blog/sakana-chat-namazu-2026-04/): ...
- [2026年3月時点のAI最新モデル比較](https://noplabo.com/blog/ai-models-2026-03/): ...
- [Qwen3.5をローカルで試す(Ollama)](https://noplabo.com/blog/local-llm-ollama-2026-03/): ...
- [OpenAI GPT-5.4リリース](https://noplabo.com/blog/gpt-5-4-release/): ...
- [Claude CodeでAstroサイト作成](https://noplabo.com/blog/claude-code-astro-site/): ...
AIへの読み込ませ方
実験は以下の2パターンで行いました。
パターンA: URLを直接渡す
Claude Web版のチャットに以下のように入力します。
https://noplabo.com/llms.txt を読んで、このサイトの概要を教えてください
パターンB: テキストを貼り付ける
llms.txtの内容をそのままチャットに貼り付け、「このサイトのどんな記事が読めますか?」と質問します。
実験結果:Claudeに読み込ませた場合
URLを渡してClaudeに読み込ませたところ、以下のような回答が返ってきました。
「NOP Labo 技術メモ」はAIとテクノロジーを気軽に試してみることをテーマにしたブログです。Astro v5で作られており、現在以下の記事が公開されています:
- AI向けのサイトとは? — llms.txtの設置実験を含む記事(2026年4月3日)
- Sakana Chat (Namazu) レビュー — 日本特化LLMの試用レポート(2026年4月1日)
- AIモデル比較(2026年3月) — GPT-5.4、Claude 4.6、Gemini 3.1の比較
- Qwen3.5 ローカル実行 — Ollamaを使った手順
- GPT-5.4リリース解説
- Claude CodeでAstroサイト作成
llms.txtを設置する前は「noplabo.comとはどんなサイトですか?」という質問に対して「情報が見つかりません」という回答でした。設置後は記事一覧と概要を正確に答えるようになりました。
実験結果:ChatGPT Browseに読み込ませた場合
ChatGPTのBrowse機能(Web検索オン)で同様に試したところ、llms.txtのURLを直接入力した場合はファイルの内容を読み取り、記事リストを正確に返してくれました。
一方で検索クエリ経由の場合(「noplabo.com AI記事」などで検索)は、検索インデックスが更新されるまで時間差があるため、即日の効果は限定的でした。
考察
実験を通じて、以下のことが分かりました。
- URLを直接渡す場面: llms.txtは即効性が高い。サイトの構造を1ファイルで案内できる
- AI検索経由の場面: インデックス更新に依存するため時間がかかる
- llms.txtの書き方: 説明が具体的なほどAIの要約精度が上がる
「llms.txtを置いたからAI検索で上位に出る」というものではありません。ただ、ユーザーがURLを渡してAIに質問するシーンでは確実に役立ちます。ブログやドキュメントサイト、ポートフォリオサイトなど「誰かに紹介してもらいたい」コンテンツには特に有効です。
| 対応項目 | 重要度 | 実装難易度 | 効果 |
|---|---|---|---|
| llms.txt設置 | 高 | 低(Markdownを置くだけ) | AIへの直接案内 |
| robots.txt更新 | 高 | 低 | クローラー制御 |
| セマンティックHTML | 中 | 中 | 構造理解の向上 |
| JSON-LD構造化データ | 高 | 中 | 検索AI対応 |
| OpenGraph / meta description | 中 | 低 | スニペット品質向上 |
| サイトマップ (sitemap.xml) | 中 | 低 | クロール効率化 |
まとめ
AI向けサイト設計のポイントをまとめます。
必須対応(すぐできる)
- llms.txtを設置する —
public/llms.txtにMarkdownでサイト概要と記事一覧を書くだけ - robots.txtにAIクローラー設定を追加する — 主要クローラーへの許可/拒否を明示する
推奨対応(中期的に)
- JSON-LDで構造化データを追加する — ブログ記事レイアウトに
BlogPostingスキーマを埋め込む - セマンティックHTMLを確認する —
<article>,<time>,<main>などが適切に使われているか
考え方として
- SEOとLLMOは「対立」ではなく「補完」です。構造化された読みやすいコンテンツはどちらにも有効です
- llms.txtは「AIへの名刺」だと思うと分かりやすいです。置いておくだけでAIが正確にサイトを紹介してくれるようになります
- AIエージェントの普及が進む中、Webサイトの「読者」には人間だけでなくAIも含まれるようになっています
コストが低い割に効果がある対応から順に試してみてください。
参考資料
- llms.txt specification — llmstxt.org
- Anthropic Claude llms.txt
- GPTBot — OpenAI Platform
- Does Anthropic crawl the web? — Claude Support
- Google-Extended — Google Search Central
- Schema.org BlogPosting
- AI Traffic in 2025: Comparing ChatGPT, Perplexity & Other Top Platforms — SE Ranking
Footnotes
-
SE Ranking「AI Traffic in 2025: Comparing ChatGPT, Perplexity & Other Top Platforms」(2025) — https://seranking.com/blog/ai-traffic-research-study/ ↩ ↩2 ↩3