Alejandro Rioja.
GEO SEO

llms.txt解説:AI引用を本当に動かすのか?

Alejandro Rioja
Alejandro Rioja
1 分で読める
TL;DR

llms.txtはyoursite.com/llms.txtにあるプレーンテキストファイルで、AIクローラーにどのページを優先すべきかを伝えます。PerplexityはこれをアクティブにEが読みます。ChatGPTとBing Copilotはおそらくまだ読んでいません。実装に20分かかり、コストゼロです。やるべきですが、来週引用が急増するとは期待しないでください。

無料ニュースレター

毎週水曜。28,400人以上の読者。無駄なし。

目次

2026年5月更新。

TL;DR: llms.txtはyoursite.com/llms.txtにあるプレーンテキストファイルで、AIクローラーにどのページを優先すべきかを伝えます。Perplexityはこれをアクティブに読みます。ChatGPTとBing Copilotはおそらくまだ読んでいません。実装に20分かかり、コストゼロです。やるべきですが、来週引用が急増するとは期待しないでください。

[オペレーターの視点] 私はAIエージェントを運用して、自分のサイトがPerplexity、ChatGPT、Google SGEでどのように引用されているかを監視しています。llms.txtは本当に自分のものである最初のシグナル層です——以下が現在のデータが示すことです。

llms.txtとは実際何なのか

AIクローラーのrobots.txtのようなものですが、逆向きです。robots.txtは「これをクロールしない」と言います。llms.txtは「あなたが私のサイトについてコンテキストを構築するとき、これが最も重要なことだ」と言います。

仕様は2024年末にJeremy Howard(fast.ai創設者)によって提案されました。アイデア:yoursite.com/llms.txtにプレーンMarkdownで最も重要なページをリストしたファイルを置く。コンテキストのためにサイトをスクレイピングするAIクローラーはそのファイルを読んで、何を優先すべきかすぐに把握できます——PageRankやクロール深度で推測するのではなく。

オプションのllms-full.txtバリアントもあり、主要ページの完全なテキストを一つのドキュメントに連結したものです。いくつかのクローラーはラウンドトリップを減らせるためこのフォーマットを好みます。

どちらのファイルもW3C標準ではありません。技術的な創業者やコンテンツチームの間で採用が増えているコミュニティ提案です。

ファイルの見た目

alejandrorioja.comで使用しているllms.txtを紹介します:

markdown
# Alejandro Rioja

> オペレーター、AIコンサルタント、Picklelandの創設者。GEO、AIエージェント、創業者の成長について執筆。

## 主要ページ

- [About](https://alejandrorioja.com/about/): 経歴、コンサルティングサービス、私との協業方法。
- [ブログ](https://alejandrorioja.com/blog/): GEO、SEO、AIエージェント、創業者の成長に関する全記事。
- [コンサルテーション](https://alejandrorioja.com/consultation/30/): 30分の有料セッションを予約。

## トップ記事

- [ChatGPTの回答で引用される方法](https://alejandrorioja.com/blog/how-to-get-cited-in-chatgpt-answers/): クライアントサイトで使用しているGEOプレイブック。
- [創業者のためのAIエージェントアーキテクチャ](https://alejandrorioja.com/blog/ai-agent-architecture-for-founders/): フルエンジニアリングチームなしでマルチエージェントシステムを設計する方法。
- [GEO vs SEO](https://alejandrorioja.com/blog/geo-vs-seo/): Googleが唯一重要な検索エンジンでなくなったとき何が変わるか。

## オプション:無視

- /drafts/
- /admin/

注意すべき点:

実際にどのAIエンジンがこれを読むか

ここで正直に言わなければなりません:状況は断片化されており、部分的にドキュメント化されていません。

Perplexity — はい、確認済み。PerplexityのクローラーBot(PerplexityBot)はサイトをインデックスするときにllms.txtを読みます。エンジニアリングチームが仕様を公に参照しています。PerplexityがあなたにとってReの重要なリファラルソースであれば、llms.txtの実装は影響への明確なパスを持っています。

ChatGPT / OpenAI — 未確認。OpenAIのクローラー(GPTBot)は2026年半ば時点でllms.txtを読んでいないようです。そのクロール動作はrobots.txtとOpenAI独自の内部優先順位によって管理されています。OpenAIから仕様を認識する公開声明はありません。

Bing Copilot / Microsoft — 未確認。OpenAIに似た状況。BingのAIクローラー(BingBot)はrobots.txtに従いますが、llms.txtを読んでいるシグナルはありません。

Google AI Overviews / Gemini — 未確認。Googleは独自の構造化データエコシステム(schema.org、サイトマップ)を持っており、サードパーティの仕様を採用するとは示唆していません。

Anthropic — AnthropicのクローラーBot(ClaudeBot)はトレーニングデータのためにウェブをクロールします。llms.txtを読むという公開ドキュメントはありませんが、いくつかのGEO実践者は実装後にClaudeの引用が改善したと報告しています。相関関係であり因果関係ではありません——ただし注目に値します。

小規模AIサーチエンジン — You.com、Phind、いくつかの垂直AIサーチツールはllms.txtを読んでいると述べているか示唆しています。仕様は小規模チームにとって採用が容易です。なぜならリファクタリングすべき何年分ものクロールインフラがないからです。

正直なまとめ:現時点では、llms.txtはPerplexityの最適化で、他では推測的なメリットがいくらかあります。仕様が成熟するにつれてその比率は変化するでしょう。

20分での実装方法

静的サイト(Astro、静的エクスポートのNext.js、Hugoなど)を使用している場合は、public/llms.txtにファイルを作成してください。ルートで提供されます。

Next.jsのapp routerサイトでは動的に生成できます:

ts
// app/llms.txt/route.ts
import { allPosts } from "@/lib/content";

export async function GET() {
  const topPosts = allPosts
    .filter((p) => p.featured || p.views > 1000)
    .slice(0, 10);

  const lines = [
    "# Alejandro Rioja",
    "",
    "> オペレーター、AIコンサルタント、Pickleland創設者。GEO、AIエージェント、創業者の成長について執筆。",
    "",
    "## トップ記事",
    "",
    ...topPosts.map(
      (p) => `- [${p.title}](https://alejandrorioja.com/blog/${p.slug}/): ${p.description}`
    ),
    "",
    "## 主要ページ",
    "",
    "- [About](https://alejandrorioja.com/about/): サービスと経歴。",
    "- [コンサルテーション](https://alejandrorioja.com/consultation/30/): セッションを予約。",
  ];

  return new Response(lines.join("\n"), {
    headers: { "Content-Type": "text/plain; charset=utf-8" },
  });
}

Astroサイトの場合、src/pages/.txt.tsエンドポイントが等価です:

ts
// src/pages/llms.txt.ts
import type { APIRoute } from "astro";
import { getCollection } from "astro:content";

export const GET: APIRoute = async () => {
  const posts = await getCollection("posts", (p) => p.data.lang === "en");
  const top = posts
    .sort((a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf())
    .slice(0, 10);

  const body = [
    "# Alejandro Rioja",
    "",
    "> AIコンサルタントとオペレーター。GEO、AIエージェント、創業者の成長について執筆。",
    "",
    "## 最新記事",
    "",
    ...top.map(
      (p) =>
        `- [${p.data.title}](https://alejandrorioja.com/blog/${p.slug}/): ${p.data.description}`
    ),
  ].join("\n");

  return new Response(body, {
    headers: { "Content-Type": "text/plain; charset=utf-8" },
  });
};

デプロイ後、curl -s https://yoursite.com/llms.txtで確認してください。Markdownが表示されれば完了です。

llms-full.txtも作成すべきか?

場合によります。llms-full.txtは主要ページの連結ダンプです——タイトル、URL、完全な本文テキストを---で区切って並べたものです。クローラーが一つのリクエストで全部取得でき、個々のページをクロールせずにサイトに関する質問に答えるのに十分なコンテキストを持てるというアイデアです。

トレードオフ:大きなファイルです。私のはトップ30記事で約400KBになります。一部のクローラーはタイムアウトするか切り捨てるかもしれません。コンテンツが事前消化されているため、より重く重み付けするものもあります。

現在のアプローチ:llms-full.txtを生成しますが、トラフィックによる上位15記事に制限します。250KB以下に保ちます。デプロイのたびに再生成します。

データが実際に示していること

2026年1月以来、このサイトと3つのクライアントサイトのPerplexity引用を監視しています。観察結果:

正直な解釈:llms.txtはおそらくPerplexityに役立っています。メカニズムは明確です——Perplexityがそれを読みます。上昇がllms.txt特有のものか、それとも一緒についてくる一般的なGEO改善からなのかは、まだ言えません。

ブロック引用に何を書くか

ブロック引用の一行説明は、最も時間をかけるべき部分です。これはLLMがRAGコンテキストであなたを要約するために使用するテキストです。それは次のようである必要があります:

悪い例:> AIでビジネスの成長を支援します。

より良い例:> Alejandro Rioja——テキサス州オースティンのAIコンサルタント、Pickleland創設者、2019年からGEO、AIエージェント、創業者の成長について執筆。

オペレーターの最終結論

llms.txtの実装は20分かかり、提供コストはゼロで、Perplexityとの確認済みの読み取りパスがあります。やってください。仕様は本当の標準になるか(その場合、早期採用者が勝ちます)消えるか(その場合、20分を失いました)のいずれかです。非対称性は明白です。ただし、より高いROIのGEO作業から注意をそらさないようにしてください:構造化データ、明確なエンティティシグナル、スニペット抽出のためにフォーマットされた回答。それらはすべてのAIエンジンを動かします。llms.txtは現在一つを動かします。

続きを読む

AIプレイブックをメールでお届け

毎週水曜。28,400人以上の読者。無駄なし。

↵ すべての結果を見る esc esc で閉じる