※本記事にはPR(アフィリエイト広告)が含まれています。
こんにちは!「ブログ集客自動化マスター講座」第4回へようこそ。前回までの講座では、ブログ記事の自動投稿やアクセス解析の基礎について学んできました。今回のテーマは「Search Console API」です。少し難しそうに聞こえるかもしれませんが、これを使いこなせるようになると、検索順位やユーザーがどんなキーワードでブログにたどり着いているのかを、自動で、しかも定期的に分析できるようになります。
毎回Google Search Consoleの管理画面にログインしてデータを確認するのは意外と手間がかかりますよね。この記事では、プログラミング初心者の方でも理解できるよう、ひとつずつ丁寧に解説していきますので、ぜひ最後までお付き合いください。
Search Console APIとは何か?基本を理解しよう
まずは「Search Console API」がどんなものなのか、基礎知識から押さえていきましょう。
Search Console APIでできること
Google Search Consoleは、自分のブログやWebサイトが検索結果でどのように表示されているかを確認できる無料ツールです。通常はWebブラウザ上の管理画面から確認しますが、「Search Console API」を使うことで、このデータをプログラムから自動的に取得できるようになります。
- どんなキーワードで検索されてブログに訪問されているか
- 各キーワードでの検索順位の推移
- 検索結果での表示回数やクリック数、クリック率(CTR)
- どのページがよく検索されているか
こうしたデータを、毎日・毎週自動で取得し、スプレッドシートやデータベースに蓄積していくことで、集客施策の精度をぐっと高めることができます。
なぜ自動化が必要なのか
手動でデータを確認する場合、「気づいたときに見る」というスタイルになりがちで、せっかくの貴重なデータの変化に気づけないことがあります。APIを使って自動化すれば、毎日決まった時間にデータを取得し、順位が下がったキーワードや伸びてきたキーワードをいち早く察知できます。これは、ブログ集客を効率的に伸ばしていくうえで非常に重要なポイントです。
Search Console APIを使うための事前準備
実際にAPIを使い始める前に、いくつかの準備が必要です。順を追って説明します。
Google Cloud Platformでのプロジェクト作成
Search Console APIを利用するには、まずGoogle Cloud Platform(GCP)でプロジェクトを作成する必要があります。手順は以下の通りです。
- Google Cloud Platformのコンソールにアクセスする
- 新しいプロジェクトを作成する
- 「APIとサービス」メニューから「Search Console API」を検索して有効化する
認証情報(サービスアカウント)の取得
APIを利用するには「認証」が必要です。初心者の方には「サービスアカウント」を使う方法がおすすめです。
- GCPの「認証情報」ページで「サービスアカウントを作成」を選択
- 作成したサービスアカウントの「鍵」としてJSON形式のファイルをダウンロード
- Search Consoleの管理画面で、該当のサービスアカウントのメールアドレスを「ユーザーを追加」から登録する
このJSONファイルが、今後プログラムからAPIにアクセスする際の「鍵」になりますので、大切に保管してください。
Pythonで検索データを取得してみよう
準備が整ったら、実際にPythonを使ってデータを取得してみましょう。
必要なライブラリのインストール
まずは以下のコマンドで、必要なライブラリをインストールします。
pip install google-api-python-client google-auth
検索パフォーマンスデータを取得するコード例
以下は、過去28日間の検索キーワードごとのデータを取得するシンプルなサンプルコードです。
from google.oauth2 import service_account
from googleapiclient.discovery import build
import datetime
# 認証情報の設定
SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
KEY_FILE = 'your-service-account-key.json'
credentials = service_account.Credentials.from_service_account_file(
KEY_FILE, scopes=SCOPES)
# Search Console APIのサービスを構築(検索パフォーマンスデータの取得にはwebmasters/v3を使用)
service = build('webmasters', 'v3', credentials=credentials)
# サイトURLを指定
site_url = 'https://your-blog-url.com/'
# 日付の範囲を設定(過去28日間)
end_date = datetime.date.today()
start_date = end_date - datetime.timedelta(days=28)
request = {
'startDate': start_date.isoformat(),
'endDate': end_date.isoformat(),
'dimensions': ['query'],
'rowLimit': 50
}
response = service.searchanalytics().query(
siteUrl=site_url, body=request).execute()
# 結果を表示
for row in response.get('rows', []):
keyword = row['keys'][0]
clicks = row['clicks']
impressions = row['impressions']
ctr = row['ctr']
position = row['position']
print(f"キーワード: {keyword} / クリック数: {clicks} / 表示回数: {impressions} / CTR: {ctr:.2%} / 平均順位: {position:.1f}")
取得したデータの見方
このコードを実行すると、キーワードごとに「クリック数」「表示回数」「CTR(クリック率)」「平均掲載順位」が出力されます。それぞれの指標には、次のような意味があります。
- クリック数:そのキーワードで検索結果からブログに訪問した回数
- 表示回数:検索結果にブログが表示された回数
- CTR:表示された回数のうち、実際にクリックされた割合
- 平均掲載順位:そのキーワードでの検索結果の平均順位
例えば「表示回数は多いのにクリック数が少ない」キーワードがあれば、タイトルやディスクリプションを見直すことでCTRの改善が期待できます。
取得データを活用して集客を改善する方法
データを取得できるようになったら、次はそれを実際の集客改善にどう活かすかがポイントです。
分析すべき3つの視点
- 順位が上がってきたキーワード:もう少しでトップページ圏内に入りそうなキーワードは、記事をリライトして内容を強化するチャンスです。
- 表示回数は多いがCTRが低いキーワード:タイトルやメタディスクリプションを改善することで、クリック率の向上が見込めます。
- 急に順位が下がったキーワード:競合記事の変化やGoogleのアルゴリズム変動の可能性があるため、早めの対策が必要です。
定期実行で完全自動化する
先ほどのPythonコードを毎日自動で実行するように設定すれば、手作業なしで継続的にデータを収集できます。例えば以下のような方法があります。
- Windowsの「タスクスケジューラ」やMacの「cron」を使って定期実行する
- Google Colaboratoryやクラウド環境(GCP Cloud FunctionsやAWS Lambdaなど)で定期実行する
- 取得したデータをスプレッドシートやデータベースに自動保存し、グラフ化する
このように自動化の仕組みを作っておくことで、「気づいたらデータが溜まっている」状態を作ることができ、分析に集中できる環境が整います。
まとめ
今回は、Search Console APIを使って検索順位や流入キーワードを自動分析する方法について解説しました。ポイントを振り返ってみましょう。
- Search Console APIを使うと、検索順位やキーワードデータをプログラムから自動取得できる
- 利用にはGoogle Cloud Platformでのプロジェクト作成とサービスアカウントの認証設定が必要
- Pythonを使えば、比較的簡単なコードでデータ取得が可能
- 取得したデータは、リライトすべき記事の発見やタイトル改善などに活用できる
- 定期実行の仕組みを作ることで、完全に自動化された分析環境が構築できる
最初は難しく感じるかもしれませんが、一度仕組みを作ってしまえば、その後はほとんど手間をかけずに貴重なデータを得られるようになります。ぜひこの機会にチャレンジしてみてください。
次回、第5回では「取得したデータを自動でレポート化し、メールやSlackに通知する方法」について解説していきます。お楽しみに!
Photo by Mohammad Rahmani on Unsplash

