000%

更新

NOTES · SEO / GEO / AEO15 · 2026.10

検索登録・インデックス・表示・流入を観測する

所有確認とサイトマップ送信後、URLごとのインデックス状態を読む。検索表示、クリック、到着ページを同条件で比較し、収集ログと訪問記録も見る。

§ 01SEO / GEO / AEO

検索ツールで管理するサイト範囲を決める

公開URLで新案内が開いても、Googleはまだ前の文書を持っていることがある。検索ツールの目的は、サーバーで直した内容と検索が実際に処理した内容の比較だ。登録有無と正規URLは資料処理状態を、表示とクリックはどの質問で発見・選択されたかを示す。値が異なるので、必要な修正も変わる。

Search Consoleのドメインプロパティはプロトコルとサブドメインを含む範囲を管理し、DNSで所有確認する。URLプレフィックスプロパティは指定プロトコル、ホスト、パスの接頭辞の範囲を管理する。実際の運用URLを含むプロパティを選び、案内された確認値を設定する。

所有確認はサイト管理権限の確認だ。その後サイトマップを送信し、URL検査で実際のインデックス状態を読む。ドメイン接続、所有確認、サイトマップ処理、文書登録を別々に記録すれば、残る段階が分かる。 プロパティ追加ガイドを基に運用範囲を決める。

§ 02SEO / GEO / AEO

検索ツールでURLごとの登録状態を確認する

Google Search Consoleは運用者が検索の収集、登録、表示を確認する道具だ。プロパティは管理対象のサイト範囲。所有確認済みドメインのプロパティを選ぶ。サイトマップを送信し、処理状態と最終読み取り時刻を確認する。重要な詳細URLをURL検査へ入れ、Googleが把握する登録状態、選択正規URL、最終クロール時刻を記録する。ライブテストは現在のアクセス確認用で、保存済みの登録状態とは分けて記す。

重要ページを修正したら、必要に応じて登録をリクエストする。送信・要求の完了と実際の登録は別の値にする。ページ登録レポートの除外理由を同じテンプレートごとにまとめ、共通問題を探す。robotsによる遮断ならアクセス設定、重複による正規URL選択ならcanonical、リダイレクト、内容重複を調べる。 URL検査ツールの案内を基に各結果を解釈する。

site:example.comの検索結果数を全登録数の基準値にしない。管理する公開正規URL一覧を分母とし、確認済みURLの状態を集計する。全件未確認なら「検査した20件中15件」のように範囲を示す。他の検索エンジンは、そのツールと実際の結果を別に記録する。

例えば詳細canonicalの修正後、Googleの選択URLも詳細へ変われば、アドレス処理の変化を確認できた。まだホームを選ぶなら、最終クロール日、詳細本文、内部リンクとサイトマップのURLを再照合する。登録後も対象質問で表示されなければ、その質問へ答える内容と実際の検索需要を見る。

§ 03SEO / GEO / AEO

表示・クリックと生成検索レポートを読む

表示回数は検索結果にページが出た回数、クリックはそこを押して移動した回数だ。検索パフォーマンスから、同じ期間、検索タイプ、国、端末条件で表示、クリック、検索語、到着ページを出力する。ページ値と質問テーマ別の変化を一緒に見る。表示が増えてクリックが変わらなければ、結果内の情報、タイトル、要約、検索意図との関係を見る。同ページの表示、クリック、検索語を比べれば、どの質問で変わったかが分かる。

2026年10月時点でGoogleの生成AIパフォーマンスレポートはAI OverviewsとAI Modeの表示を提供する。日付、ページ、国、端末の条件を記録し、通常検索レポートと分けて保管する。レポートがなければ提供条件、十分な表示量、生成機能への包含設定を確かめる。メニューがないことを0で入力しない。

ツールの報告範囲も記す。Google検索の生成表示、他AIサービスの引用、直接実行した質問の回答品質は、観測対象が違う。ダウンロード時に欠損記号が0へ変わる場合もあるので、元画面と出力資料の意味を照合する。 生成検索への包含設定は、プロパティでの適用範囲と継承範囲まで確認する。

§ 04SEO / GEO / AEO

流入・ボットログを補助資料として読む

リファラーは訪問直前のページやサービスのURL情報だ。分析ツールでは検索やAIサービスからの訪問のリファラー、到着ページ、その後の行動を見る。引用があっても訪問しないことがあり、リファラーが欠ける場合もある。訪問数は分析ツール、引用数は収集回答で別々に数える。コンバージョンは問い合わせや申込などサイトが目指す行動。イベントはその行動を分析ツールに記録する項目だ。どの操作で送るかを決め、実際の送信・完了と照合する。

サーバーログでは要求時刻、経路、状態、応答量、ユーザーエージェントを組み合わせて収集問題を探す。ボット名は偽装できるので、運営元のIP範囲や検証方法で照合する。要求成功は収集経路の証拠で、回答での引用は保存したAI応答で確認する。 OpenAIのボット案内で検索、学習、利用者要求の用途を区別してログを読む。

§ 05SEO / GEO / AEO

CTRと転換をコードで計算し、同じ範囲を比べる

次のmetrics.mjsをNode.js 22で使う。ratioには確定した分子・分母を渡す。0〜1の比率を返し、百分率表示には100を掛ける。分母0は測定値がないためnull。負数、小数、分母より大きい分子は集計エラーとして拒否する。

// Node.js 22。原文を読んだ評価者が入力した判定を集計する。 export function ratio(numerator, denominator) { if (![numerator, denominator].every(n => Number.isSafeInteger(n) && n >= 0) || numerator > denominator) throw new Error('Invalid counts'); return { numerator, denominator, rate: denominator === 0 ? null : numerator / denominator }; } export const keys = ['cited', 'supported', 'accurate', 'timely', 'relevant', 'complete']; function allClaims(values) { return values.includes(false) ? false : values.includes(null) ? null : true; } export function evaluate(rows) { const completed = rows.filter(r => r.status === 'complete'); for (const row of rows) { if (!['complete', 'failed'].includes(row.status)) throw new Error('Invalid status'); for (const key of ['questionId', 'questionVersion', 'service', 'mode', 'rawPath']) if (typeof row[key] !== 'string' || !row[key]) throw new Error('Missing context: ' + key); if (row.status === 'failed' && !row.failure) throw new Error('Missing failure'); } for (const row of completed) { for (const key of keys) { if (![true, false, null].includes(row[key])) throw new Error('Missing assessment: ' + key); if (!row.reasons?.[key]) throw new Error('Missing reason: ' + key); } if (!row.claims?.length) throw new Error('Missing claims'); for (const claim of row.claims) { if (!claim.text || !claim.reason) throw new Error('Missing claim evidence'); for (const key of ['supported', 'accurate']) if (![true, false, null].includes(claim[key])) throw new Error('Invalid claim'); if (claim.supported === true && (!claim.sourceUrl || !claim.quote)) throw new Error('Supported claim needs source and quote'); } for (const key of ['supported', 'accurate']) if (row[key] !== allClaims(row.claims.map(c => c[key]))) throw new Error('Claim summary mismatch'); } function metric(key) { const assessed = completed.filter(r => r[key] !== null); return { ...ratio(assessed.filter(r => r[key] === true).length, assessed.length), unknown: completed.length - assessed.length }; } return { attempts: rows.length, completed: completed.length, failed: rows.length - completed.length, metrics: Object.fromEntries(keys.map(key => [key, metric(key)])) }; } export function grouped(rows) { const groups = new Map(); for (const row of rows) { const id = JSON.stringify([row.questionId, row.questionVersion, row.service, row.mode, row.model ?? null]); groups.set(id, [...(groups.get(id) ?? []), row]); } return [...groups].map(([group, items]) => ({ group: JSON.parse(group), ...evaluate(items) })); }

同じフォルダーでnode --input-type=module -e "import {ratio} from './metrics.mjs'; console.log(ratio(50,1000),ratio(4,40),ratio(0,0))"を実行する。rateは順に0.05、0.1、null。前二つは架空のCTRとセッション転換率だ。申込数/訪問数など100%を超え得る別指標には、そのままこの関数を使わない。

evaluateとgroupedは次のAI評価で使う。架空回答examplesはその章のassessment-fixture.mjsから取る。statusは応答完了有無、六判定は引用、裏づけ、正確性、最新性、適合性、十分性を表す。失敗数と各判定の未確認を別に出す。

分析ツールで期間、国、端末、到着ページを合わせて比較する。リファラーなし、同意せず追跡されない訪問、検索画面で答えを得て訪問しない場合を考慮する。集計変化が一つのコード変更の効果か判断するには、季節性、広告、新内容、外部報道など同時変化を見る。

ratioが分母0にnullを返すのは、表示のないページのCTRを0%とすると、タイトルを直す問題に見えるためだ。表示0なら先に発見、登録、需要を調べる。表示1,000でクリック0なら、検索結果のタイトル、回答、質問への適合を見る。計算で二つを分ければ、次の修正も変わる。

§ 06SEO / GEO / AEO

レポートの日付・正規URL・集計単位を合わせる

Search Consoleの生成検索パフォーマンスレポートは、AI OverviewsとAI Modeの表示を扱う。ページ軸では主にcanonical URLへ成果を割り当て、日付はPacific Time(PT)を使う。サーバーログの要求URLと韓国日付をそのまま合算すると、同じ訪問を別の日やURLへ割り当てることがある。 レポートの定義

例えばPTの2026年10月24日は夏時間のUTC−07:00だ。韓国では10月24日16:00から10月25日16:00直前までに当たる。PTの冬の標準時はUTC−08:00で韓国との差は17時間。全日付に固定16時間を足さず、America/Los_Angelesの当日の境界を使う。

一つの結果画面に同じプロパティのA・B二ページが出たとする。プロパティのグラフは1回、ページ表ではAに1回、Bに1回と数え得る。行の合計は2回でもグラフは1回。集計単位が違うので、同じ単位へ合わせて比較する。

UTM付きURLがログに残り、検索レポートは正規URLへ合算するなら、要求URLと正規URLの両方を保持する。キャンペーン別転換はログの値、検索成果はレポートのcanonical基準で読む。未確認記号が出力時に0になる場合も元表示と照合する。

10月24日に画像応答が小さくなったら、まずその日のファイルバイトと読込結果を残す。その後の検索レポートは同じページ、検索語、端末、国の範囲で比べる。画像修正前後にタイトルやキャンペーンも変われば、表示・クリックにはそれも混ざる。応答ファイル、ページ体験、検索流入の変化を別列にすれば、次の修正の根拠を具体的に読める。

— FIN —