【画像解説】Search Console API✕PythonでSEOデータ自動取得

【画像解説】Search Console API✕PythonでSEOデータ自動取得

ウェブサイトの検索パフォーマンスを本気で分析したいあなたへ

Google Search Console APIの使い方がわかれば、SEO施策が一気に進化します。

Google Search Consoleは多くのサイト運営者にとって必須ツールですが、その機能はAPI経由で使うことで真価を発揮します。手動で画面を操作する手間がなくなり、検索アナリティクス・サイトマップ・インデックス確認などをすべて自動化できます。

この記事では、Google Search Console APIの利用開始手順から、Pythonによる初回実装例・認証方法・活用法・注意点まで、完全に網羅して解説します。


こんな悩みを持つ方にぴったりです👇

APIって難しそうで手が出せない
複数のサイトデータを一括取得したい
Search Consoleのデータを自社のBIツールと連携したい
定期的にレポートを自動生成したい
検索順位の異変にリアルタイムで気づきたい


読み進めることで、以下のような力が身につきます👇

Google Search Console APIの概要とできることが明確になる
OAuth 2.0認証・クライアントIDの設定方法がわかる
Pythonでの基本的なAPIリクエスト実装ができるようになる
クォータ制限やエラー対応などの運用ノウハウを習得できる
自動化によるSEO改善スピードを加速できる

この記事は、初心者でもわかるステップバイステップ形式で進行し、実務にそのまま使えるコード付きで構成しています。
Google Search Console API 利用開始のベストな第一歩を、今ここで踏み出しましょう。


目次

Google Search Console APIとは?

検索パフォーマンスを自動で可視化・管理できる、SEOの最強パートナー🔍

Google Search Console APIは、Googleが提供する公式ツールで、ウェブサイトの検索状況を自動的に取得・分析できる強力なインターフェースです。

手作業でのデータ収集や確認作業に限界を感じている方にとって、APIの導入は大きな飛躍につながります。

AOI345.com

WEBサイトのGoogle Search Consoleの表示内容を自作のプログラムに組み込むことができるようするものがAPIです。


🔧 何ができるの?

検索アナリティクスデータ(クエリ・クリック数・CTR・掲載順位)を自動取得
サイトマップの送信・取得・エラー確認をスクリプトで管理
URL検査によるインデックス状況・モバイル対応・構造化データの状態を一括チェック
ウェブインターフェースでは実現しづらいスケーラブルなSEO分析と監視が可能

これにより、日次や週次でのレポート作成、異常検知、パフォーマンス改善の施策立案までを自動化し、SEO運用のスピードと精度を大幅にアップ⏫できます。


導入前に準備すべきこととは?

Google Search Console APIを使い始めるには、最低限の準備が必要です🛠️

APIを活用するには、まずSearch Consoleに登録されたサイト情報とGoogleアカウントの整備が不可欠です。技術的な前提条件をクリアしておけば、後の設定もスムーズに進みます。

AOI345.com

APIを使う前に🔗 Google Search ConsoleWEBサイトのサービスを使っていればこの章の事前準備は完了しています。
Google Search Consoleは無料です。

Google Search Console

✅ 必須要件をチェックしよう

Googleアカウントを保有しており、Search Consoleに対象サイトが登録済みであること
◉ サイトの所有権がSearch Console上で確認済みになっていること
◉ Search Consoleに不慣れな場合は、まずウェブUI(管理画面)で基本機能を把握しておくと安心

特に所有権の確認はAPI操作において非常に重要なステップです。操作対象となるサイトであっても、アカウントに必要な権限がないとAPIリクエストが失敗します⚠️

また、Search Consoleの画面操作に慣れておくことで、APIで何が自動化できるのか、直感的に理解しやすくなります。


GCPプロジェクトの作成とAPIの有効化

Google Search Console APIを使うには、まずGCPの設定が欠かせません🔑

🔗 Google Cloud Platform(GCP)は、Googleの各種APIを使うための基盤です。ここでプロジェクトを作成し、Search Console APIの利用を明示的に有効化する必要があります。

設定自体はシンプルですが、今後の運用効率やクォータ管理にも関わるため、丁寧に進めていきましょう。


✅ 実施すべき設定ステップ

1️⃣ 🔗 Google Cloud Platform(GCP)にアクセスし、新しいプロジェクトを作成

2️⃣ ナビゲーションメニューから「APIとサービス」を開く

APIとサービス

3️⃣ 左のメニューから「ライブラリ」を開く

ライブラリ

4️⃣ 検索バーで「Google Search Console API」を入力し、表示されたAPIを「選択」

Search Console API

5️⃣ 「有効にする」を選んでAPIを有効化する

APIを有効にする

この設定を行うことで、プロジェクト単位でAPIが利用できる状態になります。


さらに、このプロジェクトでは次のような管理が可能になります👇

◉ APIの利用上限(クォータ)の確認・調整
◉ 利用量に応じた請求管理(基本無料範囲あり)

◉ 認証情報(クライアントIDやAPIキー)の一元管理

Search Console APIは基本的に無料で使えますが、GCP側ではプロジェクトの請求設定を求められることがあります。これは将来的に他のGoogle APIを併用する際の拡張性にもつながるため、安心して登録しておきましょう。


OAuth 2.0の認証設定と同意画面の作成

Search Console APIを使うには、Googleアカウントとの安全な連携が必要です🔐

そのためには、Googleが提供するOAuth 2.0認証を活用し、ユーザーの同意を得たうえでデータにアクセスできるように設定を行います。
このステップでは、認証フローを構成し、アプリとしての基本情報や権限を定義します。

Google Cloud Platformでの認証設定ステップ

1️⃣ 右上に表示されている「認証情報の作成」を選択

認証情報の作成

2️⃣ 認証情報の種類を選ぶ画面では「ユーザーデータ」を選択して、「次へ」を押します。

ユーザーデータ

3️⃣ OAuth同意画面でアプリ名・サポートメール・デベロッパーの連絡先情報を入力し、保存して次へ

OAuth 同意画面

4️⃣ スコープは省略可なので、とりあえず省略し「保存して次へ」

スコープ

5️⃣ OAuth クライアント IDではアプリケーションの種類と名前を設定し、「作成」

6️⃣ 作成された情報はJSON形式でダウンロードしておき、Pythonスクリプトなどから利用

ダウンロード

7️⃣ 作成された情報はJSON形式でダウンロードしておき、Pythonスクリプトなどから利用します

AOI345.com

ダウンロードできるjsonファイルの入手Google Cloud Platformで実施すべき内容です。
ファイル名を「client_secret.json」に変えて「ユーザー名フォルダ」に置いておくと、後に出てくるテストプログラムを実行しやすいです。


OAuthスコープの選択は非常に重要で、必要最小限の権限だけを指定するのがセキュリティ的にもベストです👇

スクロールできます
スコープURI内容主な用途
https://www.googleapis.com/auth/webmasters.readonly読み取り専用アクセスパフォーマンスデータ取得などに最適
https://www.googleapis.com/auth/webmasters読み取り+書き込みアクセスサイトマップ送信なども行う場合に必要

認証情報ファイル(***.json)は、APIにアクセスするための鍵のようなもの。セキュリティ上非常に重要なので、外部に漏れないよう厳重に保管してください。

さらに、認証後に得られるアクセストークンやリフレッシュトークンは、別途安全な形式で保存して再利用できるようにしておくと便利です✨


OAuth 2.0のテストユーザーの追加

Googleが提供するOAuth 2.0認証で、Googleの審査プロセスを完了せずにテストプログラムを動作させるには「テストユーザー」の追加が必要です。

自分のGoogleアカウントのメールアドレスをテストユーザーに追加することで審査プロセスを完了していないプログラムを実行できるようになります。

テストユーザーに追加していない場合のプログラム実行時

Googleの審査プロセス

✅ 実施すべき追加ステップ

1️⃣ 🔗 Google Cloud Platform(GCP)にアクセスします

2️⃣ ナビゲーションメニューから「APIとサービス」を開く

APIとサービス

3️⃣ 左のメニューから「OAuth 同意画面」を開く

OAuth 同意画面

4️⃣ 左のメニューから「対象」を選択

5️⃣ テストユーザー内の「+Add users」を選ぶ

テストユーザー +Add users

6️⃣ 右側に出てくるポップアップに「自分のGoogleアカウントのメールアドレス」を記載して「保存」

7️⃣ テストユーザー内に追加されていれば成功です

テストユーザー

Pythonでアプリを実行する環境を構築

PythonからGoogle Search ConsoleのAPIを呼び出すプログラムを実行してみます。
そのためには、パソコンにPythonの実行環境が入っている必要があります。

下記のサイトからPythonの実行環境のファイルがダウンロードできますのでインストールしましょう。

🔗 Welcome to Python.org

Pythonダウンロード

1️⃣ Pythonプログラムをインストールしたら「ターミナル」を起動します。

ターミナルを起動

2️⃣ ターミナルにpython3 –versionと入力して実行し、バージョンが表示されればインストール成功です。

Pythonバージョン確認

3️⃣ 次のテストプログラムで使用するGoogleライブラリもインストールします。
  1つ目のコマンドは「pip3 install google-auth-oauthlib」です。

pip3 install google-auth-oauthlib

4️⃣ 2つ目のコマンドは「pip3 install –upgrade google-api-python-client」です。

pip3 install --upgrade google-api-python-client
AOI345.com

この2つのライブラリの追加が完了しましたら、次のプログラムの実行環境が完了になります。

5️⃣ 3つ目のコマンドは「pip3 install pandas」です。

pip3 install pandas
AOI345.com

このライブラリは2つ目のサンプルを実行するのに必要になります。

6️⃣ 最後に「python3」と入力して、実行状態にしておきましょう。

python3

PythonでAPIにアクセスする方法【初心者OK】

Pythonを使えば、Google Search Console APIの操作は驚くほどシンプルに✨

このセクションでは、APIへ接続するための基本手順と、Pythonコードの実装方法を初心者向けにわかりやすく解説します。
初回設定が済めば、次回以降は再認証不要で実行可能な仕組みも構築できます🔁


✅ サンプルプログラムの流れ

◉ 必要なライブラリをインストール(1行コマンドでOK)
◉ ダウンロードした認証情報ファイル(***.json)を使ってOAuth 2.0認証を実行
◉ トークンをファイルに保存し、2回目以降は自動ログイン状態で処理を継続


以下のような基本コードで、Search Consoleに登録されているサイト一覧を取得できます👇

from google_auth_oauthlib.flow import InstalledAppFlow  
from googleapiclient.discovery import build  
import os  

SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']  
CLIENT_SECRETS_FILE = 'client_secret.json'  
TOKEN_FILE = 'token.json'  

def authenticate():  
    creds = None  
    if os.path.exists(TOKEN_FILE):  
        from google.oauth2.credentials import Credentials  
        creds = Credentials.from_authorized_user_file(TOKEN_FILE, SCOPES)  

    if not creds or not creds.valid:  
        flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES)  
        creds = flow.run_local_server(port=0)  
        with open(TOKEN_FILE, 'w') as token:  
            token.write(creds.to_json())  

    return creds  

def get_service():  
    credentials = authenticate()  
    service = build('searchconsole', 'v1', credentials=credentials)  
    return service  

def list_sites(service):  
    site_list = service.sites().list().execute()  
    for site in site_list.get('siteEntry', []):  
        print(f"URL: {site['siteUrl']} | 権限: {site['permissionLevel']}")  

if __name__ == '__main__':  
    sc_service = get_service()  
    list_sites(sc_service)

このコードをベースに、検索アナリティクスの取得やURL検査、サイトマップの送信などの処理にも拡張できます。
最初のハードルを越えれば、APIの可能性が一気に広がります💡


1️⃣ 前の章でPython実行状態のところにサンプルプログラムの内容をすべて貼り付けます。
  さらにリターンキーを2回押して、プログラムを実行します。

ソースコード

2️⃣ ブラウザが起動し、アカウントの選択画面になるので自分のGoogleアカウントを選びます

アカウントの選択

3️⃣ 権限の承認を求めてくるので「続行」を選びます

SEO分析がgoogleアカウントへのアクセスを求めています

4️⃣ 表示内容が下記の様になっていれば「ブラウザを閉じ」てOKです

Completed

5️⃣ ターミナルの画面に「Google Search Consoleに登録しているサイトの一覧」が表示されます

サイト一覧
AOI345.com

これにて、Google Search ConsoleのAPIを使用したサンプルプログラムが実行できたことになります。
以降の内容を参考にサンプルプログラムを編集して、様々なAPIを実行して見ましょう!


主要機能①|検索アナリティクスデータの取得

Google Search Console APIの中心機能が、この検索アナリティクスの取得です📊

Google検索でのパフォーマンスを可視化し、キーワードやページごとの成果をデータドリブンで分析できます。
通常のSearch Console画面では難しいフィルタや集計も、APIを使えば柔軟に自動処理できます。

✅ 取得できる主要データ

クエリ別・ページ別の表示回数、クリック数、CTR(クリック率)、平均掲載順位
日別・デバイス別・国別などのセグメントごとの詳細な分析が可能
フィルタ(例:特定のページやクエリのみ)で狙ったデータを抽出できる
日次で自動取得し、順位変動や改善効果を可視化できるダッシュボードを構築可能

たとえば、「CTRが高いのに掲載順位が低いクエリ」を特定することで、狙って改善できるページを明確に選定できます。


さらに、長期的なキーワードパフォーマンスのトレンド把握や、リライト施策の効果測定もスムーズに行えます。

スクロールできます
指標名内容使い方の例
clicks検索結果からのクリック数コンテンツの訴求力を測定
impressions表示された回数検索ボリュームと露出の確認
ctrクリック率(clicks/impressions)タイトル・ディスクリプション改善の評価
position平均掲載順位SEO施策の効果測定や順位変動の監視

APIを使えば、手作業では面倒な時系列分析やページ別レポートもすべて自動化可能です。
PythonやGoogleスプレッドシートと連携することで、業務フローに組み込むのも簡単です💡


主要機能②|サイトマップの送信・取得・削除

新しいページを素早くインデックスさせたいなら、サイトマップの自動送信が鍵🔁

Google Search Console APIを使えば、サイトマップの送信・取得・削除・エラー監視をすべてプログラムから操作できます。
コンテンツ更新のたびに手動で送信する必要がなくなるため、運用の自動化とインデックススピードの改善が実現します。


✅ サイトマップ操作でできること

◉ APIから新しいサイトマップを送信し、クロールを即座に促すことが可能
◉ サイト更新後に自動でサイトマップ通知するフローを構築すれば、作業ミスも防止
◉ APIを使ってサイトマップのステータス(送信日、エラー有無、警告数など)を取得可能
エラーや警告の有無を監視ツールと連携すれば、問題検知と対応を高速化できる


以下は、よく使われるメソッドとその内容をまとめた表です👇

スクロールできます
メソッド名機能活用シーン
sitemaps.submitサイトマップの送信新規ページ追加時の通知自動化
sitemaps.listサイトマップ一覧を取得登録状況の確認や重複チェック
sitemaps.getステータス確認エラー発生時の詳細把握
sitemaps.deleteサイトマップの削除古いURL群を整理する際に活用

たとえば、ブログやECサイトで毎日ページが追加される場合、新着記事や商品ページを自動的にGoogleに通知できます。
これにより、検索エンジンへの認識速度が上がり、早期インデックス&流入増加に直結🆙します。


主要機能③|URL検査(インデックス確認・クロール結果)

重要ページがGoogleに正しく認識されているか、一目でチェック🔎

Google Search Console APIでは、URL検査ツールの機能をプログラムから利用できます。
検索パフォーマンスに直結するインデックス状況やクロール結果、構造化データの対応状況を、自動で確認・監視することが可能です。

✅ URL検査APIでできること

指定したURLのインデックス登録状況や最終クロール日時を確認
Googleが認識しているカノニカルURL(正規URL)がどれかを把握
リッチリザルト(構造化データ)対応状況やモバイルユーザビリティの診断結果も取得
◉ 新規記事や重要なランディングページを即時チェックし、インデックス漏れを防止
複数URLを一括で検査できるので、サイト全体の健全性チェックにも有効
エラー検出時に自動アラートを送る通知機能も連携可能


以下のような情報がAPIで得られます👇

スクロールできます
項目内容活用例
indexingStateインデックスの登録状況未登録ページの検出
lastCrawlTime最終クロール日時クロール頻度の確認
pageFetchStateクロール時のHTTPステータスエラー発生URLの特定
mobileUsabilityモバイル対応可否UX改善ポイントの把握
richResults構造化データの有無とステータスリッチリザルト表示の支援

記事を公開したのに検索に出てこない…そんな時も、このAPIで一発確認🧩
特に大量のページを管理しているメディアサイトやECサイトでは、自動検査+異常検知の仕組みが非常に役立ちます。


サンプルプログラム2|インデックス確認・クロール日時

「サイト一覧」だけでは面白くないので、URL検査のAPIも使ってみましょう。
今回のプログラムでは「サービスアカウント」の作成「鍵(キー)」の追加Google Search Consoleへ「サービスアカウントの追加」が必要です。

✅ サービスアカウントの追加ステップ

1️⃣ 🔗 Google Cloud Platform(GCP)にアクセスします

2️⃣ ナビゲーションメニューから「IAMと管理」を開く

IAMと管理

3️⃣ 左のメニューから「サービスアカウント」を開く

サービスアカウント

4️⃣ 上部のメニューから「+サービスアカウントを作成」を選ぶ

+サービスアカウントを作成

5️⃣ サービス アカウントの作成画面で「サービス アカウント名」を記載します

6️⃣ 表示されたウィンドウで「サービスアカウント名」を設定する
  サービスアカウントIDが自動で設定されるので「完了」を押します

サービスアカウント名の設定

7️⃣ 元の画面に戻り、一覧に「メールに新たな項目が追加」されていれば成功です
  このアカウントにはまだ「キーがありません」ので追加します

サービスアカウントの確認

✅ 鍵(キー)の追加ステップ

1️⃣ アービスアカウントの一覧から「追加したサービスアカウント」を選びます

サービスアカウントの選択
AOI345.com

このメールアドレスをメモしておきましょう。
あとでGoogle Search Consoleで

2️⃣ アカウントの詳細画面上部のタブから「」を選びます

鍵タブの選択

3️⃣ 表示されるウィンドウで「キーを追加」を選びます

キーを追加

4️⃣ プルダウンメニューが表示されるので「新しい鍵を作成」を選びます

新しい鍵を作成

5️⃣ キータイプの選択画面が表示されるの「JSON」を選んで「作成」を押します

JSONを選択

6️⃣ 「」がパソコンにダウンロードされます

鍵が表示される

7️⃣ 自動でダウンロードされて、保存されます

ファイルが保存されます
AOI345.com

最初のJSONとは別のファイルです。
ファイル名を「your_service_account.json」に変えて「ユーザー名フォルダ」に置いておくと、後に出てくるテストプログラムを実行しやすいです。


✅ 鍵(キー)の追加ステップ

1️⃣ 🔗 Google Search Consoleにアクセスします

2️⃣ Google Search Consoleの左のメニューから「設定」を選びます

Google Search Consoleの設定

3️⃣ 全体設定で「ユーザーと権限」を選びます

ユーザーと権限

4️⃣ ユーザーと権限で「ユーザーを追加」を選びます

ユーザーを追加

5️⃣ ユーザーを追加ウィンドウの「メールアドレス」を入力して「追加」を押します
  権限についてはアプリによって変えるもので「閲覧のみ」か、そのまま「フル」にします。

ユーザーを追加:メールアドレス

6️⃣ 名前の欄に「新たなアカウント」が追加されていれば追加成功です

ユーザー(2)
AOI345.com

この操作がなければ、PythonプログラムからGoogle Search Consoleへのアクセス権限がなくてエラーになります。


✅ サンプルプログラム2

ようやく3つの事前準備が終わりました。
早速、index_statusを使ったサンプルプログラムを実行してみましょう。


以下のようなコードで、Search Consoleに登録されているページであるか確認できます👇

from google.oauth2 import service_account
from googleapiclient.discovery import build

# --- 設定(自分の環境に合わせて変更) ---
SERVICE_ACCOUNT_FILE = 'your_service_account.json'  # JSONファイルのパス
SITE_URL = 'https://aoi345.com/'                   # Search Consoleに登録済のサイトURL
TARGET_URL = 'https://aoi345.com/memorandum/search-console-api-python/'      # 調べたいページのURL

# --- 認証とAPIビルド ---
SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES
)
service = build('searchconsole', 'v1', credentials=credentials)

# --- URLインスペクション ---
request = {
    'inspectionUrl': TARGET_URL,
    'siteUrl': SITE_URL
}
response = service.urlInspection().index().inspect(body=request).execute()

# --- 結果の出力 ---
index_status = response.get('inspectionResult', {}).get('indexStatusResult', {})
coverage = index_status.get('coverageState', '不明')
verdict = index_status.get('verdict', '不明')
last_crawled = index_status.get('lastCrawlTime', '不明')

print(f"📄 URL: {TARGET_URL}")
print(f"📦 インデックス状況: {coverage}")
print(f"🔍 判定: {verdict}")
print(f"⏰ 最終クロール日時: {last_crawled}")
AOI345.com

SITE_URLにSearch Consoleに登録済のサイトURL、TARGET_URLに調べたいページのURLを記載しましょう


🔗Visual Studio Code にソースを貼り付けて、右上の実行ボタンを押します。
下のエリアに実行結果が表示され、インデックスされていることが分かります。

サンプルプログラム2実行結果
AOI345.com

ターミナルにソースコードを貼り付けて実行するのは面倒になってきたので、🔗Visual Studio Code環境を導入しました。
Pythonの実行環境が入っていれば、簡単に導入できます。


サンプルプログラム3|インデックス登録リクエスト

さらに「URL一覧」から、インデックス登録リクエストを行うプログラムも使ってみましょう。
今回のプログラムでは「Indexing API」「オーナー権限への変更」が必要です。

✅ Indexing APIの有効化ステップ

1️⃣ 🔗 Indexing API 有効化ページにアクセスします
  (対象のGoogle Cloudプロジェクトが選択されている状態)

2️⃣ Web Search Indexind APIの「有効にする」を選ぶ

Web Search Indexind API

✅ オーナー権限への変更ステップ

1️⃣ 🔗 Google Search Consoleにアクセスします

2️⃣ Google Search Consoleの左のメニューから「設定」を選びます

設定

3️⃣ 全体設定で「ユーザーと権限」を選びます

ユーザーと権限

4️⃣ Pythonプログラムのために作成したユーザーの右の「メニューアイコン」を選びます

5️⃣ 表示されるポップアップメニューの「権限を変更」を押します

権限を変更

6️⃣ 表示されるポップアップウィンドウの権限「オーナー」に変更して「保存」を押します

オーナー権限へ変更
AOI345.com

インデックス登録リクエストはフルでも足りず、オーナーの権限が必要です。


✅ サンプルプログラム3

ようやく事前準備が終わりました。
早速、インデックス登録リクエストを行うサンプルプログラムを実行してみましょう。

今回のプログラムは下記のようなCSV形式のファイルでリクエスト対象のURLを同じフォルダに置いておきます。
このURLの中身を順番にインデックスを行っていきます。

urls.csv

url
https://example.com/page1
https://example.com/page2
https://example.com/page3

以下のようなコードで、Search ConsoleにURLでインデックス登録のリクエストができます👇

import pandas as pd
import time
from google.oauth2 import service_account
from googleapiclient.discovery import build

# --- 設定 ---
CSV_FILE = 'urls.csv'  # 入力CSV
SERVICE_ACCOUNT_FILE = 'your_service_account.json'  # ダウンロードしたJSON鍵
SCOPES = ['https://www.googleapis.com/auth/indexing']

# --- 認証とAPIクライアント作成 ---
credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build('indexing', 'v3', credentials=credentials)

# --- CSVからURLを読み込み ---
df = pd.read_csv(CSV_FILE)
if 'url' not in df.columns:
    raise ValueError("CSVに 'url' 列が見つかりません")

urls = df['url'].dropna().tolist()

# --- URLごとにインデックス登録リクエスト ---
for url in urls:
    print(f"📤 リクエスト中: {url}")
    body = {
        "url": url,
        "type": "URL_UPDATED"
    }
    try:
        response = service.urlNotifications().publish(body=body).execute()
        print(f"✅ 成功: {response.get('notifyTime', '')}")
    except Exception as e:
        print(f"❌ 失敗: {e}")
    time.sleep(1.5)  # クォータ制限のため少し待機

インデックス登録リクエストの結果

インデックス登録リクエスト結果

サンプルプログラム4|一括インデックス登録確認

インデックス登録リクエストを行うプログラムでリクエストできる数には限界があります。
そこで、URLの一覧からインデックス登録がされているか確認するプログラムを作ってみます。

✅ サンプルプログラム4

今までのサンプルプログラムの準備で事前準備に相当する部分は終わっており、入力のCSV形式のについてもサンプルプログラム3と同じファイルを使います。
結果に関しては大量になるので「index_status_result.csv」というファイルに出力します。

urls.csv

url
https://example.com/page1
https://example.com/page2
https://example.com/page3

以下のようなコードで、Search ConsoleにURLがインデックス登録されているかの一括確認ができます👇

import pandas as pd
import time
from google.oauth2 import service_account
from googleapiclient.discovery import build

# --- 設定 ---
CSV_FILE = 'urls.csv'  # 入力ファイル
SERVICE_ACCOUNT_FILE = 'your_service_account.json'
SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
SITE_URL = 'https://aoi345.com/'  # Search Consoleに登録されたサイトURL(最後に / が必要)

# --- 認証 ---
credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES
)
service = build('searchconsole', 'v1', credentials=credentials)

# --- 関数:インデックス状況を確認 ---
def check_index_status(target_url):
    try:
        request = {
            'inspectionUrl': target_url,
            'siteUrl': SITE_URL
        }
        response = service.urlInspection().index().inspect(body=request).execute()
        result = response.get('inspectionResult', {}).get('indexStatusResult', {})
        return {
            'coverageState': result.get('coverageState', '不明'),
            'verdict': result.get('verdict', '不明'),
            'lastCrawlTime': result.get('lastCrawlTime', 'なし')
        }
    except Exception as e:
        return {
            'coverageState': 'エラー',
            'verdict': str(e),
            'lastCrawlTime': ''
        }

# --- CSV読込 & チェック実行 ---
df = pd.read_csv(CSV_FILE)
if 'url' not in df.columns:
    raise ValueError("CSVに 'url' 列がありません")

results = []
for url in df['url']:
    print(f"🔍 チェック中: {url}")
    status = check_index_status(url)
    results.append({
        'url': url,
        **status
    })
    time.sleep(1.5)  # クォータ制限:1秒以上の待機を推奨

# --- 結果をCSV出力 ---
output_df = pd.DataFrame(results)
output_df.to_csv("index_status_result.csv", index=False)
print("✅ 出力完了:index_status_result.csv")

インデックス登録チェック実施中

インデックス登録チェック実施中

利用上の注意点とトラブル対策

Google Search Console APIを安定して活用するには、設計時から“落とし穴”に備えることが重要⚠️

APIは非常に便利な反面、制限(クォータ)やエラー対応、通信負荷などの考慮点が存在します。
本番運用でのトラブルを避けるために、以下のようなポイントを押さえておきましょう。

✅ 安定運用のために意識すべきポイント

APIにはクォータ制限(QPM=1分あたり、QPD=1日あたり)が設定されているため、アクセス設計時に上限を考慮
エラーコードに応じたハンドリング(リトライやバックオフ)を実装しておくと、APIエラーにも自動で対処できる
キャッシュ処理を活用し、同じリクエストを何度も送らない工夫が必要
分析対象を絞る・時間帯を分散するなどの工夫で、スロットリング(制限発動)を回避
◉ ログを保存し、レスポンス内容やエラー傾向を定期的にチェックする習慣を持つ


APIのクォータ制限の例を以下の表に整理しました👇

スクロールできます
項目制限値(例)対応策
QPM(Queries Per Minute)1,200/サイト呼び出しタイミングを分散
QPD(Queries Per Day)30,000,000/プロジェクトバッチ処理+キャッシュの活用
URL検査API2,000/日(サイト単位)優先URLを絞って検査

バックオフ戦略(指数的待機)を導入することで、瞬間的なアクセス集中によるブロックも回避しやすくなります。
また、「同じクエリを何度も投げる」状態は無駄が多く、クォータの消耗に直結🔻

取得済みデータの保存・活用が、パフォーマンス向上にもつながります。


よくあるエラーとその対処法【簡易まとめ】

Google Search Console APIを使っていると、時に避けられないのがエラーとの遭遇⚠️
ただし、エラーには必ず原因と対処法があります。焦らず、コードと状況を冷静に確認して対応しましょう。

以下に、よく発生するエラーとその対策を簡潔にまとめました👇

✅ エラーコード別 対処のヒント

401エラー(Unauthorized)
→ 認証情報の不備や期限切れが主な原因です。
credentials.jsonが正しく指定されているか、アクセストークンが有効か確認しましょう。

403エラー(Forbidden)
→ Search Console上で対象サイトに対する権限が不足している可能性があります。
→ 使用中のGoogleアカウントが対象プロパティに対して“オーナー”または“フルユーザー”であるか確認してください。

429エラー(Too Many Requests)
→ APIのクォータ制限を超えたことで発生します。
→ リクエストの送信間隔を空ける、指数バックオフ(Exponential Backoff)を実装するなどの対応が有効です。


以下の表に、各エラーの要点を整理しています👇

スクロールできます
エラーコード原因対処方法
401 Unauthorized認証失敗・トークン不備credentials.jsonとトークンの確認・再認証
403 Forbiddenアクセス権限不足Search Console上でのユーザー権限確認・追加
429 Too Many Requestsクォータ超過リクエスト間隔の調整・指数バックオフ導入

エラーは“敵”ではなく、より安全で効率的な運用へのヒント🧠
出力されたメッセージやログはできるだけ保存しておくと、原因究明と再発防止に役立ちます


SEO業務の効率化を次のステージへ🌐

Google Search Console APIを使いこなすことで、SEOの運用は従来の手動作業から脱却し、精密かつ自動化されたデータドリブン戦略へと進化します。

APIを活用すれば、検索クエリやURL単位のインデックス状況をスクリプトで定期取得でき、施策の効果測定や順位変動の監視がリアルタイムで可能になります。

特にPythonと組み合わせれば、レポート作成・異常検出・サイトマップ管理まで幅広い業務を自動化でき、限られたリソースでも高精度なSEO運用が実現できます。

これからSEOをさらに強化したい企業や個人にとって、Search Console APIの導入は“必須の武器”になるでしょう。

Google Search Console APIの導入で、ルーティン作業を自動化し効率化
◉ Pythonでの実装も難しくなく、初心者にも扱いやすい
検索パフォーマンスの可視化と改善アクションの最短化に直結
◉ クライアント案件でも活躍し、信頼性の高いデータ提供が可能

🧩 手動運用に限界を感じている方こそ、今こそAPIの力を取り入れるタイミングです!


🔗 あなたの可能性を広げる新しいチャレンジのご紹介🎁

変化の激しい時代だからこそ、新しいスキルへの挑戦が“成長”への近道です。
この記事では、初心者でも手軽に始められて、将来のキャリアや副収入にもつながる6つの実践分野をご紹介します!

◉ ノーコードツール「AppSheet」で業務アプリを簡単に作成する方法
◉ 「Android Studio」を使った本格的なアプリ開発のステップ解説
◉ 小型PC「Raspberry Pi」のセットアップと活用術を学べるガイド
◉ Windowsからでも安心して始められる「Ubuntu」の導入&使い方
◉ 「WordPress」とGoogleツールを使ったブログ収益化の基本と応用
◉ 低コストで始められる新時代の暗号資産「Chiaマイニング」の魅力と始め方

あわせて読みたい
【完全ガイド】知的暇つぶし!スキルアップ/プログラミング! あなたの可能性を広げる6つの挑戦✨ 変化の激しい時代だからこそ、新しいスキルへの挑戦が“成長”への近道です。この記事では、初心者でも手軽に始められて、将来のキャ...

💡すべて無料または低コストで始められるうえに、「副業」「ITスキルの習得」など、実生活にも直結するテーマばかり!
難しい知識は不要。一歩踏み出せば、きっと新しい世界があなたを待っています🚀

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA



目次