SEOの改善では、サーチコンソールで「どの検索語句で、どれだけ表示・クリックされたか」を確認し、GA4で「流入後にどう行動し、成果につながったか」を確認します。
ただ、2つのツールの画面を行き来しながら記事ごとに数字を突き合わせる作業は手間がかかり、改善の優先順位を付けるまでに時間がかかりがちです。
サーチコンソールとGA4のデータを1か所に集め、生成AIに分析させれば、「検索 → 流入 → 行動 → コンバージョン」の流れをまとめて把握できます。
本記事では、サーチコンソールとGA4のデータをBigQueryに書き出し、Claudeに接続してSEOを分析する方法を解説します。
まずClaudeでできる分析の例を紹介し、その後で環境の構築手順を説明します。手順どおりに設定すれば、Claudeに日本語で依頼するだけで、リライト候補の抽出と改善方針の提案まで行える状態になります。
ClaudeでサーチコンソールとGA4を分析する仕組み
全体の流れは次のとおりです。
- GA4(流入後の行動やコンバージョン)とサーチコンソール(表示回数・クリック数・掲載順位)のデータを、Googleのデータウェアハウスである「BigQuery」に毎日自動で書き出す
- BigQueryをClaudeのコネクタとして接続する
- Claudeが、BigQueryに対してSQLを自ら作成・実行し、その結果をもとに回答する

環境の全体像
GA4とサーチコンソールはどちらもGoogleのプロダクトのため、BigQueryへの書き出しは管理画面の設定だけで行えます。データを転送するための外部のツールは必要ありません。
ClaudeとBigQueryの接続には「MCP(Model Context Protocol)」という仕組みを使います。MCPは、ClaudeなどのAIが外部のデータベースやAPIとやり取りするための標準規格です。
接続後は、人がデータを書き出してAIに渡す必要はなく、AIがデータベースの構造を読み取り、必要なデータを自ら抽出します。
必要な権限とツール
以下は2026年10月時点の情報です。
- Google Cloud のプロジェクト:請求先アカウントを設定(課金を有効に)したプロジェクトが必要です。サーチコンソールの書き出しは、請求先を設定したプロジェクトが前提です。BigQueryには毎月10GiBのストレージと1TiBのクエリ処理までの無料枠があり、超えた分に料金がかかります(BigQueryの料金(別タブで開く))
- GA4:プロパティの編集者以上の権限と、BigQueryのプロジェクトのオーナー権限を持つGoogleアカウントが必要です
- サーチコンソール:一括データエクスポートを開始するには、プロパティの所有者権限が必要です
- Claude:BigQueryをコネクタとして接続し、分析に使います。コネクタの一覧(ディレクトリ)にあるコネクタは、無料プランを含むすべてのユーザーが利用できます(Use connectors to extend Claude’s capabilities(別タブで開く))
社内で権限が分かれている場合は、Google Cloud、GA4、サーチコンソールのそれぞれの管理者に、事前に協力を依頼しておくと円滑です。
ClaudeでできるSEO分析の例
環境を整えると、次のような分析を日本語の指示だけで行えます。環境の作り方と、分析の前提をClaudeのプロジェクトに書く方法は、後半の「サーチコンソールとGA4をBigQueryにつなぐ手順」で解説します。
CTRが低く直帰率が高い記事のリライト方針を提案させる
プロンプト例
接続しているBigQueryのGA4データとサーチコンソールデータを掛け合わせて、「検索表示回数は多いのに、クリック率(CTR)が低く、かつサイト内での直帰率が高い記事」を抽出し、それぞれのリライト方針を提案してください。
Claudeはデータセットの構造を確認したうえでSQLを生成・実行し、条件に合う記事とリライト方針をレポートとしてまとめます。

分析結果の画面(デモ用のデータ。レポートのサンプル(別タブで開く))
GA4の直帰率は、旧来のユニバーサルアナリティクスの「1ページだけ見て離脱した割合」とは定義が異なります。GA4では、10秒以上続いた、キーイベントが発生した、2ページ以上閲覧した、のいずれも満たさなかったセッションの割合を指します(エンゲージメント率と直帰率(別タブで開く))。
掲載順位11〜20位の「あと一歩」のページを探す
表示回数が多いのに検索結果の2ページ目にとどまっているページは、少しの改善で1ページ目に入り、クリックが大きく増える可能性があります。
プロンプト例
直近28日で、表示回数が多く、平均掲載順位が11〜20位のページを抽出してください。ページごとに、表示回数の多い検索語句の上位5件と、GA4のエンゲージメント率も並べ、1ページ目に入るために補うべき内容を提案してください。
検索語句ごとの順位を見ると、記事の主題とずれた語句で表示されているのか、主題どおりの語句で競り負けているのかが分かり、加筆の方向を決めやすくなります。
検索流入はあるがコンバージョンにつながらないページを探す
クリックは集まっているのに、資料請求や問い合わせにつながらないページは、記事の内容よりも、次の行動への導線に課題があることが多くあります。
プロンプト例
サーチコンソールのクリック数が多い上位30ページについて、GA4でそのページをランディングページとしたセッションのコンバージョン率を出してください。サイト平均より大きく低いページを挙げ、検索語句から読み取れる読者の目的と、ページ内の導線の改善案を提案してください。
検索順位やCTRが下がったページを見つける
プロンプト例
直近28日とその前の28日を比べて、クリック数が大きく減ったページを10件挙げてください。表示回数・CTR・平均掲載順位のどれが変わったのかを分けて示し、考えられる原因を整理してください。
クリック数の減少が、表示回数の減少(検索需要の変化)によるものか、順位の低下によるものか、CTRの低下(検索結果での見え方の変化)によるものかで、取るべき対策は異なります。4つの型の見分け方と原因ごとの対処は、「検索順位が下がった原因の調べ方(別タブで開く)」で解説しています。
検索結果にAIの回答が表示される検索語では、順位が変わらなくてもCTRが下がることがあります。AIの回答に自社サイトが引用されているかの確かめ方は、「LLMOの調べ方|自社サイトがAIの回答に引用されているか確認する方法(別タブで開く)」で解説しています。
結果が正しいか判断できないときは、「どのような手順で集計したか説明してください」と依頼すると、使ったテーブルや集計の条件を確認できます。
なお、BigQuery MCP サーバーには、クエリの処理時間が初期設定で3分まで、結果は最大3,000行までといった制限があります。大量の明細をそのまま取得するのではなく、集計した結果を返すよう依頼するのが確実です。
サーチコンソールとGA4をBigQueryにつなぐ手順
ここからは、具体的な構築手順を解説します。設定を終えてから最初のデータが届くまでに、GA4は24時間以内、サーチコンソールは最大48時間かかります。
手順1:Google Cloud のプロジェクトを準備する
- Google Cloud コンソール(別タブで開く)にログインし、新しいプロジェクトを作成します(既存のプロジェクトを使う場合は選択します)
- プロジェクトに請求先アカウントをリンクし、課金を有効にします。新しいプロジェクトを作成すると、リンクする請求先アカウントを選ぶよう求められます。請求先アカウントがない場合は、作成してからリンクします(プロジェクトの課金を有効にする(別タブで開く))
- 「APIとサービス」→「有効なAPIとサービス」を開き、「BigQuery API」と「BigQuery Storage API」が有効になっているか確認します。有効になっていなければ、「+ APIとサービスの有効化」から有効にします
- プロジェクトの設定ページで「プロジェクト ID」を確認し、控えておきます。手順3で使います(プロジェクト番号ではありません)
GA4のデータは、課金を有効にしていない「BigQuery サンドボックス」にも書き出せます。ただし、サンドボックスではテーブルが60日で自動的に削除されるなどの制限があります(BigQuery サンドボックス(別タブで開く))。
サーチコンソールの書き出しには課金の設定が必要なため、両方のデータを同じプロジェクトに集めるなら、最初から課金を有効にしておくのが確実です。
手順2:GA4のデータをBigQueryに書き出す
GA4の管理画面で、BigQueryへのリンクを設定します。2026年10月時点の手順は次のとおりです(BigQuery Export を設定する(別タブで開く))。
- GA4の「管理」→「サービス間のリンク設定」→「BigQuery のリンク」を開きます
- 「リンク」をクリックし、「BigQuery プロジェクトを選択」から手順1のプロジェクトを選んで「確認」をクリックします
- データのロケーションを選び、「次へ」をクリックします
- 必要に応じて「データ ストリームとイベントを設定」で、書き出すデータストリームと、書き出しから除外するイベントを選びます
- 書き出しの頻度で「毎日」(1日1回)を選び、「次へ」をクリックします
- 設定を確認し、「送信」をクリックします

GA4の「BigQuery のリンク」の画面(2026年10月時点の画面)
データのロケーションは、後から変更するのが難しい設定です。
手順3のサーチコンソールでも同じロケーションを選んでおきます。ロケーションが異なると、2つのデータを1つのクエリでそのまま結合できない場合があります。
社内の規程でデータの保管場所が決まっている場合は、それに従います。
書き出しの頻度には「毎日」と「ストリーミング」(継続的)があります。SEOの分析は日単位で十分なため、まずは「毎日」だけで問題ありません。
ストリーミングは当日のデータを数分以内に書き出せますが、BigQuery側で追加の費用がかかります(BigQuery Export(別タブで開く))。

書き出しの頻度の設定(2026年10月時点の画面)
設定後は、次のようにデータが届きます(BigQuery Export スキーマ(別タブで開く))。
- データセット:
analytics_{プロパティID}という名前で作成されます。プロパティIDは、GA4のプロパティの設定で確認できます - テーブル:
events_YYYYMMDDという名前で、1日1つ作成されます。1行が1つのイベントで、ページのURL(page_location)などのパラメータはevent_paramsの中に入っています - 届くまでの時間:リンクの完了から24時間以内に書き出しが始まります。その後は、前日のデータが毎日、通常はレポートのタイムゾーンの午後の早い時間帯に書き出されます
なお、標準(無料)のGA4プロパティでは、1日に書き出せるイベントは100万件までです。上限を継続的に超えると、日次の書き出しが一時停止されます。
上限を超えそうな場合は、「データ ストリームとイベントを設定」で不要なイベントを除外します。
手順3:サーチコンソールのデータをBigQueryに書き出す
サーチコンソールの「一括データエクスポート」を設定します。Google Cloud側でサーチコンソールに書き込みの権限を与えてから、サーチコンソール側で書き出し先を指定します。
2026年10月時点の手順は次のとおりです(新しい一括データのエクスポートを開始する(別タブで開く))。
Google Cloud でサーチコンソールに権限を与える
- Google Cloud コンソールで、手順1のプロジェクトを開きます
- サイドバーの「IAM と管理」を開き、「+ アクセスを許可」をクリックします
- 「新しいプリンシパル」に、次のサービスアカウントを貼り付けます
search-console-data-export@system.gserviceaccount.com
- 次の2つのロールを付与し、「保存」をクリックします
- BigQuery ジョブユーザー(bigquery.jobUser)
- BigQuery データ編集者(bigquery.dataEditor)
サーチコンソールで書き出し先を指定する
- サーチコンソールで対象のプロパティを開き、「設定」→「一括データ エクスポート」を開きます
- 「Cloud プロジェクト ID」に、手順1で控えたプロジェクトIDを入力します
- データセット名を決めます。初期値は
searchconsoleです。複数のプロパティを同じプロジェクトに書き出す場合は、プロパティごとに異なる名前にします。その場合も、名前はsearchconsoleで始めます - データセットの場所を選びます。手順2のGA4と同じロケーションにします。書き出しの開始後に変更するのは難しくなります
- 「続行」をクリックして内容を確認し、書き出しを開始します

設定後の「一括データ エクスポート」の画面(2026年10月時点の画面)
設定後は、次のようにデータが届きます(テーブルのガイドラインとリファレンス(別タブで開く))。
- searchdata_site_impression:プロパティ単位で集計したデータです。サイト全体の検索語句の分析に使います
- searchdata_url_impression:URL単位で集計したデータです。ページの URL(
url)と検索語句(query)ごとの表示回数(impressions)・クリック数(clicks)などが入っています。GA4と組み合わせる分析では、主にこのテーブルを使います - ExportLog:書き出しが成功した日の記録です。失敗した書き出しは記録されません
- 届くまでの時間:設定から最大48時間以内に、最初の書き出しが行われます。最初の書き出しには、当日のデータが含まれます
サーチコンソールの書き出しは、設定した日以降のデータが対象で、過去のデータはさかのぼって書き出されません。設定前の期間は、サーチコンソールのレポートやAPIで確認します。
分析に使えるデータが貯まるまで時間がかかるため、早めに設定しておくことをおすすめします。
また、データは期限を設定しない限り蓄積され続けます。ストレージの費用を抑えたい場合は、パーティションの有効期限を設定します。
有効期限は14日以上にし、列の追加などテーブルの構造は変更しないでください。構造を変えると、書き出しが失敗します。
なお、一括データエクスポートには、匿名化されたクエリ(ごく少数のユーザーしか検索していない語句)の検索語句は含まれません(Search Console データの BigQuery への一括データ エクスポートについて(別タブで開く))。これらは query が空の行(is_anonymized_query が true)として記録されるため、検索語句ごとに集計するときは、この行を除くか別に扱います。
手順4:BigQueryをClaudeのコネクタとして接続する
BigQueryにデータが届いたら、Claudeに接続します。
Claudeのコネクタの一覧には「Google Cloud BigQuery」が用意されています。接続先は、Google Cloudが提供する「BigQuery リモート MCP サーバー」です。
2026年10月時点では、BigQuery APIを有効にすると、このMCPサーバーも利用できる状態になります(Use the BigQuery MCP server(別タブで開く))。
ClaudeからBigQueryにアクセスするには、Google Cloudで「OAuth クライアント」を作成し、「OAuth クライアント ID」と「OAuth クライアント シークレット」を用意します。
Google Cloud で OAuth クライアントを作成する
- 手順1のプロジェクトで、Google Auth Platform の「クライアント」(別タブで開く)のページを開きます
- 「クライアントを作成」をクリックします
- アプリケーションの種類で「ウェブ アプリケーション」を選びます
- 名前を入力します(例:BigQuery MCP)
- 「承認済みのリダイレクト URI」に
https://claude.ai/api/mcp/auth_callbackを追加します(Authentication for connectors(別タブで開く)) - 「作成」をクリックします
作成すると、クライアント IDとクライアント シークレットが表示されます。クライアント シークレットを確認・ダウンロードできるのは作成時のみのため、安全な場所に控えておきます(OAuth クライアントを管理する(別タブで開く))。
Claude にコネクタを追加する
- Claudeの「カスタマイズ」→「コネクタ」を開き、「+」ボタンからコネクタの一覧を開きます
- 「BigQuery」で検索し、「Google Cloud BigQuery」を選びます
- Google Cloudで控えたOAuth クライアント IDとOAuth クライアント シークレットを入力します
- 「続ける」をクリックし、BigQueryへのアクセス権を持つGoogleアカウントで認証します
画面の詳細は「ClaudeでYahoo!広告を分析する方法(別タブで開く)」の手順3で、画像付きで紹介しています。
接続を確かめる
コネクタを追加したら、チャット画面で次のように質問し、2つのデータセットが見えているかを確認します。
プロンプト例
BigQueryのプロジェクト「(プロジェクトID)」にあるデータセットとテーブルの一覧を教えてください。GA4のデータセット(analytics_ で始まるもの)とサーチコンソールのデータセット(searchconsole)について、それぞれ最も古い日付と最も新しい日付も確認してください。
データセットの一覧に両方が表示され、日付の範囲が返ってくれば、接続は完了です。データセットが見つからないと返される場合は、プロジェクトIDが正しいか、手順2・手順3から十分な時間がたっているかを確認します。
認証したGoogleアカウントでデータを参照できない場合は、IAMの権限が不足している可能性があります。
2026年10月時点のGoogle Cloudのドキュメントでは、BigQuery MCP サーバーの利用に「MCP Tool User」(roles/mcp.toolUser)、「BigQuery Job User」(roles/bigquery.jobUser)、「BigQuery Data Viewer」(roles/bigquery.dataViewer)のロールが必要とされています。
手順5:Claudeのプロジェクトに分析の前提を書く
接続できても、Claudeはどのテーブルが何を表し、2つのデータを何でつなげばよいかを知りません。前提を伝えずに分析を依頼すると、URLの表記の違いで結合できなかったり、期間がそろっていなかったりして、誤った結果が返ることがあります。
そこで、Claudeの「プロジェクト(別タブで開く)」を作成し、プロジェクトの指示に分析の前提を書いておきます。プロジェクト内のどのチャットでも同じ前提で分析でき、毎回説明する必要がなくなります。
2026年10月時点では、プロジェクトは無料プランでも5つまで作成できます。
指示の例は次のとおりです。{★} の部分を自社の値に置き換えて使います。
# SEO分析の前提({★サイト名})
## データの場所
- BigQueryのプロジェクトID:{★プロジェクトID}
- GA4:データセット analytics_{★プロパティID}、テーブル events_YYYYMMDD(1行が1イベント)
- サーチコンソール:データセット {★searchconsole}
- searchdata_url_impression:URL×検索語句ごとの表示回数・クリック数。ページ単位の分析はこちらを使う
- searchdata_site_impression:サイト全体の検索語句の分析に使う
## 2つのデータのつなぎ方
- サーチコンソールの url と、GA4 の page_location(event_params 内)をURLで結合する
- GA4のランディングページは、セッションで最初の page_view の page_location とする
- 結合の前に、両方のURLを次のようにそろえる
- ? 以降のパラメータ(utm_ など)と # 以降を除く
- 末尾のスラッシュの有無をそろえる
- http と https、www の有無をそろえる
- 大文字・小文字の違いがないか確認する
## 指標の定義
- CTR:clicks ÷ impressions
- 平均掲載順位:SUM(sum_position) ÷ SUM(impressions) + 1(sum_position は0が1位)
- 直帰率:GA4の定義どおり、エンゲージメントのなかったセッションの割合
- コンバージョン:GA4のイベント {★generate_lead などのイベント名}
## 分析のルール
- 期間の指定がなければ、直近28日(データが届いていない直近の数日を除く)を対象にする
- サーチコンソールの行は重複したキーを含むため、必ず集計してから使う
- 検索の種類は、指定がなければ search_type = 'web' に絞る
- 結果には、使ったテーブル・期間・条件を必ず添える
URLの表記をそろえる条件は、サイトの構成によって異なります。最初の分析で「結合できなかったURLの例を10件出してください」と依頼し、表記の違いを確認してから指示に反映させると確実です。
なお、サーチコンソールの日付(data_date)は太平洋時間、GA4の日付(event_date)はプロパティのタイムゾーンです。日別に細かく突き合わせると1日ずれることがあるため、週単位や月単位で比べるのが無難です。
ここまで整えると、前半の「ClaudeでできるSEO分析の例」で紹介した分析を依頼できます。
BigQueryを使わずに試すには
まず手軽に試したい場合は、サーチコンソールとGA4のレポートをそれぞれ書き出し、ファイルをClaudeに添付して分析を依頼する方法もあります。設定は不要ですが、分析のたびに書き出しと添付が必要になり、扱えるデータ量にも限りがあります。
Search Console APIやMCPで直接つなぐ方法との違い
もう1つの方法は、Search Console APIを使うMCPサーバーをClaudeに接続し、サーチコンソールのデータを直接取得する方法です。
2026年10月時点で、Googleが公式に提供するサーチコンソールのMCPサーバーは確認できません(Google CloudのMCPサーバーの対応製品の一覧(別タブで開く)にも含まれていません)。この方法で使うのは、第三者が公開しているMCPサーバーです。
BigQueryに書き出す方法との違いは次のとおりです(Search Console API を使用して Search Console のデータをエクスポートする(別タブで開く)、Search Analytics: query(別タブで開く))。
| APIやMCPで直接つなぐ | BigQueryに書き出してつなぐ(本記事) | |
|---|---|---|
| 過去のデータ | サーチコンソールが保持する過去16か月分を、すぐに取得できる | 設定した日以降のデータのみ |
| 設定の手間 | 軽い(MCPサーバーの導入と認証) | Google Cloudの課金設定・書き出し・コネクタの設定が必要 |
| 取得できる行数 | 1回の取得は最大2万5,000行。1日分のデータは検索の種類ごとに5万行まで | 匿名化されたクエリを除く、すべてのデータ |
| 集計の自由度 | APIのフィルタ・並べ替え・集計の範囲。SQLは使えない | SQLで自由に集計できる |
| GA4との結合 | 別々に取得したデータを、AIに突き合わせさせる | SQLでURLを結合して集計できる |
| データの蓄積 | 16か月より前のデータは参照できなくなる | 期限を設定しない限り蓄積され続ける |
過去16か月分のデータは、サーチコンソールの検索パフォーマンスのレポートが保持する期間です(新しい Search Console のご紹介(別タブで開く))。BigQueryへの書き出しは過去にさかのぼれないため、設定前の期間を確認したいときは、直接つなぐ方法が役に立ちます。
一方、ページ数や検索語句の多いサイトで行数の上限を気にせず分析したい場合や、GA4と組み合わせて継続的に分析したい場合は、BigQueryが向いています。
なお、第三者のMCPサーバーを使う場合は、サーチコンソールのデータへのアクセス権をそのサーバーに与えることになります。提供元を確認したうえで使います。
継続的に分析するなら、本記事のようにBigQueryに集約してMCPで接続する方法が適しています。
それぞれの方法の違いは、Google広告を例にした「Google広告をAIで分析する3つの方法(別タブで開く)」で比較しています。GA4のデータだけを分析する場合の、公式のGA4 MCPサーバーとBigQuery経由の違いは、「ClaudeでGA4を分析する方法(別タブで開く)」で解説しています。
売上データまでつなげてSEOを評価するには
BigQueryとMCPによるClaudeの連携は、SEOの改善サイクルを大幅に効率化します。
ただし、今回の仕組みを簡単に構築できたのは、GA4とサーチコンソールがどちらもGoogleのプロダクトで、BigQueryへの書き出しが標準で用意されていたためです。
企業が本当に知りたいのは、「この記事から獲得したリードが、SalesforceなどのCRM上で最終的にどれだけの売上(LTV)になったか」という、事業に直結する指標です。これを分析するには、CRMや各広告媒体のデータもBigQueryに統合する必要があります。
記事から生まれたリードが商談・受注にどれだけつながったかを記事ごとに集計する方法は、「BtoBのオウンドメディアの効果測定(別タブで開く)」で解説しています。
その際に直面するのが、別々のシステムからデータを抽出し、顧客や商談の単位で名寄せし、分析できる形に整えるというデータ基盤構築の壁です。このデータパイプラインが正しく整備されていなければ、MCPでAIを接続しても正確な分析は行えません。
まとめ
- データの準備:課金を有効にしたGoogle Cloudのプロジェクトに、GA4の「BigQuery のリンク」とサーチコンソールの「一括データ エクスポート」で、毎日データを書き出す。サーチコンソールは過去分が書き出されないため、早めに設定する
- Claudeとの接続:BigQueryのコネクタを、OAuth認証でClaudeに追加する
- 分析の前提:データセット名、テーブルの意味、URLのそろえ方、指標の定義をプロジェクトの指示に書いておく
- 分析:CTRが低い記事、掲載順位11〜20位のページ、コンバージョンにつながらないページなどを、日本語の指示だけで抽出できる
- その先:売上やLTVまで含めて評価するには、CRMや広告媒体のデータを統合するデータ基盤が必要になる
決まった分析を繰り返す場合は、Claudeの「プロジェクト」と「スキル」に手順を登録しておくと、一言で同じ分析を実行できるようになります。作り方は「ClaudeのスキルでGoogle広告の専属AIアナリストを作る方法(別タブで開く)」で解説しています。
株式会社INVOXは、マーケティングデータからCRM・売上データまでを統合するデータ基盤の構築と、そのデータに直接アクセスして分析するAIエージェントの開発を一貫して支援しています。
支援の内容は「マーケティング分析(別タブで開く)」で、支援実績は「エンジニアに頼まずに、誰もが自分でデータを引き出せる状態に(別タブで開く)」で紹介しています。
自社のデータを統合し、AIによる分析環境を整えたいとお考えでしたら、お問い合わせください。




