Works
Blog Recruit Contact AI互換性診断
エージェンティックWeb
calendar_today
[エージェンティックWeb実装ガイド Vol.2] 山下 太郎 山下 太郎

エージェンティックWeb実装ガイド 第2回:サイトが自分を名乗る ― 構造化データとllms.txtで、意味と全体像を伝える

AIエージェントに操作させる前に、まずサイトの意味を正しく読ませる。構造化データ(Schema.org)とllms.txtで、サイトは自分を名乗る。連載「エージェンティックWeb実装ガイド」第2回。Google検索が無視するファイルを、なぜ今置くのか。

エージェンティックWeb実装ガイド 第2回:サイトが自分を名乗る ― 構造化データとllms.txtで、意味と全体像を伝える

前回、三番目の読者としてAIエージェントが現れた話をした。そして関与には深さの階段があるとも書いた。見る、問い合わせる、操作する、取引する。今回はその一段目、「見る」に降りていく。

一段目は地味だ。操作も取引もしない。エージェントがページの意味を、推測ではなく構造として読み取れるようにする。それだけの層だ。だが土台がぐらつけば、その上のすべてがぐらつく。意味を取り違えたまま操作させれば、間違ったものを、正確に実行される。だから最初に、ここを固める。

連載の梯子と、今回の現在地 下段(見る)ほど渡す権限は小さく、上段(取引)ほど大きい。今回はいちばん下、「情報を見せる」だけの層。 見る(意味) Schema.org・llms.txt 第2回・現在地 問い合わせる(会話) NLWeb 第3回 操作する(アクション) WebMCP 第4回 取引する(決済) A2A・AP2・ACP・UCP 第5回 横断:RAG(根拠)+ セキュリティ・権限 ― すべての層に効く(第6回)

意味には、二つの粒度がある

人間は、ページを開いた瞬間に多くを判断する。この数字は価格だ、これは会社名だ、この赤いボタンが申し込みだ。レイアウトと文脈から、書かれていないことまで補って読む。

機械はそれをしない。正確には、しなくてよいように作られていない。書いていなければ推測に頼り、推測は外れる。「1,200」という数字が価格なのか在庫数なのか型番なのか、見た目の大きさや位置から人間は察するが、エージェントにとってそれは曖昧なテキストの断片でしかない。

だから「意味を伝える」という仕事が要る。そしてこの仕事には、二つの粒度がある。

一つは、個々の意味。「これは商品だ」「価格は税込1,200円だ」「これは営業時間だ」。ページの中の一つひとつの要素に、機械が読める札を付ける。これがSchema.orgと構造化データの世界だ。

もう一つは、全体像。「このサイトは何のサイトで、どこに何があるか」。個々の意味ではなく、サイトという単位の見取り図。これがllms.txtの領域だ。

一本の木に名札を付けるのがSchema.org、森全体の地図を入口に置くのがllms.txt。二つは競合しない。粒度が違うだけで、どちらも「機械に推測させない」ための自己記述だ。

Schema.org ― 個々の意味を、推測させない

Schema.orgは、GoogleとMicrosoft、Yahooが2011年に立ち上げ、まもなくYandexも加わった共通語彙だ。「これは商品」「これは記事」「これは組織」といった型(type)と、その属性(property)を、あらかじめ決められた名前で記述する。書き方はいくつかあるが、いま主流はJSON-LDで、ページの中にスクリプトとして意味の定義を埋め込む。

現在の最新版はV30.0(2026年3月19日公開)で、823の型と1,529のプロパティを持つ。商品(Product)、記事(Article)、組織(Organization)、地域ビジネス(LocalBusiness)、パンくず(BreadcrumbList)、イベント(Event)といった型を使い、価格・在庫・営業時間・所在地を構造として書く。schema.org自身の集計では、2024年時点で4,500万を超えるドメインがこの語彙でマークアップし、埋め込まれたオブジェクトは4,500億を超える。成熟した層だ。

「マークアップ=検索のごほうび」という等式が痩せた

ここで、実務家が握っている前提を一つ更新しておく必要がある。長らくSchema.orgは、SEOの文脈で語られてきた。マークアップすればリッチリザルト(検索結果の見た目の拡張)がもらえる、という等式だ。その等式が、いま痩せている。

Googleはこの数年、リッチリザルトの対象を広げるのではなく、絞ってきた。HowTo(ハウツー)のリッチリザルトは2023年9月に消えた。そしてFAQ(よくある質問)のリッチリザルトも、2026年5月7日をもって検索結果に表示されなくなった。マークアップ自体は今も妥当なまま、検索結果での見返りだけが消えたことになる。Googleの言い方はこうだ。使われていない構造化データは、検索に問題を起こしはしないが、検索上の可視的な効果もない。

「書けばごほうびがもらえる」目当てだった投資は、この変化で足元が崩れる。だが、ここで話は終わらない。

SEOのごほうびが痩せても、機械可読性の価値は太る

同じJSON-LDが、二つの異なる価値を持っている。一つはSEOのリッチリザルトという報酬。これは痩せた。もう一つは、機械が意味を曖昧さなく読み取れるという価値。こちらは、三番目の読者が現れたことで、むしろ太っている。

エージェントがページを扱うとき、構造化データは推測を減らす。価格が税込か税抜か、在庫があるかないか、この操作は予約か購入か。人間なら文脈で補う判断を、機械には構造として渡す必要がある。そして次回扱うNLWebは、まさにこのSchema.orgのデータをベクトルに変換して、サイトを「問い合わせられる窓口」にする。意味の層は、会話の層の材料になる。

つまりSchema.orgへの投資判断は、「検索のごほうび目当て」から「機械可読な意味の土台」へと軸足を移す。リッチリザルトが出るかどうかで一喜一憂する対象ではなく、三番目の読者に意味を渡すための基礎工事として捉え直す。この捉え直しができているかどうかが、これからの数年で効いてくる。

(Eコマースの商品情報のように、いまも検索・ショッピング面で直接効くマークアップは残っている。すべてが無意味になったのではなく、「リッチリザルト目当て」という単一の動機が痩せた、という話だ。)

どこに、何を置くか

設置場所は各ページの<head>だ。<body>内でも動くが、<head>に置くのが読みやすい。<script type="application/ld+json">でJSON-LDを囲み、そのページが表す意味を書く。まず全ページに効くのが、会社を名乗るOrganizationだ。

JSON
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "株式会社アンタイプ",
  "url": "https://www.untype.jp/",
  "logo": "https://www.untype.jp/assets/logo.png"
}
</script>

次に、よくある質問のページならFAQPage。さきほど「ごほうびが痩せた」と書いた、あのFAQだ。リッチリザルトはもう出ない。だがmarkupは今も妥当で、三番目の読者はここを読む。目的が変わっただけで、書くこと自体は変わらない。

JSON
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "対応エリアはどこですか?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "全国に対応しています。打ち合わせはオンラインでも可能です。"
    }
  }]
}
</script>

商品ページならProduct(価格・在庫・型番)、記事ならArticle、実店舗ならLocalBusiness(営業時間・所在地)。型はページの中身に合わせる。迷ったら、Organizationを全ページに置き、あとはそのページで人間に見せている主要な情報を、同じ型で機械にも渡す。それだけで土台になる。

取り違えで多いのは、表示とJSON-LDのズレだ。画面の価格は改定したのに、JSON-LDは旧価格のまま。この食い違いは人間の目には見えず、エージェントの目にははっきり見える。書いた瞬間から、実態と一致させ続ける保守がついてくる。

llms.txt ― サイトの地図。ただし「誰のための地図か」を間違えない

個々の名札の次は、森の地図だ。llms.txtは、サイトのルート(/llms.txt)に置く、Markdown形式の要約ファイルである。このサイトは何で、重要なページはどこにあるか。それを、機械が読みやすい平文で、一枚にまとめる。

生まれは新しい。fast.aiの共同創業者でAI研究者のJeremy Howardが2024年9月3日に提案した。動機はSEOではなく、技術的な困りごとだった。LLMのコンテキスト窓は小さく、ナビゲーションや広告やJavaScriptで膨れたHTMLをそのまま渡すと、肝心の中身が溢れてしまう。ならばサイト側が、要点だけを平文で差し出せばいい。2024年11月にドキュメントホスティングのMintlifyが全ホストサイトで対応し、そこから普及が始まった。

ただし、これはW3CやIETFが承認した標準ではない。強制力も、統一された仕様もない、コミュニティ発の慣習だ。ここを誇張しないことが、この層でいちばん大事になる。

二つのGoogleチームが、逆を向いている

llms.txtをめぐって、Googleは2026年5月、一週間ほどの間に正反対に見える二つのことを言った。この矛盾に見える構図が、この層の本質を一番よく照らす。

一方で、Google検索は「効かない」と明言した。2026年5月15日に生成AI向けの最適化ガイドを公開し、6月15日には「llms.txtに関するガイダンスの明確化」という項目をわざわざ足して、こう書いた。検索(生成AI機能を含む)に表示されるために特別な機械可読ファイルは必要ない、検索はそれらを使わないからだ、と。維持するのは自由だが、Google検索の可視性やランキングを上げも下げもしない、無視するから、と。Search Relationsの担当者は、これをかつて廃れたkeywordsメタタグ――自己申告のシグナルだから信用されなくなった仕組み――になぞらえている(Search Engine Journalによる報道)。AI Overviewsも、AI Modeも、これを参照しない。SEO目的なら、llms.txtは無意味だ。

他方で、同じ月の初め、Chromeは「読む」側の仕組みにこれを組み込んだ。Lighthouse 13.3(2026年5月7日リリース)が、Agentic Browsing(エージェント的ブラウジング)という監査カテゴリを既定化し、その中でllms.txtの有無をチェックするようになった。Chromeの説明では、llms.txtは「LLMとAIエージェント向けの、機械可読なサイト要約」であり、これが無いとエージェントはサイトの全体構造を把握するために余計にクロールすることになる、という位置づけだ。

矛盾ではない。二つのチームは、違う問いに答えている。検索チームが答えているのは「検索順位に効くか」。答えはノー。ブラウザ側が答えているのは「エージェントが読みやすいか」。答えはイエス。前回書いた「対応しているか」という問いは、ここで一段深くなる。対応しているか、は、誰に対して、で答えが変わる。同じ一枚のファイルが、検索エンジンには透明で、エージェントには意味を持つ。

効く場所は、はっきりしている

llms.txtが実際に読まれているのは、検索エンジンではなく、開発とエージェントの現場だ。コーディングエージェント――Cursor、Claude Code、GitHub Copilot、Windsurf、Aiderといった道具――は、ドキュメントサイトに向かうとき/llms.txtを探しに行く。どのライブラリのどのページを読めばいいかの、routingの入口として使う。LangChainはllms.txtを読ませるためのMCPサーバー(mcpdoc)まで用意している。Anthropicは自社のエージェント向け執筆ガイドでllms.txtを推奨し、OpenAIもAgents SDKやAgentic Commerce Protocolの文脈で使っている。

裏を返せば、採用はまだ広くない。設置率は調査によって幅があるが、2026年半ばで上位1万サイトの5%台――1年で約5倍に伸びたとはいえ、robots.txtやサイトマップのような普遍的な標準にはほど遠い。しかも、置かれたファイルの多くは読まれていない。13万7千ドメインを対象にしたサーバーログ調査では、有効なllms.txtの約97%が調査期間に一度もリクエストされず、わずかに読まれたぶんも、実際の読み手はコーディングエージェントや学習クローラで、検索・回答系のAIボットではなかったと報告されている。「みんなが読んでいる」段階ではない。「読む道具が、特定の場所で、確実に増えている」段階だ。

だから実務判断はこうなる。開発者向けドキュメント、API、SaaSのように、コーディングエージェントやRAGパイプラインが読み手として現実的なサイトでは、設置する価値がある。コストは小さく、B2A(Business-to-Agent)の入口を先に押さえられる。一方、数万ページ規模のサイトでは、地図を実態と一致させ続ける保守が本物のコストになる。エージェント流入が事業の優先事項でないなら、無理に置く必要はない。そして最悪なのは、実態とずれた地図を置いて放置することだ。案内板が古ければ、無いより人を惑わせる。

置き方は、数行で足りる

置き場所はドメインの直下、https://(あなたのドメイン)/llms.txt。中身はMarkdownで、形式はllmstxt.orgの仕様が定めている。H1でサイト名、引用(>)で一文の要約、そのあとにH2でセクションを切り、重要なページへのリンクを並べる。必須はH1だけで、あとは任意だ。

Markdown
# 株式会社アンタイプ
> 東京・南青山のコミュニケーションデザイン会社。Web制作と、AIエージェント対応の診断・設計を行う。
## 主要なページ
- [サービス](https://www.untype.jp/service): 提供内容の一覧
- [ブログ](https://www.untype.jp/blog): エージェンティックWeb実装に関する記事
## Optional
- [会社概要](https://www.untype.jp/about): 沿革・所在地

## Optionalに置いたものは、読み手が文脈に余裕がないとき省いてよい、という合図になる。数万ページを書き写すファイルではない。「これは何のサイトで、要点はどこか」を一枚に畳む、それだけの道具だ。

llms.txtと混同されやすいもの

市場の「AI対応チェックリスト」は、AGENTS.mdをllms.txtと並べて載せがちだ。だが別物だ。AGENTS.mdはコードリポジトリのルートに置く、コーディングエージェント向けの取扱説明で、公開サイトを訪れて動くエージェントは読みに行かない。コーポレートサイトに置いても、誰も読まない。開発者向けドキュメントやSDKといった開発資産を持つ企業なら、リポジトリの側で効く。名前は似ているが、面が違う、とだけ押さえておけばいい。

二つの記述を、一枚で

意味を伝える二つの記述と、それぞれの読み手 木の名札(Schema.org)と、森の地図(llms.txt)。粒度も置き場所も読み手も違う。 Schema.org 個々の意味(エンティティ) 記述の単位:ページ内の要素 置き場所:各ページ(JSON-LD) 例:商品・価格・営業時間 主な読み手 検索エンジン/AIエージェント NLWeb(会話の材料) llms.txt サイトの全体像(地図) 記述の単位:サイト全体 置き場所:/llms.txt(公開) 例:何のサイトで、要点はどこか 主な読み手 コーディングエージェント RAG・MCP(検索エンジンは無視) 共通する問いは一つ。「その記述は、実態と一致しているか」。名札も地図も、現物とずれた瞬間に、無いより危うくなる。

二つに共通するのは、どちらも「自己申告」だという点だ。サイトが、自分について機械に語る。そして自己申告である以上、実態とずれる余地が常にある。ここが、この層のCheckが照らす場所になる。

この層で確かめること(観点だけ)

前回書いたとおり、この連載は各層を二段で書く。何を入れるか(Do)と、それが意図どおり入っているかを確かめる観点(Check)だ。意味の層でのDoは、ここまでに書いた。Schema.orgで個々の意味を、llms.txtでサイトの地図を、機械に読める形で差し出す。

では、それが意図どおりに備わっているかは、どの観点で見るか。四つ挙げる。合否をどこで切るかという判定基準は、ここには書かない。見るべき観点までを示す。

第一に、記述された意味が、実態と一致しているか。ここがこの層の急所だ。自己記述は、書いた瞬間から古びていく。価格を改定したのにJSON-LDは旧価格のまま。サービスを終了したのにllms.txtの地図には載ったまま。人間向けの表示は直したが、機械向けの記述を直し忘れる。この「表と裏のズレ」は、人間の目には見えにくく、エージェントの目にははっきり見える。誇張と陳腐化が混ざっていないか。

第二に、主要なエンティティとアクションが網羅されているか。機械に見せたい意味のうち、書き落としているものはないか。人間はナビゲーションを辿って見つけてくれるが、機械は書かれていないものを推測するか、見落とす。抜けは、存在しないことと同じになる。

第三に、llms.txtの記述が、サイトの実際の構造と食い違っていないか。地図が案内する先に、実際にその部屋があるか。

第四に、そもそも「誰のための記述か」を取り違えていないか。SEO順位を上げるつもりでllms.txtを積んでも、検索エンジンは読まない。読み手の想定を外した記述は、丁寧に作り込んでも空振りする。

この四つのうち、機械にすぐ任せられるものと、そうでないものがある。ファイルが在るか、書式が妥当か、必須の型が入っているか――こうした形式面は、Lighthouseのような道具がすでに自動でチェックする。だが「記述された意味が、実態と一致しているか」「誇張がないか」「読み手を取り違えていないか」は、サイトの中身と事業の実態を突き合わせなければ判断できない。形式が通ることと、意味が正しいことは、別のことだ。前者は機械に、後者は人に残る。この線引きが、次回以降の各層でも繰り返し出てくる。

次回

土台の「見る」を固めたら、次は動かす。第3回は「会話の層」、NLWebを扱う。静的に意味を差し出すだけだったサイトが、エージェントの問いに答える窓口になる。そしてその窓口は、今回整えたSchema.orgのデータをベクトルに変換して作られる。今回積んだ意味が、次回の会話の材料になる。名乗ったサイトが、応えるサイトになる話だ。

参考情報
山下 太郎

山下 太郎

代表取締役 / CEO

2000年、Webデザイナーとしてこの世界に飛び込み、フリーランスを経て2007年に株式会社アンタイプを創業。AI時代の到来とともに、効率だけを追うAI活用に違和感を覚えながら、それでも最前線でツールを使い続ける。企業のWebとコミュニケーションを設計する仕事を通じて、「人間らしさとは何か」を問い直す視点を発信し続けている。

View Profile arrow_outward

Related

あわせて読みたい

エージェンティックWeb実装ガイド 第1回:三番目の読者 ― Webサイトが「読まれる」から「使われる」へ
エージェンティックWeb
エージェンティックWeb

エージェンティックWeb実装ガイド 第1回:三番目の読者 ― Webサイトが「読まれる」から「使われる」へ

Webサイトの読者は、人間とクローラだけではなくなった。見て・操作し・取引する「三番目の読者」=AIエージェントである。連載「エージェンティックWeb実装ガイド」第1回は、これからのサイトに必要な層を一枚の地図として示す。

Lighthouseが「AIエージェントに読めるか」を監査し始めた — Agentic Browsingの構造と、8割が「すでに知っている仕事」である理由
Lighthouse
Lighthouse

Lighthouseが「AIエージェントに読めるか」を監査し始めた — Agentic Browsingの構造と、8割が「すでに知っている仕事」である理由

GoogleがLighthouseに標準搭載した新監査「Agentic Browsing」を解説。AIエージェントに読めるWebの条件、監査の8割が従来のアクセシビリティ対応の延長である理由、自社サイト実測で属性1個の修正から満点に至った過程を、実務の優先順位とともに整理。