Search ConsoleとBigQueryの連携方法|一括データエクスポートの設定手順

Google Search Console(サーチコンソール)は、管理画面の「検索パフォーマンス」レポートからでも、どのキーワードで何回表示され、何回クリックされたかを確認できます。ただし管理画面には「表示できるのは直近16か月まで」「一度に見られるのは最大1,000行まで」といった制限があり、長期のトレンドを追ったり、大量のクエリ・URLをまとめて分析したりするには不向きです。
この制限を超える公式の方法が、Search Consoleの一括データエクスポート(Bulk data export)です。設定しておくと、検索パフォーマンスデータが毎日自動でGoogle CloudのBigQueryに保存され、あとから期間や行数を気にせずSQLなどで集計できるようになります。
この記事では、SEGO(当サイト)で実際に一括データエクスポートを設定し、数日後にBigQuery側へデータが生成されたことを確認するまでの手順を、初心者向けに解説します。ゴールは「設定 → エクスポートの有効化 → BigQueryにテーブルが作られたことの確認」までです。SQLを使った具体的な分析は別記事で扱うので、本記事では触れません。
すでにGA4とBigQueryを連携している方は、その延長として理解しやすい内容です。ただしGA4の連携は今回の設定の前提条件ではありません。GA4を使っていなくても、Search Consoleだけで設定できます。
この記事でわかること
- Search ConsoleのBigQuery一括データエクスポートとは何か
- 連携前に確認しておくこと(プロパティ・Cloudプロジェクト・権限)
- Search Console用アカウントにBigQuery権限を付与する手順
- Search Console側でエクスポートを設定・有効化する手順
- 設定後にBigQueryへ生成される3つのテーブルの確認方法
本記事の仕様・料金は2026年9月時点のGoogle公式情報(Search Consoleヘルプ「一括データエクスポートについて」、同「設定と使用」、同「テーブルのガイドラインとリファレンス」、BigQueryの料金)をもとにしています。公式仕様と、今回SEGOで実際に設定した内容は区別して記載します。
Contents
Search ConsoleのBigQuery一括データエクスポートとは
一括データエクスポート(Bulk data export)は、Search Consoleの検索パフォーマンスデータを、Google CloudのBigQueryへ毎日自動でエクスポートする公式機能です。2023年2月に提供が始まりました。
ここで出てくるBigQueryは、Google Cloudが提供する大量データの保管・集計用のサービスです。エクスポートを設定すると、検索パフォーマンスデータ(表示回数・クリック数・掲載順位など)が、日付ごとにBigQueryへ積み上がっていきます。一度設定すれば、あとは毎日自動で蓄積されるので、手作業でダウンロードする必要はありません。
管理画面のレポートと比べたときの主な違いは、次の通りです。
| 管理画面(検索パフォーマンス) | 一括データエクスポート(BigQuery) | |
|---|---|---|
| 見られる期間 | 直近16か月まで | 設定した日以降、保存し続けられる |
| 行数 | 表示・エクスポートは最大1,000行 | 行数の上限に縛られない |
| データの形 | 選んだ切り口で集計された表 | 日付・クエリ・URL・国・デバイスなどの細かい行データ |
| 集計の自由度 | 用意された切り口の範囲内 | SQLで自由に集計できる(分析は別記事で解説) |
実務でありがたいのは、「16か月」と「1,000行」の制限がなくなる点です。クエリ数の多いサイトほど、管理画面では下位のキーワードが1,000行の壁で見えなくなります。BigQueryに貯めたデータならその制限がなく、16か月より前のデータも自分で保存しておけます。
Search Console APIとの違い
Search Consoleには、プログラムからデータを取得する「Search Console API」もあります。APIは必要なときに都度リクエストしてデータを取り出す仕組みで、保存先は自分で用意する必要があります。一方、一括データエクスポートは設定するだけで毎日BigQueryにデータが貯まっていくので、蓄積の仕組みを自分で作らなくて済みます。Google公式も、一括データエクスポートは管理画面の1日あたりの行数制限を受けないと説明しており、長期・大量のデータを扱うのに向いています。
Search ConsoleとBigQueryを連携する前に確認すること
設定を始める前に、次の5つが揃っているかを確認してください。
| 確認すること | 必要な状態 |
|---|---|
| 対象のSearch Consoleプロパティ | データをエクスポートしたいプロパティが登録済みであること |
| Search Console側の権限 | そのプロパティの「所有者」であること。Google公式に「一括データエクスポートを設定できるのはプロパティの所有者のみ」と明記されています |
| Google Cloudプロジェクト | エクスポート先のプロジェクトを用意し、請求先アカウント(Billing)を設定しておくこと。公式の前提条件として案内されています |
| Google Cloud側の権限 | そのプロジェクトのIAM(権限)を編集できる権限(オーナー相当) |
| Dataset location(保存先リージョン) | データを保存する地域をあらかじめ決めておくこと。エクスポート開始後の変更は容易ではありません |
ここで大事なのは、Search Consoleの権限とGoogle Cloudの権限は別物だという点です。Search Consoleの所有者であっても、Google Cloud側でIAMを編集できなければ設定は完了しません。社内でGoogle Cloudの管理担当が分かれている場合は、後述するサービスアカウントへの権限付与を依頼する必要があります。
課金について補足すると、Google公式の設定ガイドは「請求先を設定したGoogle Cloudプロジェクト」を前提にしています。BigQueryには無料枠(後述)があるため、小規模サイトで実際に料金が発生することは多くありませんが、「完全無料の機能」と考えて始めるのは正確ではありません。
手順1|Search Console用アカウントにBigQuery権限を付与する
最初の作業は、Google Cloud側での権限設定です。ここが今回の設定で一番つまずきやすいので、先に済ませます。
そもそもIAMとは
IAMは「誰が、そのGoogle Cloudプロジェクトで、何をできるか」を管理する仕組みです。人だけでなく、Googleのサービスに対しても権限を割り当てられます。今回は、Search Consoleがデータを書き込むために使う専用のアカウントに対して、BigQueryへの書き込み権限を与えます。
Search Consoleは、Googleが用意している次のサービスアカウント(人ではなく、サービスが処理を行うための専用アカウント)を使ってBigQueryにデータを書き込みます。
search-console-data-export@system.gserviceaccount.com
このアカウントは自分で作るものではありません。Googleがあらかじめ用意している共通のアカウントなので、自分のプロジェクトのIAMに「利用者(プリンシパル)」として追加し、権限(ロール)を割り当てるだけです。今回SEGOで付与したロールは次の2つです。
- BigQuery Job User(BigQuery ジョブユーザー):エクスポートの処理を実行する権限
- BigQuery Data Editor(BigQuery データ編集者):データセットやテーブルを作成・書き込みする権限
この2つはGoogle公式の設定ガイドで指定されているロールで、両方とも必要です。片方だけだと、後のSearch Console側の設定でエラーになります。手順は次の通りです。
- Google Cloudコンソールの「IAMと管理」→「IAM」を開く
- 「アクセス権を付与」(Grant access)をクリック
- 「新しいプリンシパル」に
search-console-data-export@system.gserviceaccount.comを入力 - ロールに BigQuery Job User を選択
- 「別のロールを追加」から BigQuery Data Editor を追加
- 「保存」をクリック
なお、BigQueryをまだ使ったことがないプロジェクトの場合は、事前にGoogle Cloudコンソールの「APIとサービス」からBigQuery APIを有効にしておいてください。GA4のBigQuery連携などで既にBigQueryを使っているプロジェクトなら、通常はすでに有効になっています。
手順2|Dataset locationを確認する
次に、データの保存先となる地域(Dataset location)を決めます。Dataset locationは、BigQueryのデータを実際に保存しておくリージョン(データセンターの地域)のことです。Google公式には「エクスポートが始まった後にこのロケーションを変更するのは容易ではない」とあるので、設定前に決めておきます。
今回SEGOでは、Tokyo(asia-northeast1)を選びました。理由は、すでに設定済みのGA4のBigQueryエクスポートのデータセットが asia-northeast1 にあり、将来GA4とSearch ConsoleのデータをBigQuery上で扱うときに、同じリージョンに揃えておいた方が管理しやすいと考えたためです。下の画像は、既存のGA4エクスポートのデータセットで Data location が asia-northeast1 であることを確認した画面です。
これはあくまで今回のSEGOでの実務上の判断です。Search Consoleの一括データエクスポートに「GA4と同じリージョンにしなければならない」という決まりはなく、任意のロケーションを選べます。GA4を使っていない場合や、組織のルールで別のリージョンが指定されている場合は、それに従って問題ありません。ただし、BigQueryでは異なるリージョンにあるテーブルを1つのクエリで直接つなげて集計できないため、後でGA4のデータと組み合わせる予定があるなら、揃えておくと楽になります。
手順3|Search Consoleで一括データエクスポートを設定する
Google Cloud側の準備ができたら、Search Consoleに移ります。所有者権限のあるプロパティで操作してください。
Search Consoleの左メニューの下にある「設定」を開き、「一括データエクスポート」(Bulk data export)に進みます。ここで、次の3つを入力・選択します。
- Cloud project ID:手順1で権限を付けたGoogle CloudプロジェクトのID(プロジェクト名や番号ではなく「ID」)
- Dataset name:BigQueryに作られるデータセット(テーブルをまとめる入れ物)の名前
- Dataset location:手順2で決めたリージョン(SEGOではTokyo / asia-northeast1)
Dataset nameには、Google公式の命名ルールがあります。名前は必ず「searchconsole」で始まります。デフォルトは searchconsole で、カスタマイズしてもこの接頭辞は変わりません。
1つのCloudプロジェクトに複数のサイト(プロパティ)をエクスポートする場合は、プロパティごとに異なるDataset nameを付ける必要があります。これはGoogle公式のルールです。今回SEGOでは、実務上の運用として「searchconsole_sego」のようにサイト名を付けて区別し、別サイトも同じプロジェクトにDataset名を分けてエクスポートしています。1サイトだけならデフォルトのままでも構いませんが、あとから2つ目を追加する可能性があるなら、最初からサイト名を付けておくとわかりやすくなります。
確認画面には、「後からこれらの設定を変更するには、エクスポートを無効にして既存のデータセットを削除する必要がある」という警告が表示されます。プロジェクト・Dataset名・ロケーションのどれも、あとからのやり直しには手間がかかります。ここで入力内容を確実に確認してください。
手順4|Bulk data exportを有効化する
設定内容を確認して確定すると、Search Consoleは指定したプロジェクトに対してエクスポートのシミュレーション(試し実行)を行います。IAMの権限が足りない、プロジェクトIDが間違っている、といった問題があれば、この時点でエラーが表示されます。
シミュレーションが成功すると、Search Consoleの設定画面に「Bulk data export is active」(一括データエクスポートが有効)と表示されます。ここまでで、Search Console側の設定は完了です。
ただし注意したいのは、この表示が出た時点では、まだBigQueryにデータは入っていないことです。Google公式によると、設定が成功するとプロパティの所有者全員にメールで通知され、継続的なエクスポートは設定完了から最大48時間以内に始まります。連携が本当にうまくいったかは、次の手順でBigQuery側を見て確認します。
手順5|BigQueryにテーブルが生成されたか確認する
設定画面で「active」と表示されても、それだけで安心せず、BigQuery側に実際にテーブルとデータが作られたことまで確認して、初めて連携成功と判断できます。ここは今回の記事で最も重要なポイントです。
先に述べた通り、設定直後に必ずデータが生成されるわけではありません。Google公式でも「最初のエクスポートは設定完了から最大48時間以内」とされています。少し待ってから、Google CloudコンソールでBigQueryを開き、指定したデータセット(例:searchconsole_sego)の中を確認します。
SEGOの場合は、2026年8月30日に設定を完了し、数日のうちにBigQuery側へ次の3つのテーブルが生成されていることを確認できました。
| テーブル | 役割(初心者向けの説明) |
|---|---|
ExportLog | 「いつ、どのデータが保存されたか」の記録。エクスポートが成功した分だけが記録されます。うまく動いているかの確認に使えます |
searchdata_site_impression | サイト(プロパティ)単位で集計された検索パフォーマンス。日付・クエリ・国・検索タイプ・デバイスごとの表示回数・クリック・掲載順位が入ります |
searchdata_url_impression | URL単位で集計された検索パフォーマンス。上のデータに加えて、着地URLや、検索結果での見え方(リッチリザルトの種類など)が入ります |
テーブル名をクリックして「プレビュー」を開くと、日付・クエリ・国・デバイス・表示回数・クリックといった列に、実際のデータが1行ずつ入っているのが見えます。SQLを書かなくても、プレビューでデータの存在は確認できます。ここまで確認できれば、連携は成功です。
連携成功の判断基準
- Search Consoleの設定画面に「Bulk data export is active」と表示されている
- BigQueryの指定データセットに、3つのテーブルができている
- テーブルのプレビューで、日付ごとに表示回数・クリックの行が入っている
もし設定から48時間以上たってもデータセットやテーブルが作られない場合は、手順1のIAMのロール付与(2つとも付与できているか)と、Search Console側のエクスポートが有効のままかを確認してください。
設定後は自動でデータが蓄積される
一度設定してしまえば、あとは基本的に手作業は不要です。Search Consoleが1日1回、自動でエクスポートを行い、日付ごとのデータがBigQueryに積み上がっていきます。毎日ダウンロードして貼り付ける、といった作業はいりません。
運用にあたって、公式仕様として押さえておきたい点が4つあります。
- データには処理の遅れがある:Search Consoleのデータはもともと、確定するまでに数日の遅れがあります。BigQueryに入るデータも同様で、常に最新日ぶんが揃っているとは限りません。
- 最新の日付が「昨日」とは限らない:日付は太平洋時間(Pacific Time)を基準に区切られます。今日の時点で入っているのは数日前までのデータ、という状態が普通です。
- 過去データは遡って入らない:エクスポートされるのは設定した日以降のデータだけです。Google公式も「設定前の過去データを見たい場合は、Search Console APIまたは管理画面のレポートを使う」と案内しています。過去16か月分が自動でBigQueryに入るわけではありません。
- ExportLogで状況を確認できる:どの日付のデータがいつ保存されたかはExportLogに記録されます。公式によると、一時的なエラーは自動で再試行され、それ以外のエラーでも約1週間は再試行されたうえで、それでも失敗した日の保存は打ち切られます。
つまり、エクスポートの価値は「いつ設定したか」で決まります。分析したくなってから設定すると、そこから数か月はデータが貯まるのを待つことになります。使う可能性が少しでもあるなら、先に設定だけ済ませておくのがおすすめです。
同じCloud Projectで複数サイトを管理しても大丈夫?
複数サイトを運営していると、「1つのGoogle Cloudプロジェクトに全部まとめて大丈夫なのか、データが混ざらないか」が気になると思います。結論から言うと、Datasetを分けて管理すれば混ざりません。
BigQueryのデータは、次の3階層で整理されています。
- Project(プロジェクト):いちばん大きな入れ物。課金や権限の単位
- Dataset(データセット):プロジェクトの中でテーブルをまとめるフォルダのようなもの
- Table(テーブル):実際のデータが入る表
今回SEGOでは、1つのCloudプロジェクトの中に、サイトごとに別のDatasetを作る構成にしています(例:searchconsole_sego と searchconsole_別サイト名)。サイトごとにDatasetが分かれているので、データが自動で混ざることはありません。手順1で付けたサービスアカウントの権限はプロジェクト単位なので、2サイト目以降は権限付与をやり直す必要がなく、Search Console側の設定だけで追加できます。
ただし、権限・課金・運用の管理は、サイトの規模や体制に応じて設計するのがおすすめです。たとえば、クライアントごとに請求や権限を完全に分けたい場合は、プロジェクト自体を分けるという判断もあります。小規模なうちは1プロジェクトでDatasetを分ける形で十分ですが、規模が大きくなったら見直してください。
Search Console×BigQueryで次にできること
データがBigQueryに貯まると、管理画面の制限に縛られずに、いろいろな切り口で集計できるようになります。本記事では分析方法までは踏み込みませんが、次にできることの例を挙げておきます。
- クエリ別の表示回数・クリック数を、1,000行の制限なしで集計する
- URL別の成果(どのページがどれだけクリックされているか)を出す
- CTR(クリック率)を、クリック数 ÷ 表示回数で計算する
- 平均掲載順位を算出する(データには順位の「合計」が入っているため、合計を表示回数で割って求めます)
- 国・デバイス・検索タイプ(web/画像/動画など)ごとに分けて見る
- 改善候補のURLを抽出する(例:表示回数は多いのにCTRが低いURL=タイトルや説明文の改善余地があるページ)
これらはすべてSQLで集計します。SQLと聞くと身構えるかもしれませんが、Search Consoleのテーブルは、GA4のエクスポートデータのような入れ子構造がなく、比較的シンプルです。GA4×BigQueryのSQL分析で紹介している基本パターン(期間の絞り込み・集計・並べ替え)に慣れておくと、そのまま応用できます。
SEGOでは今後、実際に蓄積したSearch ConsoleのデータをSQLで集計する方法や、ChatGPT・Claudeなどの生成AIに分析を手伝ってもらう方法を、初心者向けに別記事で解説する予定です。
補足:BigQueryの無料枠と料金
料金について、公式情報にもとづいて補足します。Search Console側のエクスポート機能そのものに追加料金はありませんが、BigQuery側の保存量とクエリ処理量が無料枠を超えると費用が発生します。Google公式も「無料の利用枠はあるが、それを超えたストレージとクエリの利用は課金される」と明記しています。
BigQueryの無料枠は次の通りです(2026年9月時点、BigQueryの料金より)。
| 項目 | 無料枠 |
|---|---|
| ストレージ(保存) | 毎月10GiBまで無料 |
| クエリ(集計処理) | 毎月1TiBまで無料 |
Search Consoleの検索パフォーマンスデータは比較的小さいため、中小規模のサイトであれば、しばらくは無料枠の中に収まることが多いです。ただし、GA4のエクスポートなどを同じプロジェクトに入れている場合は合算で無料枠を使うので、全体の量で見てください。
また公式ヘルプには「有効期限を設定しない限り、データはプロジェクトに蓄積され続ける」とあります。保存量を抑えたい場合は、テーブル全体ではなくパーティション(日付)単位で有効期限を設定できます。その際、有効期限は14日以上にすることが公式に求められています。なお、公式の設定ガイドは請求先を設定したプロジェクトを前提にしています。継続してデータを貯めるなら、課金を有効にしておいた方が安全です(課金を有効にしても、上記の無料枠は引き続き適用されます)。
まとめ
Search Consoleの一括データエクスポートは、最初にIAM(権限)とエクスポート先を設定すれば、あとはBigQueryへ検索パフォーマンスデータが毎日自動で蓄積されていく仕組みです。設定作業そのものは、慣れれば30分ほどで終わります。
難しくはありませんが、確実に成功させるために、次の4点を正しく確認することが大切です。
- IAM:サービスアカウントに BigQuery Job User と BigQuery Data Editor の2つを付与できているか
- Dataset name:「searchconsole」で始まる名前になっているか(複数サイトはサイトごとに別名)
- Dataset location:保存先リージョンを決めて選んだか(あとから変えにくい)
- 生成テーブル:BigQueryに ExportLog/searchdata_site_impression/searchdata_url_impression の3つができているか
そして一括データエクスポートは過去に遡れない以上、今日設定すれば今日から、半年後には半年分の、1,000行や16か月に縛られない検索パフォーマンスデータが手元に貯まります。まだの方は、この記事の手順で先に連携だけ済ませておいてください。
次回は、実際に貯まったSearch ConsoleのデータをSQLや生成AI(ChatGPT / Claude)で分析する方法を、初心者向けに解説する予定です。あわせて、GA4とBigQueryの連携を済ませておくと、検索クエリから流入後の行動までを同じBigQueryで扱えるようになります。
検索パフォーマンスの分析で見つけた課題を、SEO・サイト改善につなげたい方は、SEGOの無料診断もあわせてご利用ください。
この記事を書いた人

岡 拓馬(おか たくま)
外資系SEOスペシャリスト / SEGO開発者
約10年の国際SEOコンサルティング経験
航空自衛隊で航空機整備員として勤務した後、2015年にフリーランスのWebライター・SEOコンサルタントとして独立。以来、アジア各国を拠点に海外ノマドワーカーとして活動。フィリピンの外資系企業でSEOスペシャリストとして従事した後、約10年の国際SEOコンサルティング経験をもとにSEO×AI検索の診断ツール「SEGO」を開発。著書に『AI時代のテクニカルSEOの教科書』(Kindle)、Udemy講座『AI時代のコンテンツSEOの教科書』がある。
執筆プロセス:本記事はAI(Claude Sonnet)による下書きを、岡拓馬が一次データ追加・実例追記・文意確認を行ったうえで公開しています。内容の最終責任は筆者(岡拓馬)が負います。