XML sitemapのPing送信が実は役立たずではなかった話

もしも・・・子サイトマップのURLでPingしたら

昔はどうでも良かったが、現在はGoogle等の検索エンジンに登録して貰いたいならXML Sitemap(XMLサイトマップ)を作成して検索エンジンのウェブマスター向けサービスでそのサイトマップを登録しておくのはほぼ必須。GoogleならGoogle Search Console(以前のGoogle Webmaster Tools)、BingならBing Web Master Toolsマスター ツール。公開したページをインデックス登録するようリクエストするだけならサイトマップ無しでも良いし、記事の公開/更新の少ないサイトや新しいウェブサイトなら登録されるまでの期間はサイトマップより直接のリクエストの方が早いのだが、記事の登録/更新の多いウェブサイトならマイトマップがあった方がインデックス登録が早いかもしれないし、記事がインデックス登録から外れてしまった場合(たまにある)の復帰も早いかもしれない。クローラーの巡回する頻度は、おそらくGoogle等の検索エンジン内でランク付けされてるので更新の多い(という実績のある)サイトは個別にインデックス登録のリクエストをしなくてもかなり早め(数分〜数時間)でクロールされてインデックス登録される筈。

で、サイトマップ自体は定食屋のテーブル(ウェブサイト)に置いてあるメニューのようなものなので、それを客(Googleなど)が手にとって見てくれるかどうかはその時の客の気分次第。GoogleやBingの場合は放っておいたら月1〜数日に1回ほど見に来てくれる程度。これだと新しい記事を公開したり更新したことをなかなかGoogleやBingに知って貰えない。そこで記事の公開や更新をGoogleやBingに知らせる方法が用意されている。Googleの場合はPing(ピン)というもので(何を公開したか/何を更新したかは関係なく)「サイトマップを更新したよ」という意味を込めてサイトマップのURLをGoogleに知らせるとすぐにサイトマップを読みに来てくれるというもの。(Bingは現在はPingではなくIndexNowという違う仕組みになっている)

ところが、このPingは以前は良く効いていたか、Ping送信しなくても毎日読みに来てたと思うのだが最近(2022年)はさっぱり読みに来なくなった。WordPress用のXMLサイトマッププラグインの中にはこのPing送信を自動で行ってくれるものもあるのだが、それを使っていてもサイトマップを読みに来たのが数日前のまま更新されないというのは多くの人が知っている筈。そこで、「Google XML SitemapsプラグインのPing送信のバグ? のおまけ Pingって何?」という記事ではこのPing送信を「どうでもよい機能」と書いていました。

「Googleにサイトマップを送信する」というドキュメント
Google検索セントラルの「サイトマップの作成と送信」という記事によると
https://www.google.com/ping?sitemap=FULL_URL_OF_SITEMAP
というURLでPingを送るということになっている。旧Google Webmaster Tools時代は
http://www.google.com/webmasters/sitemaps/ping?sitemap=FULL_URL_OF_SITEMAP
というURLで、これはWordPressのXMLサイトマップ出力プラグインとしては最もメジャーな(Google) XML Sitemapsプラグインが現在もこのURLを使っている(現在も応答があるので一応有効と思われます)

$ curl "https://www.google.com/ping?sitemap=https://intaa.net/wp-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>

手動でサイトマップURLをPing送信したらこんな感じ。この例ではサイトマップURLはhttps://intaa.net/wp-sitemap.xml (サイトマップインデックス)

最近のウェブサイトではXMLサイトマップは親子関係になっているサイトマップインデックス(親)の下に子サイトマップが付く形式が増えているようだが、ウェブサイト内の全ての記事URL等を1ファイルに書いたサイトマップも使われている。そして、この「がとらぼ」の姉妹サイトの「悪いインターネット」はそのシングルファイルのXMLサイトマップなのだが、試しにその悪いインターネットのサイトマップのURLをPing送信してみたところ、1分経たずにSearch Consoleの「送信されたサイトマップ」の「最終読み込み日時」が「今日」になった。「検出されたURL」数も最新のXMLサイトマップに含まれるURL数に更新された。ここで「アレ?」と思った。

・サイトマップインデックス(親サイトマップ)のURLをPing送信した → サイトマップを読みに来ない
・シングルファイルのサイトマップURLをPing送信した → すぐにサイトマップを読みに来た

そもそも、サイトマップインデックスには個別記事のURLは含まれないためSearch Consoleの「送信されたサイトマップ」のレポートでは読みに来たかを確認できない。ウェブサーバではサイトマップへのアクセスのログを録ってないので判らない。そこでウェブサーバ上でtcpdumpを使って通信を録りながらサイトマップインデックスのURLをpingした。すると、Ping送信後すぐにgooglebotが来ていることが判った。
つまり、サイトマップインデックスのURLをPing送信するとgooglebotはすぐに来るが、サイトマップインデックスには(子)サイトマップURLしか存在しないのでそのGoogleボットが情報取得するのはそこで終わり。子サイトマップはそのときには読まれない。後で(数日後に)Googleの気が向いたときに子サイトマップを読みに来る。そういうことかと。

では、子サイトマップのURLをPing送信したらどうなるのだろう。(次へ)

Search ConsoleでPing送信したサイトマップを確認
Pingを送信して画像を取得したのは2023年1月2日です。
この「がとらぼ(inta.net)」の子サイトマップは8個あるが、その内の3つだけPing送信して3分後にSearch Consoleのサイトマップレポートを表示した。(Ping送信前は「2023/01/02」ではないことを確認済み)
予想通りPing送信した3つの子サイトマップは「最終読み込み日時」が「今日」の日付(2023/01/02)になった。そして、一番右の「検出されたURL」の数も更新された。1月1日に新しい記事を1つ公開し、古い飲食系の記事を複数削除したので「検出されたURL」の数が変わるのは正しい。新しい記事を公開したり過去記事を削除/非公開にしていなければ変わらない筈。

親子型のXMLサイトマップを置いている場合はサイトマップインデックスのURLをPing送信するのは役に立たず、個別に子サイトマップのURLをPing送信するのが良い。というのが判った。
なお、Googlebotが(子)サイトマップを読みに来たからといって、新しく公開した記事がすぐにクロールされてインデックス登録されるとは限らないので念の為。あくまでも「Ping送信したサイトマップをすぐに読みに来る」という話です。

今後、親子型XMLサイトマップ出力ツール(プラグイン)のようなものを作ってPing機能を実装するなら(更新された)子サイトマップのURLをPing送信するのが良さそうです。

記事へのコメント

いただいたコメントは管理人が確認した後に記事の 下部(ここ)に公開されます。
コメントスパム対策: 2022年4月以降、コメント内にリンクURLを含めると自動破棄されます。(記録されません)