はてなブログのsitemap.xmlひどすぎ問題
これは昔から続いている問題なんだが、はてなブログだとインデックスが上手くいかないケースが有る。
先人の人たちが腐るほどに記事にしてくれている
記事は消されているけど、はてな公式ですら問題を認識している。ならはよ直せよ。
GoogleSearchConsoleからのサイトマップ送信に失敗する問題について
どうもGoogle公式のAPIでインデックスの送信ができるのを知ったので自動化した。
成果物
ググったらコードあった。感謝
クローンしたのが以下
Github Actionsを以下のように作成
name: Github Action CI on: push: schedule: - cron: '57 22 * * *' jobs: execute: name: Submit sitemap to Google runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: "Install compose packages" run: composer install - name: "Execute PHP" env: GCP_CREDENTIALS: ${{ secrets.GCP_CREDENTIALS }} run: |- echo $GCP_CREDENTIALS | base64 -di > credential.json php publish_sitemap_to_indexing_api.php "https://thr3a.hatenablog.com/sitemap_periodical.xml?year=$(date +%Y)&month=$(date +%-m)"
サービスアカウントの作成
ここが結構面倒くさい
- GCPの管理画面から「Indexing API」「Google Search Console API」のAPIを有効化する
- API とサービス/認証情報より「サービスアカウント」を新規作成
- ロールは「閲覧者」でOK
- 作成したサービスアカウントを選んで認証キーを生成、JSONを保存する
- サーチコンソールからからユーザー管理を選択
- さっき作ったサービスアカウントのメールアドレスをユーザー追加
- 必ず権限は「オーナー」にする
GitHub ActionsのCI設定
ダウンロードしたJSONをbase64に変換してSecretsに登録する。CIからは環境変数で渡る
cat credential.json | base64
CI回して全部200ならOK
スケージュール入れたので毎日自動送信されるはず