結論
ChatGPTに「おすすめのクレジットカードを教えて」と1回聞いたときの会話JSONを解析したところ、fan-outクエリは3本、検索で集まった候補URLは36件、実際に引用されたURLは4件でした。候補のうち14件はアフィリエイト比較メディア(価格.com、マイベスト、みんかぶ等)でしたが、引用はゼロです。引用された4件はすべてカード会社の公式ドメインでした。
さらに、このログにはページ本文を取得するツール呼び出しが1件も記録されていません。回答に書かれた年会費・還元率・年齢制限は、すべて検索結果のスニペット内に文字列として存在します。本文を読まなければ書けない事実は、回答に1つもありませんでした。
そして引用された2URLは、スニペットが空でした。事実を供給したページと、リンクが張られたページが別だったということです。
つまり検索結果に載ることと、AIの回答で引用されることは別の関門です。この記事は標本1件の観測記録ですが、その1件の中身をフィールド名まで開示します。
Figure
1つの質問が通過した4つの関門
3
fan-outクエリ
海外報告は平均8.5本
36
候補URL
14ドメイン
0
開かれたページ
スニペットのみで判断
4
引用URL
2ドメイン・すべて公式
何を見たのか
ChatGPTの会話は、画面に見えている本文だけでなく、モデルが検索ツールに投げたクエリや、返ってきたURLの一覧まで含めてJSONで保持されています。ブラウザの開発者ツールでNetworkタブを開き、会話IDでフィルタして conversation のレスポンスを見ると、この構造が取得できます。
見るべきフィールドは決まっています。
| 見たいもの | フィールド |
|---|---|
| fan-outクエリ | recipient が web.run のメッセージの content.text、および metadata.search_model_queries.queries |
| 検索で返った候補URL | metadata.search_result_groups[].entries[] の url / title / snippet / pub_date |
| 候補の識別子 | 同 entries[].ref_id.ref_index。引用側の refs[] と突き合わせる鍵 |
| 本文を取得したページ | 同じcodeパート内の open_url / find 呼び出し |
| 回答に引用されたURL | 最終メッセージの metadata.content_references[] |
| 参照を許可されたURL全体 | safe_urls |
search_model_queries を使う手口自体は海外のGEO実務者が2025年から共有しているもので、目新しくはありません。この記事の主題は、その先——候補URLがどう脱落して引用に至るか——です。
Figure
候補から引用までの脱落
Step 1
質問 1件
おすすめのクレジットカードを教えて
Step 2
fan-out 3本
モデルがクエリを書き換えて展開
ここで落ちると ブランド名が入らない商材はここで対象外
Step 3
候補 36URL
14ドメインから収集
ここで落ちると 検索で拾われなければ以降に進めない
Step 4
評価
スニペットのみで判定
ここで落ちると 冒頭に答えが無いページはここで落ちる
Step 5
引用 4URL
2ドメイン。すべて公式サイト
fan-outクエリの実物
ログには2段階が記録されていました。まずユーザーの発話がそのまま検索ツールに渡され、そのあとモデルが書き換えた3本が投げられています。
# 段1: recipient "web" — ユーザー発話をそのまま渡す
search("おすすめのクレジットカードを教えて")
# 段2: recipient "web.run" — 書き換えて3本に展開(これがfan-out)
fast|2026 Japan best credit cards annual fee points JCB 三井住友 ゴールド エポス 楽天
fast|2026 三井住友カード ゴールド NL 100万円 修行 年会費 永年無料 公式
fast|2026 JCB CARD W 還元率 公式
同じ3本が search_model_queries.queries にも入っており、これが実際に検索された文字列で確定します。読みどころは4つあります。
1. すべてに「2026」が自動で付いている。 ユーザーは年を言っていません。時点表記を持たないページは、この付与された条件と噛み合いにくくなります。
2. ユーザーが言っていないブランド名をモデルが注入している。 JCB・三井住友・エポス・楽天は質問文に存在しません。モデルの事前知識から出てきています。つまり候補ブランドはfan-out前の時点で決まっており、ここに名前が入らない商材は検索すらされません。
3. 2本目と3本目に「公式」が付いている。 これが後述する引用結果を直接説明します。
4. 1本目は英日混在。 Japan best credit cards annual fee points という英語のフレームに日本語のブランド名が混ざっています。日本語だけを想定した対策では届かない領域があることを示唆します。
なお海外では、GPT-5.4は1プロンプトあたり平均8.5本のfan-outクエリを出すという調査(Writesonic、NO-BS Marketplace経由)が報告されており、今回の3本は明らかに少数です。日本語であること、無料プランであること、低レイテンシを示す fast| プレフィックスが付いていることのいずれか(または複合)が効いている可能性がありますが、標本1件では切り分けできません。
引用されたドメイン、されなかったドメイン
候補36件の内訳と引用結果です。
| ドメイン | 候補 | 引用 |
|---|---|---|
| smbc-card.com(qa. 含む) | 13 | 2 |
| jcb.co.jp | 8 | 2 |
| jcb-card.jp | 1 | 0 |
| kakaku.com | 3 | 0 |
| my-best.com | 2 | 0 |
| minkabu.jp / exidea.co.jp / kakakumag.com ほか9ドメイン | 各1 | 0 |
比較メディアは14件が候補に入りながら、引用はゼロでした。 価格.com、マイベスト、みんかぶ、HonNe——このジャンルの検索上位常連が、候補リストには載ったまま回答には一切現れていません。
原因はfan-outクエリの側にあります。3本のうち2本に「公式」が付いており、クエリ設計の段階で公式サイト優先のバイアスが入っています。検索結果に出ることと引用されることが別だという主張の、かなり素直な実例です。
Ahrefsが2026年4月に公開した140万プロンプトの調査では、取得された約3300万URLのうち引用されたのは約50%(2340万URL)とされています。ただし同調査は公式サイトと第三者の比較メディアを分けた数値を出していません。今回の観測は、その空白部分に対する標本1件ぶんのデータになります。
引用は3階層あり、見え方がまったく違う
content_references[] の type によって、読者から見える形が変わります。ここは実務上いちばん効く発見でした。
type | 画面上の見た目 | 件数 |
|---|---|---|
url | 見出し直下の独立した青リンク1行 | 2 |
grouped_webpages | 箇条書き末尾の小さい灰色のピル(例: SMBCカード +1) | 2 |
sources_footnote | 回答末尾の出典欄 | 1(内側に出典2件) |
hidden | 何も表示されない | 1 |
各参照の alt フィールドがそのままレンダリングされます。ピルに出る文字列は attribution、末尾の「+1」は supporting_websites の件数です。
狙う価値があるのは url 型だけです。見出しの直下に全幅の青字で置かれ、事実上「公式サイトへどうぞ」というCTAとして機能します。grouped_webpages のピルは幅が数十ピクセルしかなく、同じ「引用された」でもクリックの期待値は桁が違います。AI検索の被引用を測るとき、件数だけを数えると実態を見誤ります。
Figure
被引用のカウント方法
やること
- content_references の type ごとに分けて記録する
- url 型(見出し直下リンク)を主要KPIに置く
- utm_source=chatgpt.com の流入と突き合わせる
やらなくていいこと
- 引用件数を合計値だけで見る
- ピル表示を通常のリンクと同じ1件として数える
- sources_footnote への掲載を成果とみなす
引用先と情報源は、別のURLだった
引用された4URLを候補一覧と ref_index で突き合わせると、妙なことが起きています。見出し直下の青リンク(url 型)で引用された2件は、スニペットが空でした。
| ref | URL | snippet |
|---|---|---|
| 1 | smbc-card.com/nyukai/card/gold-numberless.jsp | 空 |
| 2 | jcb.co.jp/promotion/ordercard/w/ | 空 |
しかもこの2件は、候補一覧の最終スナップショットに含まれていません。検索直後の先行スナップショット(こちらは12件すべて snippet が空)にだけ存在します。この2ページの中身は、スニペットとしてもモデルに渡っていない。
では回答の年会費や還元率はどこから来たのか。grouped_webpages の中身が答えです。
| 画面の表示 | 内訳 |
|---|---|
SMBCカード +1 | ref 1(空・パラメータ無し)+ ref 8(スニペットあり・?dk=hp_083_0022201 付き) |
JCB +1 | ref 2(空・/promotion/ordercard/w/)+ ref 10(スニペットあり・/promotion/tstosab/w.html) |
ref 1 と ref 8 は同じページで、違いはトラッキングパラメータの有無だけです。つまりモデルは、事実はパラメータ付きURLのスニペットから取り、リンクはパラメータ無しの正規URLに張り直しています。
Figure
1つの引用の中で役割が分かれている
情報を供給したURL
ref 8 / ref 10
- スニペットあり
- 年会費・還元率の文字列はここ
- トラッキングパラメータ付き
- 画面には出ない
リンクが張られたURL
ref 1 / ref 2
- スニペットは空
- 本文もスニペットも渡っていない
- パラメータ無しの正規URL
- 読者が見るのはこちら
実務上の意味は2つです。
1. 被引用の計測がずれる。 引用URLだけを数えると、実際に読まれたページを取りこぼします。逆に、引用に出たURLが情報を提供したとは限りません。
2. URLの正規化が効く。 パラメータ違いで複数のURLが候補に入っても、引用は1本に寄せられました。寄せ先を自分で決めておく価値があります(canonical・内部リンクの統一)。スニペット対策とは別の軸です。
そしてもう一点。比較メディア14件のスニペットは、固有の内容が回答に1文字も残っていません。 候補に入り、スニペットまで渡り、それでも何も採用されなかった。候補入りは通過点にすぎない、ということです。
アンカーテキストは自分で決められない
引用リンクの表示文字列は、ページのtitleタグではありませんでした。
- 実ページのタイトル(
item.title):ゴールドカードなら三井住友カード ゴールド(NL)|三井住友VISAカード - 実際に表示された文字列(
alt/title):三井住友カード ゴールド(NL)公式
モデルが文脈に合わせて短縮・命名し直しています。自サイトのアンカーテキストを自分で制御できないということです。titleタグに情報を詰めても、この段階は通過しません。
ついでに確認できた3点
回答の個人化に出典表示がない。 今回の回答には、ユーザーの年齢や家計に関する情報が使われていました。会話内の model_set_context は空で、末尾に type: "hidden" の参照が1件付いています。メモリ由来の個人情報が、読者からは出典なしに見える形で回答に混ざっています。同じ質問でもユーザーごとに回答が変わるため、AI検索の「順位」は原理的に固定できません。
このターンで広告が配信されている。 ユーザーメッセージの metadata に ad_delivered: true が記録されていました。
引用URLにはすべて ?utm_source=chatgpt.com が付く。 自サイトが引用されたかどうかは、GA4でこのパラメータを見れば計測できます。被引用の追跡は、ログ解析を待たずに今日から始められます。
海外の先行事例との差分
fan-outクエリの抽出手法自体は海外で広く共有されています。一方で、2026年に入ってから「GPT-5.3が既定になって以降、会話JSONからクエリデータが見えなくなった」という報告が出ていました。
今回の観測は、それと食い違います。内部スラッグ gpt-5-6 と記録されたセッションで、search_model_queries は正常に取得できました。 表示条件が変わったのか、いったん隠されたものが戻ったのかは、標本1件では判断できません。ただし「もう取れない」と諦める前に、自分で1回確認する価値はあります。
先行事例の多くはfan-outクエリの抽出までで止まっており、候補URL・本文取得の有無・引用タイプまで一続きで追った記録は見当たりませんでした。この記事の主眼はそこにあります。
この観測から言えること
このログ内で確定している事実は次のとおりです。
- fan-outクエリの文字列と、そこに「公式」「2026」が付与されていたこと
- 候補36URLの全リストと、そのうち引用された4URLの特定
- 本文取得のツール呼び出しが記録されていないこと。加えて、回答の事実がすべてスニペット内の文字列で説明できること
- 引用が4つのタイプに分かれ、表示形式が異なること
url型で引用された2件のスニペットが空で、事実は同一ページの別URL(パラメータ付き)から供給されていたこと
標本は1件です。 また会話JSONはクライアント側の記録なので、snippet は末尾が … で切られた表示用の値であり、検索バックエンドがそれ以外の本文をモデルへ渡していないことまでは確認できません。本記事はChatGPTの挙動の記録であり、クレジットカードの内容を検証したものではありません。
手順
- ChatGPTで、検索が走りそうな質問(ブランド名が存在する商材の比較・推薦)を1回投げる
- ブラウザの開発者ツールでNetworkタブを開き、URL内の会話IDでフィルタする
conversationのレスポンスJSONを保存するsearch_model_queriesでfan-outクエリ、search_result_groupsで候補URL、content_referencesで引用URLを取り出す- 候補と引用の差、および引用の
typeの内訳を記録する
これを自社カテゴリで数十件ためると、「どのクエリ形状なら自社が候補に入るのか」が見えてきます。上位表示とAI引用が切り離されている以上、順位計測とは別に、この経路を測る必要があります。
よくある質問
Q. 自分のサイトが引用されたかどうかを、ログ解析なしで知る方法はありますか。
A. あります。ChatGPTが回答内に出すリンクには ?utm_source=chatgpt.com が付くため、GA4で参照元を絞り込めば流入として計測できます。ただしこれは「引用され、かつクリックされた」ときだけ検知できる指標です。引用されたが読者がクリックしなかったケースは拾えません。
Q. fan-outクエリが取得できないという情報を見ました。
A. 2026年に入ってから「GPT-5.3が既定になって以降、会話JSONからクエリデータが見えなくなった」という報告が海外で出ています。ただし本記事の観測では、内部スラッグ gpt-5-6 と記録されたセッションで search_model_queries を取得できました。取得可否は時期やモデルによって変わる可能性があるため、諦める前に一度自分で確認してください。
Q. 引用されるにはページ本文を充実させればよいのですか。
A. 今回のログでは、モデルがページ本文を取得したツール呼び出しが1件も記録されていませんでした。回答の事実はすべてスニペット内の文字列で説明でき、本文を読まなければ書けない記述はありません。本文をいくら厚くしても、スニペットに現れる範囲で答えが完結していなければ、候補に入ったまま落ちます。まず冒頭を点検してください。
ただしスニペットを切り出すのは検索エンジンで、元になるのは本文です。「本文が無駄」ではなく、厚みが効くのは冒頭がスニペットとして機能したあと、という順序の話です。
Q. 引用されたURLと、情報源のURLが違うことはありますか。
A. 今回はそうなっていました。url 型で引用された2件はスニペットが空で、年会費や還元率の文字列は同じページのパラメータ付きURL(?dk=...)のスニペットに入っていました。モデルは事実を後者から取り、リンクは前者に張っています。被引用を数えるときは、引用URLと供給元URLを分けて記録してください。
Q. 標本1件の結果をどこまで信じてよいですか。
A. 「この条件でこう動いた」という存在証明としては使えますが、比率の一般化には使えません。fan-outが3本だったこと、比較メディアの引用がゼロだったことは、いずれも別ジャンル・別言語・別プランで再現するとは限りません。自社カテゴリで同じ手順を数十件ためて、自分のデータで判断してください。
Sources · 一次情報
この記事は一次情報をもとに作成し、公開前に自動検査を通しています。作成の手順と訂正の方針は運営者情報に記載しています。
Share
XでポストはてなブックマークLINEで送る