今回問題になったのはタイトルの通り、Google Search Consoleでサイトマップを送信してもURLを検出してくれないという状況になったことです。
このブログはWordPressでの運用なので、タイトルやデスクリプションなどSEOに関係する部分はもっぱらプラグイン任せなのですが、Google Search Consoleはサイトを用意し始めのころに設定したままで、サイトマップもプラグインを入れたときに確認も含めた送信をするくらいでした。
サイトマップを確認するきっかけ
先日、Googleアナリティクスの仕様変更のためタグの差し替えと、一部有料化+だんだんヘビーになりつつあるAll in One SEOから、比較的扱いがライト(と思っているだけですが)なThe SEO Frameworkへと変更を行いました。
両方ともサイトマップを出力する機能を有しておりますが、サイトマップの出力の仕方も変わるので、確認ついでにGoogle Search Consoleでもサイトマップの再送信をしておこうと考え、新しいサイトマップの追加で登録を試みました。
しかし…、以下のようにステータスは「成功しました」と出ていますが、検出されたURLが「0」!?との結果。
そもそも、最終読み込み日時も更新されていないため「成功しました」ステータスだけで、受け付けてはもらえていない感じです。
ページ自体はボットがすでにクロールしているらしいので、検索結果には出てくるようですが、やはりインデックスが確認できない(されているか分からない)状態というのは嫌ですよね。
原因を探してみたものの
sitemap.xmlの中身がおかしいのだろうか、と思いアクセスして確認をしてみましたが、一覧は生成されていますし、URL自体もちゃんと存在するページになっています。
再度試みてみましたが、やはりステータスは「成功しました」と出るも選出されたURLは「0」のまま。
原因を探すため、プラグインをAll in One SEOに戻して試してみるも、結果は同じでした。
さらに、プラグインで出力されるsitemap.xmlをファイルとして保存後、静的ファイルとして用意しファイル名も変えてみたりしましたが、これらも結果は同じ。
解決に至らないので、サイトマップ出力をXML Sitemaps(旧 Google XML Sitemaps)プラグインにお任せする形で導入してみました。が、これでも結果は同じでした…
また、XML Sitemapsではサブサイトマップという形で細分化してxmlを出力するようなので、それらから個別に送信も行ってみました。
しかしながら、こちらはステータスが「取得できませんでした」と出てしまい、そもそも受け付けてくれませんでした。
もっとも、これで登録できても一つずつ登録することになってしまいますので、これはこれでなんとも…
視点を変えて、ディレクトリ下に置いてみると
上記のように幾つか試してみても残念な結果ばかりなので、ディレクトリの下に置いてある体でサイトマップを用意してみました。
具体的には「domain/sitemap/sitemap.xml」といった感じのURLです。
The SEO FrameworkではこのようなURLの変更を行うことはできない(filterでできるかもしれませんが)ようですが、XML Sitemapsでは出力するファイル名を変更することができるようなので、「sitemap/sitemap」と変更してみました。
そして、このURLで改めてGoogle Search Consoleでサイトマップを送信してみると、ステータスが「成功しました」となり、検出されたURLもちゃんと数字として反映されました。
まとめ:原因究明には至りませんでしたが結果として
どのタイミングでGoogle Search Consoleのサイトマップの送信がおかしくなってしまったのか判りませんが、今回の場合は、どうやらドメイン直下のサイトマップは受け付けなくなったことが判ったので、対策としてディレクトリ下に置いたような状態のURLを用意することで、ひとまず対応することができました。
このような問題を検索したところ、似たような症状の方もいらっしゃるようでしたので、一つの参考としていただければ幸いです。