Google Search Console へのサイトマップの更新通知を GitHub Actions で定期実行しよう

Google Search Console へのサイトマップの定期通知を GitHub Actions で定期実行しよう

はじめに

概要

SEO 対策として Google Search Console にサイトマップを登録することは初期の Web ページにとっては重要といえます。
規模が大きくなるとクローリングされやすくなりますが、初期はなかなかそうはいかず、できる限りの努力をしたいところです。
Google Search Console へサイトマップを登録して一安心ではなく、実はサイトがクロールされるたびにサイトマップが確認されることはありません。
そこで、定期的に Google へサイトマップの更新を通知する方法を GitHub Actions で簡単に実現します。
Google では、サイトがクロールされるたびにサイトマップを確認することはありません。サイトマップの確認は最初に通知されたときのみであり、その後は変更が Google に通知された場合にのみ確認します。サイトマップが新規作成された場合、または更新された場合にのみ、Google にサイトマップについて通知する必要があります。未変更のサイトマップについて、送信や通知を複数回行わないようにしてください。

Google へのサイトマップの更新方法

まず最も簡単な方法が Google Search Console の画面で再度サイトマップを登録して、手動で更新する方法です。
ただ、これを毎日行うのは非常に面倒です。
そこで、サイトマップを Google で利用できるようにする(サイトマップを Google に送信する)- Google 検索セントラル を確認すると、以下のような URL へアクセスすると自動的にサイトマップが更新されるようです。
http://www.google.com/ping?sitemap=https://example.com/sitemap.xml
これを自動化する場合は curl コマンドなどでアクセスすると良いですね。
この程度の簡単な処理にうってつけなのが GitHub Actions です。
GitHub Actions では、Push や Pull Request 時以外にも cron による定期実行もサポートされているため、これで毎日更新を送ることにしましょう。
GitHub Actions については前回の記事で簡単な使い方をしていますので、こちらをご覧ください。

サイトマップの更新通知

更新用のコマンド

例えば、今回実行したいコマンドは以下の3つです。
curl -X GET "http://www.google.com/ping?sitemap=https://fwywd.com/sitemap.xml" curl -X GET "http://www.google.com/ping?sitemap=https://fwywd.com/rss/feed.xml" curl -X GET "http://www.google.com/ping?sitemap=https://fwywd.com/rss/atom.xml"
たとえば、手元で curl が使えるので以下のように実行してみました。
curl -X GET "http://www.google.com/ping?sitemap=https://fwywd.com/sitemap.xml" # <html><meta http-equiv="content-type" content="text/html; charset=UTF-8"> # <head><title>Google Webmaster Tools # - # Sitemap Notification Received</title> # <meta name="robots" content="noindex, noodp"> # <script src="https://ssl.google-analytics.com/urchin.js" type="text/javascript"> # </script> # <script type="text/javascript"> # _uacct="UA-18009-2"; # _utcp="/webmasters/"; # _uanchor=1; # urchinTracker(); # </script></head> # <body><h2>Sitemap Notification Received</h2> # <br> # Your Sitemap has been successfully added to our list of Sitemaps to crawl. If this is the first time you are notifying Google about this Sitemap, please add it via <a href="http://www.google.com/webmasters/tools/">http://www.google.com/webmasters/tools/</a> so you can track its status. Please note that we do not add all submitted URLs to our index, and we cannot make any predictions or guarantees about when or if they will appear.</body></html>
これで確かにサイトマップが更新されました。
sitemap01
あとはこちらの処理を GitHub Actions で実装するだけですね。

GitHub Actions での定期実行

定期実行は cron で実現でき、Linux などでサーバー側の処理を担当していた人には馴染みが深いと思います。
初めての方も全く心配なく、指定した時間間隔で指定したコマンドを実行するだけです。
以下のように GitHub Actions へ実装しました。
# .github/workflows/update-sitemap.yaml name: update-sitemap on: schedule: - cron: '0 15 * * *' jobs: update-sitemap: runs-on: ubuntu-latest steps: - name: Ping to Google run: | curl -X GET "http://www.google.com/ping?sitemap=https://fwywd.com/sitemap.xml" curl -X GET "http://www.google.com/ping?sitemap=https://fwywd.com/rss/feed.xml" curl -X GET "http://www.google.com/ping?sitemap=https://fwywd.com/rss/atom.xml"
非常に簡単ですね。
ここで、今回は日本時間の 0 時に実行するように設定していますが、GitHub Actions では UTC で表記する必要がありますので、9 時間引いた 15 時としているわけです。
ぜひ、この機会に cron も知ってもらえると嬉しいです。
あとは、GitHub Actions で毎日 0 時に正しく動作しているか確認できれば OK です。

おわりに

GitHub Actions を使いこなそう

今回はとても簡単な処理を紹介しましたが、Web アプリケーションを作る時に GitHub Actions は大活躍します。
テスト駆動開発やレビューには欠かせない存在ですので、個人開発でも取り入れてみましょう。
今回も最後までお付き合いいただきまして、誠にありがとうございました。
株式会社キカガク 代表取締役会長
吉崎 亮介
twitter: @yoshizaki_91

RSS フィードで fwywd の技術記事を購読しよう

fwywd(フュード) のシェアボタンにある RSS フィードを利用すれば、新しい記事が出るたびに自動的に通知を無料で受け取ることができます。
Slack への連携はたったの5分で行うことができ、以下の記事でその手順を具体的に紹介しています。
ぜひ、fwywd(フュード) が日々更新する技術記事をキャッチアップしていただけると嬉しいです。
subscribe-rss-feed

fwywd ではメンバーを募集しています

recruitment
fwywd では採用試験を無料で公開しています。
採用への応募の有無を問わず、Web アプリケーションの開発を学びたい多くの方にとって有益な試験内容となるように設計しています。 ぜひ、fwywd の面白い採用試験を覗いてみてください。