Google Search Consoleで検出されたURLが0になるのは、サーチコンソールのバグのようです。
バグを回避してサイトマップを読み込ませる方法を紹介します。
検出されたURLが0の状況
グーグルサーチコンソールのサイトマップ欄で次のように「検出されたURL (Total discovered URLs)」が、数ヶ月待っても、0のまま変わらないことがあります。
私の場合はWordpressで人気のプラグインGoogle Xml sitemaps (XML Sitemap Generator for WordPress) 4.1.1を使用して、サイトマップを作成していますが、この「検出されたURL」が0になる状況になりました。
サーチコンソールの所有権の確認はドメイン認証の方法を使用しています。
sitemap.xmlはサイトマップインデックスですが、サブサイトマップファイル(sitemap-pt-post-2021-02.xmlなど)を直接登録すると、「取得できませんでした (Couldn’t fetch)」と表示されて読み込まれません。
詳細を表示しても「サイトマップを読み込めませんでした (Sitemap could not be read)」と表示されるだけです。
つまり、検出されたURLが0であるのは、サブサイトマップが読めていないことが問題だと推測されます。
サブサイトマップが読み込まれない原因
なぜサブサイトマップが読み込まれないか、トライアンドエラーで調べました。すると次のことがわかりました。
- 読めていないサブサイトマップのファイル名を変更して登録すると読めるようになる。
- 読めていないサブサイトマップにソフトリンクを貼って、そのファイル名を登録すると読める。どちらのファイル名でリクエストしても、http headerは同じであることは確認済み。
このことから、読めるか読めないかにはファイル名依存性があることがわかりました。
つまり、(少なくとも私の環境下では、)原因はユーザーの設定ミスではなく、サーチコンソールのバグだと推測されます。
次にどのファイル名なら読めて、どのファイル名なら読めないかを調べました。
以下、”o”がok例で、”x”がbad例です。
—-
o https://abcdefgh.biz/sitemap_pt_postaaaa.xml
x https://abcdefgh.biz/sitemap-pt-postaaaa.xml
x https://abcdefgh.biz/sitemap-pt-post2021.xml
x https://abcdefgh.biz/sitemap-pt-post—-.xml
x https://abcdefgh.biz/sitemap-pt-post.xml
アンダーバーはokだけど、ハイフンはダメ?
o https://abcdefgh.biz/sitemap_pt_post.xml
o https://abcdefgh.biz/sitemap_pt_post2021.xml
x https://abcdefgh.biz/sitemap_pt_post20211.xml
x https://abcdefgh.biz/sitemap0pt0post20211.xml
x https://abcdefgh.biz/sitemap_pt_post20210.xml
x https://abcdefgh.biz/sitemap_pt_post202102.xml
x https://abcdefgh.biz/sitemap_pt_post20210200.xml
長い名前はダメ。httpsからドメイン/までで21 文字、ファイル名は後ろの拡張子含めて19+4= 23文字 -> 全部で44文字
x https://abcdefgh.biz/sitemap_pt_post20211.xm
x https://abcdefgh.biz/sitemap_pt_post20211
o https://abcdefgh.biz/sitemap_pt_post2021
拡張子はカウントされていない?拡張子をのぞくと全部で40文字制限?
x https://abcdefgh.biz/sitemapaptapostaaaa.xml -> 19 chars
x https://abcdefgh.biz/12345678901234567890.xml -> 20
x https://abcdefgh.biz/1234567890123456789.xml -> 19
o https://abcdefgh.biz/123456789_123456789.xml -> 19
拡張子除くファイル名が19文字でもダメなことがあるが、_で区切るとokになる。
x https://abcdefgh.biz/sitemapaptapostaa.xml -> 17
x https://abcdefgh.biz/sitemapaptapostaaa.xml -> 18
x https://abcdefgh.biz/sitemapapt-postaaaa.xml -> 19
o https://abcdefgh.biz/sitemapapt_postaaaa.xml -> 19
区切らないとファイル名が17文字でもダメだが、_で区切るとok。ハイフン区切りはbad。
o https://abcdefgh.biz/sitemapaptp_ostaaaa.xml -> 19
o https://abcdefgh.biz/sitemapap_tpostaaaa.xml -> 19
x https://abcdefgh.biz/sitemapapt_postaaaaa.xml -> 20
x https://abcdefgh.biz/sitemap0pt0post2021.xml -> 19
区切ってもファイル名が20文字だとbad。
o https://abcdefgh.biz/_sitemapaptpostaaaa.xml -> 19
x https://abcdefgh.biz/sitemapaptpostaaaa_.xml ->19
区切り位置は一番前でもok。一番うしろはbad。
x https://abcdefgh.biz/sitemapaptpostaaa_a.xml -> 19
x https://abcdefgh.biz/sitemapaptpostaa_aa.xml -> 19
o https://abcdefgh.biz/sitemapaptposta_aaa.xml -> 19
o https://abcdefgh.biz/sitemapaptpost_aaaa.xml -> 19
15文字目(先頭から36文字目)までに_が入ればok, 16文字以降ならbad?
—-
ユーザー側でできる対応は、このbad例を避けてファイル名をつけるということです。
ソースコードが見られれば、このバグの本質的な原因がわかるかもしれません。Search Consoleのエンジニア様が、この情報からバグを修正してくれると嬉しいです。
回避方法
そういうわけで、回避方法としては次のものになります。
- ファイル名にハイフンを入れない
- ファイル名が長くなる場合には、アンダーバーで区切る
同様の問題で困っている方は、この回避方法を試してみてください。
Google XML sitemaps 4.1.1の修正と回避成功
Google XML sitemapsを使用している方は、Google XML sitemapsを修正すれば回避できます。
Google XML sitemapsのサブサイトマップ名は次のようなものになっています。
https://abcdefgh.biz/sitemap-pt-post-2021-01.xml
上記の回避方法を採用するなら、ハイフンをアンダーバーにして、”sitemap”を”sm”にするなどしてファイル名の文字数を減らします。
https://abcdefgh.biz/sm_pt_post_2021_01.xmlなどとします。
修正して登録してみたところサイトマップが無事読み込まれるようになりました。(登録して数分ですべて読まれました。)
まとめ
サーチコンソールの検出されたURLが0になる現象は、サーチコンソールのコミュニティ掲示板でも何年も前から質問がされています。サイトランクが低くクロール頻度が遅いせいなので、半年ほど放置すれば読まれるようになる、というエキスパートの答えが良回答として選択されて質問がクローズされることが多いのですが、少なくとも私の環境では、ファイル名依存性があり、サーチコンソールのバグによるものと考えられます。問題に遭遇している方が少ないせいもあるのか修正される雰囲気がありませんが、このような情報をきっかけに修正がなされるとよいなあと思います。
以上、Search Consoleで検出されたURLが0になるバグを回避する方法。でした。