公開日: 最終更新:
執筆・編集:株式会社Nexa 編集部(下書きと機械検査はAI、公開前に人が確認)/約20分で読めます。公式ドキュメント・公式発表などの一次情報を確認したうえで執筆・更新しています。AIツールの仕様や料金は変わることがあるため、導入判断の前に各公式サイトの最新情報もご確認ください。記事の作り方と検査の方針
GSC API(Search Console API)は、Googleが無料で提供する公式APIです。1リクエストで最大25,000行の検索パフォーマンスデータを取得でき、利用枠の上限内なら料金はかかりません(2026年10月11日確認)。Claude Codeで作ったスクリプトから呼び出すと、取得から集計・報告までを自動化できます。
- 要点1: GSC APIのrowLimitは1リクエスト最大25,000行(既定1,000行)。startRowでページングできるが、公開されるのは1日・検索タイプごとに最大5万行で、全行の取得は保証されない
- 要点2: 検索データの取得に必要なのは読み取りの権限。サービスアカウントは「制限付き」ユーザーとして追加すれば足り、オーナー権限は不要
- 要点3: summary/queries/pages等9種類のコマンドで多角的なSEO分析をCLIから一発実行できる
対象: SEO担当者・DX推進担当者・Claude Codeでの業務自動化に興味がある方
今日やること: GCPでサービスアカウントを作成し、GSCプロパティのユーザーに「制限付き」で追加する
GSC API(Search Console API)とは、Search Consoleの検索パフォーマンスデータ(クリック数・表示回数・CTR・掲載順位)を、画面を開かずにプログラムから取得できるGoogleの公式APIです。料金は無料、1リクエストで取得できるのは最大25,000行、取得できる期間は過去16か月です(詳しい上限は次の早見表)。Google Search Console(GSC)のデータをClaudeで扱う方法は、大きく3つあります。この記事では、このGSC APIをClaude Codeで作ったスクリプトから呼び出し、検索クエリや順位データの取得・分析をコマンド1行で自動化する方法を解説します。
| 方法 | 向いている場面 | 注意点 |
|---|---|---|
| 画面からエクスポートしたファイルをClaudeに渡す | 単発の分析 | 表に出るのは最大1,000行。毎回手作業になる |
| Search Console APIをスクリプトで呼ぶ(本記事) | 毎週・毎月の定期取得、1,000行を超えるデータの分析 | GCPとサービスアカウントの初期設定が必要 |
| 第三者が公開しているMCPサーバーや連携サービスを使う | 対話しながらデータを確認したい場合 | 認証情報を預ける相手と、渡す権限の範囲を確認する |
「毎週GSCを手動でチェックするのが面倒だ」「1,000件の上限で見えないデータが多い」——こうした課題は、API連携と自動化スクリプトで一気に解決できます。
この記事では、あるメディアサイトのGSCデータ取得を自動化した実際の事例をもとに、GCPのサービスアカウント設定からコマンド実行、そして定期自動実行まで、一連の手順を具体的に解説します。
Google Search Console APIで何ができるか
Google Search Console(GSC)にはAPIが用意されており、Pythonスクリプトなどから直接データを取得できます。Claude Codeと組み合わせることで、これまで手作業だった定期レポート作成や改善機会の分析が、コマンド1つで完了するようになります。
GSC API(Search Console API)の早見表
料金・権限・上限を先にまとめます。数値はいずれもGoogleの公式ドキュメントで確認したものです。
| 項目 | 内容(2026年10月11日確認) |
|---|---|
| 料金 | 無料(利用枠の上限あり) |
| 必要な権限 | プロパティの読み取りの権限(所有者・フル・制限付きのいずれか) |
| スコープ | webmasters.readonly(読み取り専用)または webmasters(読み書き) |
| 取得できる指標 | クリック数・表示回数・CTR・掲載順位 |
| 集計の軸 | 検索語・ページ・国・デバイス・検索での見え方・日付・時間 |
| 検索タイプ(type) | web(既定)・image・video・news・discover・googleNews |
| 1リクエストの行数 | 最大25,000行(既定1,000行) |
| 1日あたりのデータ | 検索タイプごとに最大5万行(クリック数の多い順) |
| 取得できる期間 | 過去16か月 |
| データの反映 | 通常2〜3日後 |
| 利用枠(検索データの取得) | サイトごと・ユーザーごとに毎分1,200回、プロジェクトごとに毎分40,000回・1日3,000万回 |
出典:Search Console API: Pricing、Prerequisites、Usage Limits、Search Analytics: query、Google検索セントラル ブログ(16か月分のデータ)。
UIとAPIの違い——1リクエストの行数と取得上限を分けて考える
GSCのウェブUI(管理画面)には、検索クエリの表示件数が最大1,000件という制限があります。一方、Search Analytics APIのrowLimitは1リクエストあたり最大25,000行(既定値1,000行)です。startRowを指定して続きの行を取得できますが、これを全件取得の保証と考えてはいけません。
Googleの公式資料では、APIが公開するデータは1日・検索タイプごとに最大50,000行です。日別に取得する場合はrowLimit=25000とし、startRowを0、25,000…と進めて0行の応答まで確認します。ただし、公開されるのはクリック数の多い順に並べた上位の行で、ページや検索語で集計すると一部のデータが省かれることがあります。1リクエストの行数・1日の公開上限・全行が保証されない点を区別してください。
出典:Search Analytics: query(rowLimit・startRow)、Getting your performance data(日別取得とデータ上限)、Search Console ヘルプ(表は最大1,000行)。
Nexaの実測(2026年9月22日取得):自社サイトの2026年8月23日〜9月19日の28日間について、ウェブ検索の確定データをクエリ×ページで集計したところ、rowLimit=10000・startRow=0の1リクエストで5,608行が返りました。これはクエリとページの組み合わせの行数であり、検索クエリの種類数や全検索データ数ではありません。この取得ではページングの追加リクエストは発生していません。5,608行はこの期間・条件での観測値で、APIの最大値や全件取得を実証したものではありません。
| 項目 | UI | API |
|---|---|---|
| UIの表示行数/APIの1リクエスト行数 | 1,000件 | 最大25,000行(rowLimit。全行保証ではない) |
| データ取得期間 | 最大16ヶ月 | 最大16ヶ月 |
| 定期自動取得 | 不可(手動のみ) | 可能(cronで自動化) |
| データ加工 | 手動(CSV出力後) | 自動(スクリプトで処理) |
| 複数サイト一括管理 | 切り替えが必要 | 一括処理可能 |
APIを使うことで、データの取得だけでなく、取得→加工→レポート出力までを一連のスクリプトで自動化できるようになります。

Claude Codeで実現できる9種類の分析コマンド
実際にClaude CodeでGSC分析スクリプトを構築すると、以下のようなコマンドが使えるようになります。
| コマンド | 内容 | 主な用途 |
|---|---|---|
summary |
サイト全体のサマリー(前期間比較付き) | 週次・月次の定点観測 |
queries |
検索クエリ別パフォーマンス | 上位KWの確認・改善候補抽出 |
pages |
ページ別パフォーマンス | 記事ごとの効果測定 |
daily |
日別トレンド | アルゴリズム更新の影響確認 |
devices |
デバイス別(PC/スマホ) | モバイル対応状況の確認 |
countries |
国別データ | 海外流入の分析 |
query-page |
クエリ×ページ掛け合わせ | 記事とKWの対応確認 |
opportunities |
改善機会分析 | 順位11〜20位のKW抽出 |
json |
JSON形式でのデータ出力 | 外部ツールとの連携 |
特に opportunities コマンドは実務で重宝します。「順位11〜20位にいるKW(2ページ目)」を自動抽出し、「少し改善すれば1ページ目に上がれる」記事の優先リストを即座に出力できます。
2026年9月に追加された検索タイプ「ウェブ: マルチモーダル」はAPIで取得できるか
Googleは2026年9月24日、Search Consoleの検索パフォーマンス レポートと生成AI機能のレポートに、画像を使った検索の実績を確認できる検索タイプ「ウェブ: マルチモーダル」(Web: multimodal)を追加したと発表しました。対象は、Googleレンズ、Androidの「かこって検索」、Google検索への画像のアップロード、Chromeの右クリックから行う画像の検索です。同日から全世界で順次提供されています。
画面では、レポート上部の検索タイプのフィルタで選び、「エクスポート」からデータをダウンロードできます。画像を使った検索は文字の検索語をほとんど伴わないため、この検索タイプを選ぶと検索語(クエリ)での集計は使えません。
APIについては、発表の記事に記載がありません。Search Analytics APIのリファレンス(最終更新 2026年8月11日)で type に指定できる値は、早見表に挙げた6つだけで、マルチモーダルに当たる値は載っていません(2026年10月11日確認)。APIで取得できるかどうかは公式に示されていないため、現時点では画面のエクスポートで確認し、リファレンスの更新を待つのが確実です。
出典:Google検索セントラル ブログ(2026年9月24日)、Search Console ヘルプ: Performance report、Dimensions and data groupings。
事前準備——GCPとサービスアカウントの設定
GSC APIを使うには、Google Cloud Platform(GCP)でのプロジェクト作成とサービスアカウントの設定が必要です。ここを正確に行わないと、後のステップで権限エラーが発生します。
GCPプロジェクトの作成とSearch Console APIの有効化
- Google Cloud Console にアクセスし、新しいプロジェクトを作成します
- 左メニューの「APIとサービス」→「ライブラリ」を開きます
- 「Google Search Console API」を検索し、「有効にする」をクリックします
ポイントAPI有効化は無料です。公式の料金ページには、Search Console APIの利用はすべて無料で、利用枠の上限だけがあると書かれています(2026年10月11日確認)。
サービスアカウントの作成と認証キーのダウンロード
- 「APIとサービス」→「認証情報」を開きます
- 「認証情報を作成」→「サービスアカウント」を選択します
- サービスアカウント名(例:
gsc-reader)を入力して作成します - 作成されたサービスアカウントを開き、「キー」タブ→「鍵を追加」→「新しい鍵を作成」→「JSON」を選択します
- ダウンロードされたJSONファイル(認証キー)を安全な場所に保管します
認証キーはパスワードと同等の重要情報です。Gitリポジトリには絶対にコミットしないでください。
【重要】GSCプロパティにサービスアカウントを追加する(権限は「制限付き」で足りる)
ここは最も詰まりやすいポイントです。 サービスアカウントは、作成しただけではSearch Consoleのデータを読めません。対象プロパティのユーザーとして追加して初めて、APIからデータを取得できます。
Search Consoleの権限は「所有者(オーナー)」「フル」「制限付き」の3種類です。公式ドキュメントは、検索データを取得する searchAnalytics.query の実行に読み取りの権限を求めています。Search Consoleのヘルプでも、制限付きユーザーは検索パフォーマンスのデータを表示できるとされています。データの取得だけが目的なら、最小限の「制限付き」で追加するのが安全です。
手順:
- Google Search Console(search.google.com/search-console)を開きます
- 対象のサイトプロパティを選択します
- 左メニュー下部の「設定」→「ユーザーと権限」を開きます(このページはプロパティの所有者にだけ表示されます)
- 「ユーザーを追加」をクリックします
- サービスアカウントのメールアドレス(例:
gsc-reader@your-project.iam.gserviceaccount.com)を入力します - 権限を「制限付き」に設定します(データの取得だけならこれで足ります)
- 「追加」をクリックして完了です
なお、URLのインデックス登録を通知するIndexing APIは別のAPIで、こちらはサービスアカウントを所有者として追加する必要があります。検索データの取得とは条件が異なるため、混同しないようにしてください。
権限に関するエラーが返る場合は、サービスアカウントのメールアドレスが対象プロパティのユーザーに追加されているか、スクリプトで指定するサイトのURLがプロパティの種類と合っているかを確認します。URLプレフィックスのプロパティは https://www.example.com/、ドメイン プロパティは sc-domain:example.com の形式です。
出典:Search Console API: Prerequisites、Search Console ヘルプ(所有者、ユーザー、権限の管理)、Indexing API: Prerequisites。
AI導入に関するお困りごとは、株式会社NexaのAI顧問がサポートします。「何から始めればいいか分からない」という段階からご相談いただけます。
Pythonスクリプトのセットアップ
認証の準備ができたら、Pythonスクリプトをセットアップします。
必要なライブラリのインストール
venv(仮想環境)を作成し、必要なライブラリをインストールします。
# venv作成
python3 -m venv /tmp/gsc-venv
# ライブラリのインストール
/tmp/gsc-venv/bin/pip install google-api-python-client google-auth
主に使用するライブラリは以下の2つです。
| ライブラリ | 用途 |
|---|---|
google-api-python-client |
Google APIへのリクエスト処理 |
google-auth |
サービスアカウント認証 |
認証キーファイルの配置場所
認証キー(JSONファイル)の配置場所は慎重に選ぶ必要があります。特にcronで自動実行する場合、配置場所によって権限エラーが発生することがあります(詳細は後述)。
推奨配置場所:
# macOSでのcron対応を考慮した場合
~/.config/gsc/service-account.json
# または専用ディレクトリを作成
mkdir -p ~/.credentials/gsc/
mv ~/Downloads/your-key.json ~/.credentials/gsc/service-account.json
chmod 600 ~/.credentials/gsc/service-account.json
ホームディレクトリ配下(~/.config/ や ~/.credentials/ など)に配置することで、macOSのプライバシー保護の影響を受けにくくなります。
スクリプトの動作確認
以下は基本的なGSCデータ取得スクリプトのサンプルです。
from googleapiclient.discovery import build
from google.oauth2 import service_account
SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
KEY_FILE = '/path/to/service-account.json'
SITE_URL = 'https://www.example.com/' # ドメイン プロパティは 'sc-domain:example.com'
def get_gsc_data():
credentials = service_account.Credentials.from_service_account_file(
KEY_FILE, scopes=SCOPES
)
service = build('searchconsole', 'v1', credentials=credentials)
request = {
'startDate': '2026-08-01',
'endDate': '2026-08-31',
'dimensions': ['query'],
'rowLimit': 5000
}
response = service.searchanalytics().query(
siteUrl=SITE_URL,
body=request
).execute()
return response.get('rows', [])
rows = get_gsc_data()
for row in rows[:10]:
print(row['keys'], row['clicks'], row['impressions'], row['position'])
このスクリプトを実行して検索クエリが表示されれば、認証設定は成功です。
上のrowLimit: 5000は、このサンプルで要求する行数の設定値であり、APIの最大値ではありません。サンプルは1リクエストのみで、ページングや全行取得を実装したコードではありません。
9種類のコマンドで多角的なGSC分析を実現
スクリプトが動作したら、より実践的なCLIツールとして整備します。コマンドライン引数でデータの種類を切り替えられるようにすることで、Claude Codeから自然言語でデータを要求できるようになります。
サイト全体サマリーの確認
# 直近28日のサマリーを確認
python3 gsc_query.py summary
# 90日分を確認
python3 gsc_query.py summary --days 90
出力例:
=== GSCサマリー(直近28日)===
総クリック数: 2,847(前期間比: +12.3%)
総インプレッション数: 156,492(+8.7%)
平均CTR: 1.82%(-0.1pt)
平均掲載順位: 18.4(+1.2)
前期間との自動比較が表示されるため、週次のパフォーマンス変化を一目で把握できます。
検索クエリ・ページ別パフォーマンス取得
# クリック数上位50クエリを表示
python3 gsc_query.py queries --limit 50
# 特定のKWに絞る
python3 gsc_query.py queries --filter-query "Claude Code"
# ページ別パフォーマンス
python3 gsc_query.py pages --limit 30
UIでは見えなかったロングテールKWも含めて取得できるため、既存記事のカバレッジを正確に把握できます。
改善機会分析——順位11〜20位のKWを自動抽出
実務で特に活用されているのが opportunities コマンドです。
# 3パターンの改善機会を一括分析
python3 gsc_query.py opportunities
出力されるのは以下の3種類の改善候補です。
| 区分 | 基準 | アクション |
|---|---|---|
| 惜しいKW | 順位11〜20位 | 記事のリライトで1ページ目を狙える |
| 高インプレッション低CTR | CTR < 2% かつインプレッション高 | メタディスクリプションやタイトルの改善 |
| 掲載はあるがクリックなし | インプレッション > 1,000 かつクリック = 0 | 検索意図とのずれを確認 |
これにより「次にどの記事を改善すべきか」の優先リストが自動で生成されます。SEO担当者が毎週手作業で行っていた分析工数を大幅に削減できます。

cronで定期実行するときの注意点
GSCデータを毎週自動取得してレポートを生成する場合、cronでの定期実行が便利です。ただし、macOS環境特有の注意点があります。
macOS TCC(プライバシー保護)による権限エラーの正体
macOSには「TCC(Transparency, Consent, and Control)」というプライバシー保護機能があります。アプリやスクリプトが特定のフォルダ(デスクトップ、ドキュメント等)にアクセスするには、ユーザーの許可が必要です。
問題が起きやすいのは次のようなケースです。
- ターミナルから手動実行→正常動作(ターミナルの権限を継承)
- cronで定期実行→
Permission deniedエラーが発生
根本原因: cronはシステムのlaunchdから起動されるため、ターミナルが持つフルディスクアクセス権限を継承しません。そのため、デスクトップや書類フォルダ内のファイル(認証キー等)にアクセスできないことがあります。
あるメディアサイトのGSC自動化では、数日間は正常動作していたものの、サーバーの再起動後から突然以下のエラーが発生するようになりました。
PermissionError: [Errno 1] Operation not permitted
対象: ~/Desktop/credentials/service-account.json
調査の結果、定期実行プロセスの再起動により「デスクトップ」へのアクセス権限が失われたことが判明しました。
SAキーの配置を変更してcronからのアクセスを確保する
最も確実な解決策は、認証キーをホームディレクトリ直下の隠しフォルダに移動することです。
# 専用ディレクトリを作成
mkdir -p ~/.credentials/gsc/
# 認証キーを移動
mv ~/Desktop/service-account.json ~/.credentials/gsc/service-account.json
# アクセス権限を適切に設定
chmod 700 ~/.credentials/gsc/
chmod 600 ~/.credentials/gsc/service-account.json
スクリプト内のパスも合わせて更新します。
# 変更前
KEY_FILE = os.path.expanduser('~/Desktop/credentials/service-account.json')
# 変更後
KEY_FILE = os.path.expanduser('~/.credentials/gsc/service-account.json')
~/.credentials/ や ~/.config/ はmacOSのTCCの対象外となるため、cronからも問題なくアクセスできます。

macOSのフルディスクアクセス設定による根本解決「システム設定」→「プライバシーとセキュリティ」→「フルディスクアクセス」で、使用しているターミナルアプリに権限を付与する方法もあります。ただし、認証キーをホームディレクトリ配下に移動する方法の方がセキュリティ的に望ましいです。
よくある質問
Q. Google Search Console APIは無料で使えますか?
はい、無料で利用できます。公式の料金ページに、Search Console APIの利用はすべて無料と書かれています。ただし利用枠の上限があり、検索データの取得はサイトごと・ユーザーごとに毎分1,200回、プロジェクトごとに毎分40,000回・1日3,000万回までです(2026年10月11日確認)。
Q. GSC APIを使うのにオーナー権限は必要ですか?
検索データの取得には必要ありません。公式ドキュメントが求めているのは読み取りの権限で、サービスアカウントを「制限付き」ユーザーとして追加すれば、検索パフォーマンスのデータを取得できます。所有者としての追加が必要なのは、URLのインデックス登録を通知するIndexing APIを使う場合です。
Q. サービスアカウントとOAuth認証はどちらを使うべきですか?
自動化・定期実行を目的とする場合はサービスアカウント認証が適しています。利用者が同意画面で許可する方式のOAuth認証は、ブラウザでの操作が必要なため、人が介在しない定期実行には向きません。複数のサイトを一元管理する場合も、サービスアカウントの方が管理しやすいです。
Q. APIで取得できるデータの期間はどのくらいですか?
GSC APIで取得できるデータの期間は過去16か月で、画面の検索パフォーマンス レポートと同じです。それより前のデータは後から取得できないため、長い期間で比較したい場合は、月次でBigQueryやCSVに保存しておくことをおすすめします。なお、直近のデータは通常2〜3日後に反映されます。
Q. 検索タイプ「ウェブ: マルチモーダル」のデータはAPIで取得できますか?
2026年10月11日時点でも、公式には示されていません。2026年9月24日の発表はSearch Consoleの画面のレポートについてのもので、APIには触れていません。APIのリファレンスで指定できる検索タイプにも、マルチモーダルに当たる値は載っていません。現時点では、画面の「エクスポート」でデータを取得します。
Q. cronで定期実行しているのに突然エラーが出た場合は?
macOSでは本記事で解説した「TCC(プライバシー保護)」による権限エラーが最も多い原因です。エラーメッセージに Operation not permitted や Permission denied が含まれている場合は、認証キーの配置場所を ~/.credentials/ 配下に変更することで解決できます。
\ AI活用の「次の一手」を一緒に考えませんか /
AI顧問の無料相談はこちらまとめ
Claude CodeとGoogle Search Console APIを連携することで、以下が実現できます。
- APIは無料で、1リクエスト最大25,000行を指定でき、startRowでページングできる。ただし1日・検索タイプごとに最大50,000行で、全行の取得は保証されない
- summary/queries/pages等9種類のコマンドで多角的な分析が可能
- cronで定期実行し、毎週のレポート作成を自動化できる
- 改善機会分析で「次に手を入れるべき記事」を自動リストアップできる
セットアップのポイントは「サービスアカウントを対象プロパティのユーザーに追加すること(権限は「制限付き」で足りる)」と「macOSのcron実行を考慮した認証キーの配置場所」の2点です。
GSC自動化はSEO業務改善の入り口のひとつです。さらに一歩進めると、SEO記事の自動生産ラインのように、KW選定→記事執筆→WP公開→インデックス申請まで一連のフローをClaude Codeで自動化することも可能です。
法人向けAI導入・活用の月額伴走サービス
AI導入の疑問を、週1回のMTGで相談できる「AI顧問」
株式会社Nexaでは、ChatGPT・Claude・Claude CodeなどのAI導入に関する質問や、社内活用・業務自動化の進め方を週1回相談できる 月額7万円(毎月3社限定で月額5万円)のAI顧問サービス を提供しています。
「自社では何から始めるべきか」「この業務はAI化できるか」「どのツールを選ぶべきか」を、無料相談で整理します。
AI導入を検討中の方へ









