はじめに
本書の目的
本ドキュメントは、Google Search Console のデータを Google スプレッドシートへ自動で連携・出力する方法を分かりやすくまとめたものです。複数の手法を比較し、実務で使いやすい手順や注意点を具体的に示します。
何が学べるか
- Google Apps Script を使った自動連携の基本と実装例
- Search Analytics for Sheets アドオンを利用した簡単な取り込み方
- BigQuery を介した大規模データ連携の考え方
- Search Console の標準機能でのデータ出力方法
想定読者
Web 担当者、SEO 担当者、データを定期的に取得してレポート化したい方を想定しています。プログラミングの経験が無くても理解できるよう、図や具体例を交えて説明します。
使い方の目安
各章は独立して読むことができます。まずは第2章の Apps Script やアドオンの章から試してみて、必要に応じて BigQuery など高度な方法に進んでください。
小さな例
例えば「毎朝自動で検索パフォーマンスをスプレッドシートに記録する」といったニーズに対し、手順と設定例を丁寧に示します。
Google Apps Scriptを活用したサーチコンソール連携
概要
Google スプレッドシートとGoogle Apps Script(GAS)を使って、サーチコンソールのデータを自動取得します。日次でクエリ別のクリック数や表示回数、平均順位を取り出し、スプレッドシートに書き込む運用を想定しています。
準備するもの
- Google サーチコンソール APIを有効化
- データを保存するGoogle スプレッドシート(例: SearchConsoleData)
- GASのスクリプトエディタ
スプレッドシートのセットアップ例
シート名: SearchConsoleData
ヘッダー行: 日付|クエリ|表示回数|クリック数|平均順位
この構成であれば、クエリごとの推移を時系列で管理できます。
実装の流れ(手順)
- サーチコンソールAPIを有効化し、GASでOAuth権限を付与します。
- スクリプト内で検索対象のサイトURLと取得期間を指定します。
- searchAnalytics.queryエンドポイントへPOSTして、結果を受け取ります。
- 受け取ったデータをパースしてスプレッドシートへ書き込みます。
- トリガーで定期実行(例: 毎日)を設定します。
サンプルコード(簡易)
function fetchSearchConsoleData(){
var site='https://example.com';
var payload={startDate:'2025-01-01',endDate:'2025-01-07',dimensions:['query'],rowLimit:2500};
var options={method:'post',contentType:'application/json',headers:{Authorization:'Bearer '+ScriptApp.getOAuthToken()},payload:JSON.stringify(payload)};
var url='https://searchconsole.googleapis.com/v1/sites/'+encodeURIComponent(site)+'/searchAnalytics/query';
var res=UrlFetchApp.fetch(url,options);
var rows=JSON.parse(res.getContentText()).rows||[];
// スプレッドシートへ書き込み処理を続ける
}
運用ポイント
- 取得期間やrowLimitは必要に応じて調整してください。APIの呼び出し回数制限に注意し、定期実行は夜間など負荷の少ない時間に設定すると安心です。
Search Analytics for Sheetsアドオンを使用した方法
概要
Googleが提供する「Search Analytics for Sheets」アドオンを使うと、サーチコンソールの検索データをスプレッドシートに直接取り込めます。GUIで設定できるため、コードを書かずに取得や自動化が可能です。
準備
- スプレッドシートを開き、メニューから「アドオン」→「アドオンを取得」で”Search Analytics for Sheets”をインストールします。
- インストール後にアドオンを開き、Googleアカウントで認証します。必要な権限を許可してください。
データ取得手順(基本)
- アドオンのサイドバーを開きます。
- プロパティ(サイト)と日付範囲を選択します。例:過去28日、あるいは特定の開始/終了日。
- 取得するディメンションを選びます(例:query、page、country、device)。
- フィルタや検索タイプ(web/image/video)、行数上限(row limit)を設定します。
- 「Run API」ボタンで実行します。結果が指定のシートに書き込まれます。
大量データ時のシート分割
行数が多い場合は、サイドバーで「Split results into multiple sheets」や類似オプションを有効にします。アドオンがAPIの制限に合わせて複数シートに分割して出力します。例:50,000行を25,000行ずつに分けて別シートに保存します。
定期自動取得の設定
サイドバーの「Schedule」や「Create a schedule」から、日次や週次の自動実行を設定できます。実行先のシートや上書き・追記の挙動を確認してからスケジュールを有効にしてください。
複数アカウント管理と他ツールへの展開
- 複数プロパティはクエリを分けて管理すると分かりやすいです。
- 出力したシートはCSVでダウンロードして他ツールに取り込めます。
- 自動連携先にBigQueryを使う場合は、スプレッドシートからApps Scriptで転送する運用が現実的です。
運用上のポイント
- クエリ名を付けて管理すると再利用が楽になります。
- 取得するディメンションやフィルタで行数を絞り、APIクォータを節約してください。
- 定期実行は時間帯をずらしてAPI衝突を避けると安定します。
BigQueryを使用した自動連携方法
前提
検索コンソールのデータを定期的に分析したい場合、BigQueryを中継にすると自動化と集計が楽になります。ここでは5ステップで実装方法を説明します。
手順(5ステップ)
- GCPでプロジェクト作成
- Google Cloud Consoleで新しいプロジェクトを作ります。BigQuery APIを有効にしてください。
- IAMで権限付与
- データを受け取るためのBigQueryデータセットを作成し、Search Consoleのエクスポート先サービスアカウントにBigQueryへの書き込み権限を与えます。Sheetsやメンバーが参照する場合は閲覧権限を付与します。
- Search ConsoleからBigQueryへエクスポート設定
- Search Consoleの設定画面でBigQuery連携を設定し、プロジェクトとデータセットを指定します。自動で日次データが取り込まれます。
- スプレッドシートとBigQueryの連携
- スプレッドシートの「データ > データコネクタ > BigQuery」からクエリを接続します。直接クエリを実行すればシートに結果が取り込めます。
- SQLクエリによる集計と定期実行設定
- BigQueryで月別やページ別の集計クエリを作ります。スケジュールクエリで定期実行すれば自動で結果テーブルが更新します。Sheets側はその結果テーブルを参照するだけで自動更新します。
SQL例(月別レポート)
SELECT
DATE_TRUNC(date, MONTH) AS month,
SUM(clicks) AS clicks,
SUM(impressions) AS impressions,
SAFE_DIVIDE(SUM(clicks), SUM(impressions)) AS ctr,
AVG(position) AS avg_position
FROM `project.dataset.search_console_table`
GROUP BY month
ORDER BY month;
定期更新のポイント
- BigQueryのスケジュールクエリで毎日/毎週実行します。
- Sheets側はクエリ結果をインポートしておき、スプレッドシートの自動更新(データ接続の更新間隔)を設定します。
- アクセス権と料金(クエリ処理量)を確認して運用してください。
トラブル時は権限設定とデータ取り込み先のテーブル名をまず確認してください。
標準機能での出力方法
操作手順
- Search Consoleにログインし、対象プロパティを開きます。
- 左メニューで「検索パフォーマンス(パフォーマンス)」を選びます。
- 画面上部で日付やフィルタ(クエリ、ページ、国、デバイス)を設定します。
- 画面右上の「エクスポート」ボタンを押し、【Google スプレッドシート】または【CSV】を選びます。
- スプレッドシートは自動で開くか、CSVをダウンロードして任意のシートに取り込みます。
出力の制限
標準機能では、同一条件で最大1,000件まで出力されます。大量データを一括で取得できないため、必要に応じて条件を分けて複数回エクスポートしてください。CSVで保存すれば手動で結合できます。
1,000件超の扱い方(手作業)
- 日付を短く分割して複数回エクスポートする。
- クエリやページで絞り込み、出力を分割してからシートで統合する。
これらを組み合わせると、必要なデータを集められますが手間は増えます。
出力される主な項目
- クエリ、ページ、クリック数、表示回数、CTR(クリック率)、平均掲載順位
これらは列として出力され、シート上でフィルタやソートが可能です。
実用的なコツ
- まず必要な期間や指標を決めてからエクスポートする。
- 一度に扱う件数を減らして手順を分けるとミスが少なくなります。
- 大量の連続取得が必要なら、Search Analytics for SheetsやAPI連携の利用を検討してください。












