Tenten AIGEO
ブログに戻る
テクニカルAEO導入・実行

AIにMarkdown版コンテンツを届ける:/md エンドポイントとプレーンテキストのフォールバック実装

AIエンジンはHTMLを読み込む際、最初にレイアウト由来のノイズを取り除きますが、その過程で誤った段落を抽出することがあります。本記事では、各ページにAI向けのMarkdownエンドポイントとプレーンテキストのフォールバックを用意する方法を解説します。/md のルーティング、コンテントネゴシエーション、llms.txtによる階層化、curlを使ってAIクローラーが実際にコンテンツを取得できるか検証する手順まで取り上げます。

Tenten GEO 編集部公開日 2026-06-185 分で読めます
光を放つドキュメントから、複雑なHTMLとクリーンなMarkdownという2本のデータストリームが分かれ、遠方のAIを象徴する光輪へ流れ込んでいる。

AIエンジンがWebページを読み込むとき、最初にHTMLを分解します。ナビゲーションバー、サイドバー、Cookieの同意バナー、トラッキングスクリプトなどを除外し、本文だと判断したテキストだけを残すためです。しかし、この分解処理は誤ることがあり、サイト運営者からはどこで問題が起きたのか見えません。HTMLのセマンティックマークアップを磨き込み、モデルが毎回レイアウトを正しく推測してくれることに賭けるより、編集済みのMarkdown版を直接渡すほうが確実です。同じ内容でもレイアウトのノイズを除けば、モデルは構造を推測する必要がなくなり、引用箇所の抽出精度も安定します。

AIがHTMLよりMarkdownを読みやすい理由

鍵を握るのは、情報に対するノイズの比率です。一般的なSaaSの製品ページでは、HTMLソースが6,000〜7,000トークンに達する一方、実際のコンテンツはその一部にすぎません。残りはクラス名、埋め込みスタイル、SVGパス、解析スクリプトなどです。モデルは読み込んだ後、まずこれらを取り除き、回答に使える文章を探さなければなりません。Markdown版なら、同じ内容を元の数分の1まで圧縮できます。見出しは見出し、リストはリスト、要点は要点として明確に表現されます。構造そのものが意味を持つため、モデルが推測しなければならない余地も大幅に減ります。

これは回答エンジンへの対応で特に重要です。ChatGPT、Perplexity、Google AI Overviewsは回答を生成する際、候補ページから引用可能な段落を抽出します。ページがクリーンで、各段落が単体でも意味を成すほど、全文を正しく引用される可能性は高まります。私たちがクライアントを支援するなかでも、記事自体はよく書けているのに、何層ものdivやクライアント側でレンダリングされるコンポーネントに包まれ、モデルが文章の半分しか取得できないケースがよくあります。Markdownエンドポイントへ切り替えると、同じ段落を欠けることなく取得でき、引用が不自然な位置で途切れる問題も防げます。

/md エンドポイント:各ページに機械可読な複製を用意する

実装の基本は、公開ページごとに対応するMarkdown版を用意し、予測しやすいURLルールを設けることです。一般的な方法は2つあります。元のURLの末尾に .md を付ける方法(たとえば /blog/aeo-basics に対して /blog/aeo-basics.md)と、パスの末尾に /md を追加する方法です。どちらでも構いません。重要なのは、ルールに一貫性があり、URLを推測できることです。Next.jsのApp Routerでは、Route Handlerで実装できます。ルートファイルを作成し、HTMLページと同じコンテンツデータを読み込み、Content-Typeを text/markdown にして出力します。

  1. データソースを一本化する:HTMLページとMarkdownエンドポイントは、同じコンテンツ(MDX、データベース、コンテンツオブジェクトなど)を参照します。2つの原稿を別々に管理すると、いずれ内容がずれてしまいます。
  2. HTMLのheadに link rel=alternate type=text/markdown を記述し、機械可読版の場所をクローラーへ明示します。
  3. Markdownには本文だけを残す:見出し、段落、リスト、表、コードブロック、リンクを残し、ナビゲーション、フッター、関連記事、マーケティングバナーは除外します。
  4. 必要な出典情報を残す:ファイル冒頭のfront matterまたは先頭行のH1に、タイトル、元のURL、更新日を記載し、モデルが出典を識別しやすくします。
  5. 適切なキャッシュヘッダーを返し、アクセスのたびにオリジンサーバーへ問い合わせなくても、CDNからエンドポイントを配信できるようにします。

コンテントネゴシエーションで形式を自動的に切り替える

固定URLを用意するだけでなく、アクセス元に応じて同じURLから異なる形式を返すこともできます。判定に使えるのは、AcceptヘッダーとUser-Agentです。リクエストに Accept: text/markdown が含まれている場合、またはUser-Agentが既知のAIクローラー(GPTBot、ClaudeBot、PerplexityBot、Google-Extendedなど)に該当する場合は、ミドルウェア層でMarkdownルートへリライトします。通常のブラウザには従来どおりHTMLを返します。ユーザーには完全なWebページを、モデルにはクリーンなテキストを提供しながら、URLは一貫して同じままです。

図:同じURLでも、アクセス元がブラウザかAIクローラーかに応じて、HTMLまたはクリーンなMarkdownを返す仕組み。
コンテンツは同じでも形式は2つ。ブラウザにはHTMLを、AIクローラーにはクリーンなMarkdownを返します。

プレーンテキストのフォールバック:Markdownさえ過剰な場合に備える

エージェントやクローラーのなかには、Markdown記法を解析せず、プレーンテキストしか扱えないものもあります。また、音声アシスタントが参照元を要約する場合など、必要なのは最小限のコンテンツだけというケースもあります。そこで役立つのが、プレーンテキストのフォールバックです。作り方はMarkdownエンドポイントと同じですが、text/plain で出力します。見出しと段落は改行で区切り、リンクはテキストの後ろにURLを括弧で添えます。このように段階的なフォールバックを用意すれば、相手側の解析能力がどの水準でも、可読性のある形式を提供できます。

  • llms.txt:Webサイトのルートディレクトリに /llms.txt を配置します。重要なページと簡単な説明をMarkdownで一覧化し、モデル向けのナビゲーションマップとして機能させます。
  • llms-full.txt:主要なコンテンツをすべて1つのファイルに連結します。モデルがページを1件ずつクロールせず、一度にまとめて読み込みやすくなります。
  • ページ単位の .md エンドポイント:記事や製品ページごとに用意する、機械可読な複製です。
  • プレーンテキストのフォールバック:Markdownを解析できないツール向けの、最小限の text/plain です。

AIが本当に読み取れるか確認する方法

公開したら、自然に機能すると思い込まず、必ず検証してください。最も手早い方法は、curlでクローラーからのリクエストを再現することです。Accept: text/markdown を付けるか、AIクローラーのUser-Agentを指定し、返されるMarkdownがクリーンか、ステータスコードが200か、キャッシュヘッダーが正しいかを確認します。続いてサーバーログを調べ、GPTBotやClaudeBotなどがノイズの多いHTMLを取得し続けるのではなく、実際にMarkdownエンドポイントへアクセスしているかを確かめます。isitagentreadyのようなツールを使えば、エージェントにとってのページの読みやすさも短時間で確認できます。

AIに引用されるかどうかは、コンテンツをノイズなく読み取れるかに左右されます。Markdown版を提供すれば、処理のなかから「レイアウトを推測する」という工程そのものを取り除けます。Tenten GEO

サイト全体を一度に改修せず、まず1ページから始める

まずは検索流入の多いページと、AIに参照してほしい優先度の高いページを選び、.md エンドポイントとプレーンテキストのフォールバックを追加します。その後2〜4週間、AIクローラーの巡回状況を計測し、サイト全体へ展開するか判断してください。この進め方ならリスクを抑えられ、実際のログを根拠に社内の稟議や合意形成を進められます。自社ページがAIにとってどの程度読みやすく、どこに課題があるのかを先に把握したい場合は、Tenten GEOの30日間GEO監査で、こうした機械可読性の問題をページ単位で洗い出します。個別の状況について相談したい方は、/contact から30分間のGEO診断をご予約ください。

よくある質問

/md エンドポイントとは何ですか。なぜAI向けにMarkdown版のコンテンツを用意するのでしょうか。
/md エンドポイントとは、各ページに対応して用意する機械可読な複製で、クリーンなMarkdownを出力します。AIエンジンがHTMLを読む場合、ナビゲーションやスクリプトなどのノイズを先に取り除く必要があり、その過程で誤った段落を抽出することがあります。Markdownを直接提供すればレイアウト由来のノイズを排除でき、コンテンツが欠けることなく、正確に引用されやすくなります。
User-Agentに応じてAIクローラーへの応答を変えると、Googleからクローキングと見なされますか。
内容が同じで形式だけが異なる、つまりHTML版とMarkdown版のテキストが同一であれば、情報を隠して出し分けていることにはなりません。クローキングとは、クローラーとユーザーに実質的に異なるコンテンツを返す行為で、Googleのポリシーに反します。切り替えてよいのは形式であり、内容ではありません。
AIクローラーがMarkdownエンドポイントを実際に読み取ったか、どうすれば確認できますか。
curlで Accept: text/markdown を付けるか、AIクローラーのUser-Agentを指定し、レスポンスがクリーンなMarkdownで、ステータスコードが200であることを確認します。続いてサーバーログを調べ、GPTBotやClaudeBotなどがHTMLを取得し続けているのではなく、実際に対象のエンドポイントへアクセスしているかを確認してください。

次の一手へ

あなたのブランドはAIの回答にどれだけ登場していますか?

30分のGEO診断で、主要AIエンジンにおける可視性の課題と、優先して改善すべきポイントを確認します。

30分の診断を予約