Python

Google Search Consoleのページとクエリ分析でリライト候補を自動選定する方法

はじめに

Google Search Console の問題

Google Search Console でサイトの検索パフォーマンスを分析する際、
以下のような問題に直面することが多いのではないでしょうか。

  • 検索クエリとその検索結果で表示されるページ(URL)の対応を1つずつ確認する必要がある
  • 上位表示されているのに CTR が低い記事を見つけるのが大変
  • 1つのページに対して複数のクエリが関連している状況を把握しづらい
SANACHAN
SANACHAN
サイト内の記事からリライト(書き直し)候補を選定する作業が超大変。

 

本記事での解決方法

この記事では、Google Search Console API を使って以下の作業を自動化します。

  • ページ(URL)とクエリの連結データを一括で取得
  • リライト候補を自動で選定
  • 分析しやすい Excel 形式でレポートを出力

ソースコード一式

本記事で使用するソースコードは、以下で公開しています。
GitHub - SANACHAN-prog / google-search-console-rewrite-finder

 

必要な環境

本ツールを実行するには、以下の環境が必要となります。

関連

なお、前編となる「Google Search Console API を Python で利用するための環境構築
に記載の設定が完了していることを前提としています。

アプリ/ライブラリ名 バージョン
Python v3.11.11(v3.8 以上必須)
pandas v2.2.3
openpyxl v3.1.5
google-api-python-client v2.164.0
oauth2client v4.1.3

 

プログラムの全体構成

ファイル構成と概要

本プログラムは、以下の 3 つの Python ファイルで構成されています。

  1. メインスクリプト(main.py)
    ・プログラムのエントリーポイント
    ・処理全体の制御
    ・設定値の記述
  2. Search Console API 操作クラス(GoogleAPIClientWrapper.py)
    ・Google Search Console API との通信
    ・データの取得
  3. Excel 出力クラス(SearchReportWriter.py)
    ・データフレームの Excel 形式への変換
    ・リライト候補の判定
    ・レポートの書式設定

 

ディレクトリ構成

 Tree
google-search-console-rewrite-finder/
│
├── main.py                       # メインスクリプト
├── key_file.json                 # API認証キー(前編の記事で取得)
├── GoogleAPIClientWrapper.py     # API操作クラス
├── SearchReportWriter.py         # Excel出力クラス
└── requirements.txt              # 依存ライブラリ

 

メインスクリプト

公開しているコードの main.py では、以下のように処理を順番に実行します。

SANACHAN
SANACHAN
加工前の取得データは、CSV 形式でも出力できるようにしてます。
お好みに合わせて切り替えてください。

 

設定項目の説明

設定項目 説明 変更の必要性
API_SCOPES API の権限スコープ 変更不要
API_MAX_ROWS 取得する最大行数 サイト規模に応じて調整
API_KEY_FILE API 認証キーが保存されているファイルのパス 必要に応じて変更
SITE_URL 分析対象のサイトURL(ドメイン) 要変更
PERIOD_DAYS 取得するデータの期間(日数) 必要に応じて調整
OUTPUT_FILE_CSV 出力ファイル名 / パス(CSV) 必要に応じて変更
OUTPUT_FILE_EXCEL 出力ファイル名 / パス(Excel) 必要に応じて変更

 

このメインスクリプトを起点として、以降の章で各クラスの詳細な実装を説明していきます。

 

ページとクエリの連結データ取得

Search Console API のデータ構造

Google Search Console API から取得できるデータには、以下の項目があります。

  • page:ページ(URL)
  • query:検索クエリ
  • clicks:クリック数
  • impressions:表示回数
  • ctr:クリック率
  • position:平均掲載順位

 

データ取得の実装

以下のコードは、「ページ URL」と「検索クエリ」を連結し、その関連データを取得するクラスです。
公開しているコードの GoogleAPIClientWrapper.py です。

SANACHAN
SANACHAN
右上の「コピー」ボタンでコピペできます。

SANACHAN
SANACHAN
このコードでは、取得するデータをクリック数順でソートするよう指示しています。
ハイライトのコメントに書いてある値を指定でき、ソート種別と方向を変更できます。

 

データ取得時の注意点

  • 取得期間の指定
    ・90 日以内のデータを取得可能
    ・日付は YYYY-MM-DD 形式で指定
  • データの制限
    ・1回のリクエストで最大 25,000 行

 

取得データの確認

以下のコードで、取得したデータ(データフレーム)の内容を確認できます。

 

リライト候補の判定

判定条件の設定

リライト候補の判定には、以下の 3 つの条件を使用しています。

  1. 検索順位が上位(10 位以内)
  2. 十分な表示回数(100 回以上)
  3. 低い CTR (3%未満)

 

Excel ファイルへ出力する SearchReportWrite.py に集約されていますが、
L.40 付近の以下のコードが該当します。

 

判定条件のカスタマイズ

条件は以下のような観点で、変更・調整が可能です。
ご自身の「リライト候補」の見つけ方に合わせて、適宜変更してください。

  • 順位の範囲:競争の激しさに応じて調整(例:5 位以内)
  • 表示回数の閾値:サイトの規模に応じて調整
  • CTR の基準:記事内容で触れる業界平均などを考慮して設定

 

Excel 出力の実装

以下のコードは、取得したデータを整形し、Excel ファイルに出力するクラスです。
公開しているコードの SearchReportWrite.py です。

SANACHAN
SANACHAN
右上の「コピー」ボタンでコピペできます。

 

データの整形と Excel への出力

取得した検索パフォーマンスデータを Excel に出力する際、以下の処理を実行します。

  1. データの整形(URL でソート)
  2. リライト推奨の判定結果を追加
  3. Excel 形式での出力と書式設定

全体の流れは、以下のコードが該当します。

 

書式設定:日本語対応の列幅調整

以下のコードで、日本語文字の表示幅を考慮した列幅の調整を行っています。

 

書式設定:セルの配置設定

以下のコードで、数値データの右寄せなど、見やすさを考慮した配置を設定しています。

 

出力される Excel の形式

最終的には、以下のような形式で Excel ファイルが出力されます。

  • A列:クエリ(左寄せ)
  • B列:URL(左寄せ)
  • C列:クリック数(数値、右寄せ)
  • D列:表示回数(数値、右寄せ)
  • E列:CTR(右寄せ)
  • F列:掲載順位(右寄せ)
  • G列:リライト推奨(左寄せ)

出力のサンプル

 

活用方法と分析ポイント

レポートの読み方

生成されたExcelレポートは以下の視点で分析できます。

  1. リライト候補の確認
    リライト推奨 列に「*」がついた記事を優先的に確認
    ー 上位表示されているのに CTR が低い記事の内容を精査
  2. クエリ分析のポイント
    ー 同一URLに対する複数クエリから傾向をつかむ
    ー ユーザーの検索意図とコンテンツのズレ
    ー 類似クエリでの検索順位の違い

 

定期的なチェックの自動化

Linux の場合

以下の run_search_analysis.sh のようなスクリプトを記述し、cron などに登録して定期実行できます。

 crontabの設定
# 毎週月曜日の午前9時に実行
0 9 * * 1 /path/to/run_search_analysis.sh
# 毎日午前5時に実行
0 5 * * * /path/to/run_search_analysis.sh
# 毎月1日の午前0時に実行
0 0 1 * * /path/to/run_search_analysis.sh

Windows の場合

以下のようなバッチファイルを作成し、タスクスケジューラーに登録することで定期実行できます。

 

または、以下の記事を参考に、.exe ファイル化して利用することもできます。

こちらもCHECK

python
Pythonのプログラムをexe化する方法【pyinstaller】

Pythonの無料パッケージであるpyinstallerを使って、Pythonのプログラム(.py)を Windowsの実行可能ファイル(.exe)に変換する方法を紹介します。PythonがインストールされていないWindows環境でも実行できるようになります。

続きを見る

 

おわりに

いかがでしたでしょうか。

これまで、専用の有償ツール(月額)を利用して分析していました。

しかし、Google 側の更新により、ツールが使えなくなり、なかなか対応されないため、
自分で作ることにした結果がこのツールです。

リライト推奨を判別する条件が、私の運営するブログに依存している気もするため、
必要に応じて変更、活用いただければ幸いです。

 

参考

 

こちらの記事もよく読まれています

  • この記事を書いた人
  • 最新記事
SANACHAN

SANACHAN

「生涯一エンジニア」を掲げ、大手グローバル企業でSE/PGとして8年勤め、キャリアアップ転職した現役のエンジニアです。世にあるメジャーな全プログラム言語(コボル除く)を自由に扱えます。一児の父。自分のため、家族のため、日々勉強してます。システムエンジニア、プログラミングに関する情報を蓄積している雑記帳です。

-Python
-, ,