Bloggerインデックス通知バッチでGoogle検索インデックス登録を自動化!

投稿日: 

Google Cloud Python

B!
James OsborneによるPixabay(https://pixabay.com/)からの画像

Bloggerで記事を公開した後, Google検索に素早くインデックスされることはアクセスアップの重要なポイントです。

しかし, 手動でGoogle Indexing APIにURLを通知するのは手間がかかります。

そこで, Blogger APIで記事URLを取得し, Google Indexing APIへ自動通知するツールを作成しました。

主な特徴

  • Blogger API連携:ブログ記事URLを自動取得
  • Firestore管理:各URLの通知日時を記録し, 古い順に抽出
  • Google Indexing API通知:指定件数だけ自動でインデックス登録リクエスト
  • HTMLメール通知:結果を分かりやすいHTMLメールで受信
  • 環境変数管理:APIキーやメール設定は環境変数で安全に管理
  • ログ出力:標準出力で実行状況を確認可能

Google Cloud Functionsでの運用方法

必要なGoogle Cloudリソース

  • Firestore:通知履歴管理用
  • Cloud Run Functions:バッチ本体の実行環境
  • サービスアカウント:Indexing API・Firestoreへのアクセス権限

Firestoreの有効化

Google Cloud ConsoleでFirestoreを有効化します。

サービスアカウント権限設定

Cloud Functions用サービスアカウントに以下のロールを付与します。
※ 本当に必要な最小権限を見極め切れておらず……。

  • Google Cloudの編集者権限
  • Google Search Consoleのオーナー権限

Cloud Run Functionsの環境変数の設定

Cloud Run Functionsの「環境変数」欄に, 各種キー・メール情報を設定します。(README.mdに記載があります。)

必要に応じて, Secret Managerを活用してください。

変数名用途
BLOGGER_INDEX_REGIST_API_KEYBlogger APIキー
BLOG_ID対象ブログのID
MAIL_FROM送信元メールアドレス(Gmail)
MAIL_PASSWORDアプリパスワード
MAIL_TO通知先メールアドレス

Cloud Run Functionsのデプロイ

Cloud Run Functionsにソースコードを登録し, デプロイします。

requirements.txtには, 以下を登録します。

google-cloud-firestore
google-auth
google-auth-httplib2
google-api-python-client

Cloud Schedulerでの定期実行

Cloud SchedulerでHTTPリクエストを定期的に送信することで, バッチを自動実行できます。

ダウンロードはこちら

ソースコードは以下のリンクからダウンロードできます.
ご意見・ご感想・バグ報告などがあれば, お気軽にGitHubのIssue, 本記事のコメントなどでお知らせください!

最後まで読んでいただきありがとうございました!