解説 · 読了 9 分

llms.txt と構造化データ(schema.org)の違いと使い分け

片方はページをクローラーに、もう片方はサイトをアシスタントに説明する。理由は違うが、両方が要る。

サイトを機械に読ませるためのものが 2 つあります。schema.org の語彙を JSON-LD で埋め込む構造化データは 2011 年からページの中にあり、サイト直下に置く Markdown の llms.txt は 2024 年に登場しました。新しい方が古い方を置き換えるのか、 そもそもどちらかが AI の回答に効くのか、という質問をよく受けます。

この記事では 2 つを並べて、それぞれに何が書かれ、誰がいつ読み、 Google のドキュメントと llms.txt の仕様が実際に何を約束しているか、 どこが重なり、どうすれば矛盾させずに済むかを整理します。

30 秒で分かる結論:llms.txt と構造化データの違いは「どちらを選ぶか」ではなく、説明する相手と対象が違う

schema.org の構造化データはページ内のマークアップです。このページにある実体が何かをクローラーに伝えます。これはこの見出しと日付を持つ Article である、これはこの価格の Product である、これはこの名前とロゴを持つ Organization である、という具合です。クロール時に読まれ、索引に保存され、誰かが質問する前に検索の機能を組み立てるために使われます。

llms.txt はサイト単位の Markdown の索引です。エージェントがあなたのサイトについて知る必要が出たその瞬間に、サイトが何で、どの話題ならどのページを読めばよいかを伝えます。他ドメインのページや、自サイトのページの Markdown 版を指すこともでき、これは構造化データにはできません。索引に保存されるのではなく、必要なときに読まれます。

ですから問いは「どちらを入れるか」ではありません。「2 つがサイトについて同じことを言っているか」です。この記事の残りは、それを確かめる方法の話です。

それぞれ何なのか

schema.org の構造化データllms.txt
置き場所各ページの中。通常は head の JSON-LD の script タグ/llms.txt に 1 本(サブパス配下も可)
形式schema.org の語彙を JSON-LD、Microdata、RDFa のいずれかでMarkdown。H1、引用、リンク一覧の H2 セクション
対象その 1 ページにある実体サイト全体、またはファイルのパス配下
読む側検索エンジンのクローラーと、HTML を解析するもの全般決まった名前でファイルを取りに来るエージェントとツール
読むタイミングクロール時。索引に保存される必要になったとき。エージェントがサイトの情報を要するとき
外部へのリンクプロパティの値として(sameAs、url)のみ可。仕様は sitemap.xml が代替にならない理由としてこれを挙げる
定めているのはGoogle、Microsoft、Yahoo、Yandex が設立した Schema.orgllmstxt.org の公開提案。2026 年 8 月に改訂
なかったらリッチリザルトは出ない。ページ自体は HTML から索引されるエージェントは HTML のクロールか検索に頼る

いちばん大事な行はタイミングです。構造化データは質問が存在する前に、何百万ページも訪れて見つけたものを保存する仕組みに消費されます。llms.txt は質問が存在した後に、数千トークンの予算しかなく、どの 2〜3 ページを読むか決めなければならないモデルに消費されます。製品名のような同じ事実は両方に書きますが、理由は正反対です。

構造化データは AI に何をしてくれるのか:Google の説明

Google の「AI 機能とウェブサイト」のページ(2025 年 12 月更新)は珍しくはっきり書いています。AI による概要や AI モードに表示されるための追加要件はありません。追加すべき特別な schema.org の構造化データもありません。新しい機械可読ファイル、AI 向けテキストファイル、マークアップを作る必要もありません。同じページが 1 つだけ変わらず求めているのは、構造化データをページに見える文章と一致させることです。

この最後の 1 文が実務では一番役に立ちます。Google の構造化データの一般ガイドは、マークアップはそれが置かれたページの内容を記述するものであり、たとえ正確でもユーザーに見えない情報を構造化データに加えてはいけない、としています。検索で取得した後にページを読むモデルにとって、一貫したマークアップは同じ事実の解析しやすい写しです。一貫していないマークアップは、解消しなければならない矛盾です。

ほかに書き方を決めるドキュメント上の事実が 2 つあります。

  • 推奨形式は JSON-LD。Google は JSON-LD、Microdata、RDFa をサポートし、実装と保守が最も楽な形式を推奨していて、多くの場合それは JSON-LD だと述べています。ページが描画するのと同じデータから生成した script タグ 1 つなら、まず間違えません。
  • 一部のリッチリザルトは縮小済み。2023 年 8 月以降、FAQ のリッチリザルトは著名で信頼性の高い政府系・医療系サイトにしか表示されません。FAQPage のマークアップは今も有効でページの記述にはなりますが、多くのサイトでは検索結果に見える形では何も得られません。

実務的に読むなら、構造化データはまず検索エンジンのためのもので、AI の機能のためになるのは、その機能が同じ索引の上に乗っているという意味においてです。回答の生成時にモデルがあなたの JSON-LD を参照する、とは Google のどのドキュメントにも書かれていません。

llms.txt にできて構造化データにできないこと

llms.txt の提案は自身を「エージェントがウェブサイトを使う助けになる情報を提供するファイル」と説明しています。その設計から 3 つの能力が導かれ、どれもページ内マークアップには備わっていません。

  1. サイト単位の視点。構造化データは 1 ページずつ記述します。5,000 ページのうちどの 10 ページが最も重要かを schema.org で言う手段はありません。llms.txt はまさにその一覧で、リンクごとに理由を 1 文添えます。
  2. サイト外へのリンク。仕様は sitemap.xml が代替にならない理由として、サイトマップはエージェントの理解に役立つかもしれない外部サイトの URL を含まないこと、ページの LLM 向け版を列挙しないことを挙げています。llms.txt はどちらもできます。
  3. 回答時に読まれること。仕様は robots.txt と対比して、robots.txt は自動ツールにどんなアクセスが許容されるかを伝えるのに対し、llms.txt の情報はユーザーを手伝う最中にエージェントがある話題の情報を必要としたときに、必要に応じて使われる、と説明しています。索引とは反対側の端です。

仕様はもう片方のファイルにも直接触れています。llms.txt はサイトで使っている構造化データのマークアップを参照でき、LLM がその情報を文脈に沿って解釈する助けになる、とあります。JSON-LD を Markdown に貼れという話ではなく、マークアップを説明している場所へのリンクを示唆しています。

Google のドキュメントと共通する注意点が 1 つあります。主要な検索エンジンで llms.txt を読むと表明したところはなく、Google は読んでいないと発言しています。今日の読み手はエージェント、開発者向けツール、決まった名前でファイルを取りに来るクローラーです。公開されている発言は Google は llms.txt を使うのかという記事で追っています。

重なる部分と、矛盾させない方法

結局どちらのファイルも、同じひと握りの事実を述べることになります。架空の会社で最小の組を示します。JSON-LD はトップページの head に、Markdown は llms.txt の全文です。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Acme Analytics",
  "url": "https://acme.example/",
  "logo": "https://acme.example/logo.png",
  "description": "小さなチーム向けのプライバシー重視のアクセス解析。セルフホストでもクラウドでも。",
  "sameAs": ["https://github.com/acme-analytics"]
}
</script>
# Acme Analytics

> 小さなチーム向けのプライバシー重視のアクセス解析。セルフホストでもクラウドでも。Cookie を使わず、個人データを保存しません。

## ドキュメント

- [クイックスタート](https://acme.example/ja/docs/quickstart): スクリプトを設置して 5 分で最初のページビューを見る。
- [セルフホストガイド](https://acme.example/ja/docs/self-host): Docker イメージ、Postgres、重要な環境変数 2 つ。
- [料金](https://acme.example/ja/pricing): クラウドは月間ページビュー別のプラン、セルフホストは無料。

## Optional

- [GitHub](https://github.com/acme-analytics): ソース、Issue、リリースノート。
- [このサイトの構造化データ](https://acme.example/ja/docs/structured-data): ページ種別ごとに付けている schema.org の型。

3 か所をわざと揃えています。Organization の name は H1 です。description は引用の冒頭と一字一句同じです。sameAs の GitHub は Optional の項目です。プラン名を変えるときは同じコミットで両方が変わるべきで、それを保証する一番楽な方法は 1 つのソースから両方を生成することです。Markdown 側のパターンは ビルド時生成の記事にあり、JSON-LD 側は同じ考え方でシリアライザが違うだけです。

自分のサイトで突き合わせる価値のある組は次の通りです。

  • Organization の name と description と、llms.txt の H1 と引用。
  • Article の headline と datePublishedと、llms.txt でそのページを指すリンク文と注釈。ファイルが「最新のガイド」と言い、マークアップが 2023 年と言っていれば、どちらかが間違っています。
  • Product の name と価格と、料金ページへのリンクの注釈。価格が変わったときにファイルを再生成する仕組みがないなら、llms.txt の注釈に価格を書かないでください。
  • FAQPage の質問と、そのページに表示している FAQ。このサイトは記事の FAQ 表示と FAQPage の JSON-LD をまさにこの理由で 1 つの配列から描画しています。

今週やること

  1. トップページのソースを開き application/ld+json を探します。なければ name、url、logo、description を持つ Organization を 1 つ追加します。あれば中身を読み、すべての値がページに見えていることを確かめます。
  2. 主要なコンテンツ種別に Article か Product のマークアップを、Google が推奨として挙げるプロパティ(Article なら author、datePublished、dateModified、headline、image)で追加します。FAQ を表示していないページには FAQPage を入れません。
  3. ページ数が 50 未満なら llms.txt を手で書き、多ければ sitemap と同じルート一覧から生成します。Organization の description を引用にそのまま写します。
  4. 構造化データを説明するページがあるなら、Optional にそこへのリンクを 1 行加えます。なければ省略します。仕様は参照を許しているだけで、求めてはいません。
  5. デプロイの手順に両方の検証を入れます。マークアップは Google のリッチリザルト テストか schema.org のバリデータ、ファイルは llms.txt のバリデータです。

両方を確かめる

構造化データには何年も前からバリデータがあり、schema.org のバリデータも Google のリッチリザルト テストも URL を解析して見つかった実体を一覧にします。Markdown 側は、ファイルを取得して H1、引用、名前のついたセクションがあり、リンクが解決することを確かめます。

llms.txt を検証する

サイトの URL を貼ると、/llms.txt を取得して仕様に沿った構造かを確認し、見つかったセクションとリンクをすべて一覧にします。マークアップの内容と突き合わせる材料になります。

バリデータを開く →

よくある質問

llms.txt があれば構造化データは不要になりますか?

なりません。働く層が違います。構造化データはページの中に埋め込むマークアップで、そのページにある実体(記事、商品、組織)を索引を作るクローラーに説明します。llms.txt はサイト単位の Markdown の索引で、エージェントがそのサイトについて知る必要が出たときに読みます。片方でもう片方の役割は果たせないので、検索の機能と AI の回答の両方を気にするサイトは両方を持ちます。

Google は AI による概要で llms.txt や schema.org を使いますか?

Google の「AI 機能とウェブサイト」のドキュメント(2025 年 12 月更新)は、AI による概要や AI モードに表示されるための追加要件はなく、追加すべき特別な schema.org の型もなく、新しい機械可読ファイルや AI 向けテキストファイルを作る必要もないと明記しています。構造化データ自体はリッチリザルトとページ理解に引き続き使われ、ページに見える文章と一致させることが求められています。llms.txt については Google は使っていないと別途発言しています。

FAQPage のマークアップは全ページに入れるべきですか?

そのページに実際に質問と回答が表示されている場合だけです。Google のドキュメントでは、FAQ のリッチリザルトは現在、著名で信頼性の高い政府系・医療系サイトにしか表示されません。多くのサイトでは FAQPage を入れても検索結果に目に見える変化はありませんが、ページの内容を正確に記述する役割は残ります。このサイトも長文記事にはその理由で残しています。FAQ を表示していないページに入れてはいけません。

llms.txt から構造化データにリンクできますか?

仕様には、サイトで使っている構造化データのマークアップを llms.txt から参照して、モデルがその情報を文脈に沿って解釈する助けにできる、とあります。実際には、JSON-LD を Markdown に貼り付けるのではなく、名前のついたセクションにマークアップの説明ページへのリンクを 1 行置く形です。llms.txt は人が読める索引のままにします。

構造化データはどの形式で書くべきですか?

JSON-LD です。Google は JSON-LD、Microdata、RDFa をサポートし、実装と保守が最も楽な形式を推奨していて、多くの場合それは JSON-LD だと述べています。ページが描画するのと同じデータから生成した script タグを head に 1 つ置く形が最も間違いにくく、このサイトもその形です。

今週どちらか 1 つしかできないなら、どちらを優先すべきですか?

壊れている方です。構造化データが何もないサイトは、Organization と Article(または Product)を先に入れてください。どの検索エンジンも今日すでに読んでいるからです。マークアップは整っているが llms.txt がないサイトは、ファイルを書いてください。1 時間で済みますし、2 つのうちアシスタントが丸ごと読めるのはこちらだけです。

次に読む