WordPressのsitemap.xmlが認識されない




WordPressでサイトを立ち上げ、いつものようにGoogle XML Sitemapsを使って生成したsitemap.xmlをSearch Consoleに登録したところ、Search Consoleでエラーが発生して認識してもらえなかったので、その現象と解決までの道のりについてまとめておきます。

現象

WordPress5.0.3、Google XML Sitemaps4.1.0で構築したサイトのsitemap.xmlを新しいバージョンのSearch Consoleで登録したところ、以下のようなエラーが発生しました。

ステータスが「取得できませんでした」となっていてSitemap.xmlが認識がされない状況でした。

解決までの道のり

WordPressの設定確認

いつもはあまり困ることがなかったのでなんだろなと思いながらWordPressの設定を見てみると、「表示設定>検索エンジンでの表示」の設定で「検索エンジンがサイトをインデックスしないようにする」がONのままでした。
これが原因かなと思ってチェックを外し再度Search Consoleにsitemap.xmlを登録しました。
今度はちょっと結果が変わりましたが成功はしません。

Search Consoleのエラー調査

サイトマップを読み込みませんでした」「一般的なHTTPエラー」というようなエラー。
読み込みできないのはわかりますが、「一般的なHTTPエラー」がよくわからない(笑)
ガイドラインを見ろというメッセージもあったので確認してみましたがそれらしいことはみつからず。
ふと旧バージョンのSearch Consoleだとどうなるのかなと思い、左下にある「以前のバージョンに戻す」をクリックして表示を旧バージョンに切り替え、クロール>サイトマップを開き状況を確認しました。
ここでちょっと新しい情報を入手。

robots.txt により URL が制限されています」と表示されているので次はrobots.txtの調査を行います。

robots.txtの調整

robots.txtのURLにアクセスして内容を確認してみると、

User-agent: *
Disallow: /path/to/wp/wp-admin/
Allow: /path/to/wp/wp-admin/admin-ajax.php

Sitemap: https://example.com/sitemap.xml

という内容で特に問題はなさそうです。
古いSearch Consoleでrobots.txtの確認ができるので次は「クロール>robots.txt」を開いてみました。
そうすると表示されている最新バージョンは

User-agent: *
Disallow: /

Sitemap: https://example.com/sitemap.xml

となっていてすべて拒否の状態でした。
「公開済みのrobots.txtを表示する」というリンクもあるのでそれをクリックしてみると、こちらは正しい設定のrobots.txtの内容が表示されました。

ちょっと困りましたが開いているrobots.txtテスターページに送信ボタンがあることに気づきました。

最新バージョンの内容は変更できますが、ここは何もせずに送信ボタンをクリックすると以下のダイアログが表示されました。

3の「Googleに更新をリクエスト」がドンピシャな内容っぽいです。
「robots.txtファイルが更新されたことをGoogleに知らせるリクエストを送信」と書いてあるので「送信」ボタンをクリックすると、

「送信しました。すぐにテスターページを再読み込みしてタイムスタンプを確認してください。」

という期待できそうなメッセージが表示、すぐにrobots.txtテスターページを読み込み直すと、最新バージョンと表示されている内容が公開済みの内容と一致するようになりました!

sitemap.xmlを再度登録

robots.txtが最新に更新されたので、再度sitemap.xmlをGooglebotでテストしてみると許可済みと表示されるようになっています。

サイトマップの画面に戻りステータスを確認するとまだエラーが出ている状態なので、サイトマップを再度送信すると今度は正常に受け付けてもらえるようになりました。
sitemap.xml内で定義されている各サイトマップファイルの状態はキャッシュのせいか警告やエラーが残っているので、個別に再送信ボタンを押していったところ、正常に動作するようになりました。

なんだかうまくいったので新しいSearch Consoleの方でサイトマップのステータスを確認したところ、「成功しました」と表示が変わっていました。
旧バージョンで対応できたからよかったけど新バージョンだとぱっと見同じような制御ができない気がしたけどどうだったのだろうか。
解決できたからよかったけど。

まとめ

WordPressの検索エンジン拒否設定の影響でSearch Consoleのrobots.txt設定が更新されない場合、sitemap.xmが読み込まれなくなってしまいます。
対応としては、旧バージョンのSearch Consoleを開き、「クロール>robots.txtテスター」からrobots.txtを再送信することにより即座にsitemap.xmlを読み込むことができるようになります。