Generative Engine Optimization (GEO)
生成エンジン最適化(GEO)は、AI検索エンジンが生成回答でコンテンツを取得、引用、出典表示するようにコンテンツを整える手法です。手法、根拠、指標について解説します。
生成エンジン最適化(GEO)とは、生成エンジン、つまり取得した情報源に基づいて回答を作成する生成AIシステムが、ウェブコンテンツを選択し、正確に引用して、出典を明記するようにコンテンツを整える手法です。Princeton Universityと共同研究機関のPranjal Aggarwalらは、Bing Chat、GoogleのSearch Generative Experience、Perplexityが検索に直接回答し始めた後、2023年11月の論文GEO:生成エンジン最適化でこの用語を導入し、同論文はKDD 2024で発表されました。ChatGPT検索(2024年10月)とGoogleのAI Overviews(2024年5月)によって、数億人の検索ユーザーに生成された回答が表示されるようになりました。また、ディープリサーチツールは、1つのレポートを作成するために数十ページを読み、引用します。生成された回答には順位を上げるリストがないため、可視性は、回答のどれだけがある情報源から得られたか、またその情報源がどれだけ目立つ形で引用されたかによって決まります。
生成エンジンが情報源を選ぶ仕組み#
生成エンジンとは、ウェブ規模で検索拡張生成(RAG)を基盤とする、オープンドメインの質問応答システムです。ユーザーの質問を1つ以上の検索クエリに書き換えます。GoogleはAI Modeでこの処理をquery fan-outと呼んでいます。次に、インデックスから候補ページを取得し、セマンティック検索とリランカーを使って各サブクエスチョンに答える箇所を選び、大規模言語モデル(LLM)に引用付きでその箇所から回答を作成させます。各段階が、ページが通過しなければならない関門です。
取得した箇所に回答の根拠を置くことは、エンジンがハルシネーションを減らす方法でもあります。そのため、数値、日付、情報源とともに事実を明確に述べるコンテンツは、歪曲せずに引用しやすくなります。
GEO論文で明らかになったこと#
Aggarwalらは、幅広い分野の9つのデータセットから抽出した約10,000件のクエリで構成されるGEO-benchを作成し、可視性を2つの方法で測定しました。1つは、回答が情報源から採用した単語数を引用の掲載位置に応じて重み付けする、位置調整済み単語数です。もう1つは、LLMが評価する主観的な印象スコアです。研究者らは9つの手法で情報源ページを書き換えた結果、信頼できる情報源の引用、引用文、統計情報を追加すると、可視性が最大40%向上する一方、従来の検索手法であるキーワードの詰め込みにはほとんど、またはまったく効果がないことを発見しました。通常の検索で順位が低いページほど、向上幅が大きくなりました。Perplexityでは、引用文の追加により位置調整済み単語数が約22%増え、統計情報の追加により主観的な印象が最大37%向上しました。
GEOとSEO、および関連用語#
SEOとGEOは、クロール可能なページ、明確な構成、有用なコンテンツという基盤を共有しています。GEOでは「このページは検索で上位に表示されるか」に加えて、「回答がこのページを引用するか、そして正しく引用するか」という問いも扱います。回答エンジン最適化(AEO)、AI検索最適化、LLM最適化(LLMO)は、現在同義語として使われています。プロンプトエンジニアリングは、ユーザーがモデルに送る指示を構成するもので、GEOからは把握できません。一方、RAGエンジニアリングはエンジン内部の検索器と生成器を構築するもので、GEOではブラックボックスとして扱います。
技術的なアクセス#
クローラーのルールが最初の関門を決めます。AI企業はモデルのトレーニング用と検索用に別々のクローラーを運用しているため、サイトは一方を拒否しながら、もう一方には掲載できます。OpenAIはこの目的で2つのクローラーを運用しています。GPTBotはトレーニングデータを収集し、OAI-SearchBotはChatGPT検索用にページをインデックスします。Google-Extendedは、Googleが同じrobots.txtから読み取る制御トークンです。Googlebotは引き続き検索とAI Overviewsのためにページを取得しますが、Google-Extended用のDisallowを指定すると、Geminiのトレーニングと根拠付けへの利用を停止できます。Pythonの標準ライブラリを使うと、エージェントと同じ方法でrobots.txtのポリシーを読み取れます。
from urllib.robotparser import RobotFileParser
# Opt out of model training while staying fetchable for AI search and classic search
robots_txt = """
User-agent: GPTBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: *
Allow: /
"""
parser = RobotFileParser()
parser.parse(robots_txt.splitlines())
for agent in ["GPTBot", "OAI-SearchBot", "Google-Extended", "Googlebot"]:
allowed = parser.can_fetch(agent, "/glossary/generative-engine-optimization-geo")
print(f"{agent}: {'allowed' if allowed else 'blocked'}")実行するとGPTBot: blocked、OAI-SearchBot: allowed、Google-Extended: blocked、Googlebot: allowedが出力されます。これにより、OpenAIとGeminiのトレーニングデータからは除外されながら、ChatGPT検索、Google検索、AI Overviewsの対象であり続けます。クローラーのルールに加えて、ページはサインインなしで読み込めること、XMLサイトマップに掲載されていること、記事、製品、ソフトウェアなどのエンティティについて正確なSchema.org構造化データを含むことが必要です。通常、構造化データはJSON-LD形式で記述します。Ultralytics Platformでは、同じアクセスルールがコンピュータービジョンのデータセットやプロジェクトにも適用されます。公開されたデータセットやプロジェクトは、サインインの有無にかかわらず、すべての訪問者がクリーンなURLからアクセスできるため、検索クローラーやAIアシスタントが取得できます。一方、非公開のものはサインインの背後に保持されます。
GEOの測定#
生成される回答は、表現、検索インデックス、モデルのバージョンによって変わります。そのため、チームは代表的な質問の固定セットを継続的に追跡し、各エンジンが引用するページ、その頻度、回答がページの内容を正しく表しているかを記録します。アシスタント経由の参照トラフィックは、chatgpt.comやperplexity.aiなどのドメインからの訪問としてアナリティクスに表示されます。検索エンジンも引用を直接報告するようになっています。2026年2月にパブリックプレビューとして公開されたBing Webmaster ToolsのAI Performanceレポートでは、Microsoft CopilotとBing AIの回答で各ページが引用された頻度と、そのページを取得した根拠付けクエリを確認できます。










