oregano note

シンプルで合理的な生活

はてなブログのサイトマップがGoogleSearchConsoleで不具合を起こす件とその解決例

サイトを運営している人にとって、Google Search Console(旧ウェブマスターツール)への登録は必須だろう。
不具合のチェックだけでなく、サイトマップを送信することで、インデックスを促進できる効果もある。

このoregano noteでも以前から利用しているのだが、はてなブログへ移行してからどうもインデックスがうまくいかない。
記事を書いても送信数が増えないのである。
自動ではうまくいかないのだろうかとサイトマップを再送信しても増えないのだ。

以前、このブログは複数人で運営しており、その際はWordpressを利用していた。
WordpressでのサイトマップはGoogle XML Sitemapsというプラグインでの作成と送信であるが、そのときは特に問題もなくサイトマップを送信できていた。

当初はなかなかインデックスされずに不安だったのだが、数ヶ月経ち、更新も比較的多くなるにつれ、すぐにインデックスされるようになった。

だが、今回のように送信数すら増えないというのは初めての経験だった。

インデックスはされているが数字として反映されない

この問題は別にこのブログに限ったことではないようで、検索すると同等の問題で悩んでいる記事がいくつもひっかかってくる。
送信数だけでなく、ステータスが保留のままなど、はてなブログのサイトマップはなにかとトラブルがあるようだ。

ただSearch Consoleの数字は、反映が遅いのか現実に即していないことが多い。
新しく書いた記事はインデックスに登録済みに反映されていなくても、実際にはインデックスされていたりする。

現在、このような状況だが、実際はサイトマップ上のページはすべて登録されている。
最新の記事もアップして数時間後にはインデックスされていた。


とはいえ、あまりに実情と離れたまま1ヶ月以上も変化がないと、不安で気持ちが悪い。
そこでトラブルを解決した先達の記事をいくつか参考にしてあれこれ試してみることにした。

ところが、どの方法もうまくいかないのだ。
はてなもGoogleも頻繁にアップデートされて仕様が変わっていることで、1年2年と経つと、状況が変わって使えなくなっているのかもしれない。

その後、試行錯誤した結果、今はひとまず解決したとおもわれる。
これも正解かどうかはわからないし、他のブログを拝読する限り、一時解決してもまた不具合が生じる可能性がある。

それでもなにかの参考になるかもしれないので、ここに顛末を記載しておくことにした。

まずsitemap.xmlから始まった

話が前後するが、元々、このブログのサイトマップとして登録したのはsitemap.xmlである。
SEO界では著名な辻正浩氏がはてなブログ開発ブログに寄稿された記事では

staff.hatenablog.com

はてなブログでは、記事の公開を素早く検索エンジンに通知できるGoogleの新仕様 PubSubHubbub や、サイトマップ更新Pingにも対応しています。

とあり、サイトマップがあることは確実らしいのだが、ヘルプを検索しても見当たらず、はてなブログ サイトマップ で検索して探した記事からこのsitemap.xmlが一番確実だろうと考えたのだ。

移転当初は問題なく登録されていたのだが、ある日、確認するとインデックスどころか、送信数すら増えていない。
手動で再送信してみたが、やはりいつまで経っても正常にカウントされる気配がなかった。

XMLサイトマップだけでなく、RSSフィードを登録しても変化がない。

sitemap_index.xmlを試す

そこで、はてなブログにあるというもうひとつのサイトマップ、sitemap_index.xmlを登録した。

sitemap.xmlとsitemap_index.xmlのどちらがいいのかは正直よくわからない。
検索する限り、記事によって支持するサイトマップが異なるだけでなく、両方を登録するべきという意見も多かった。

中を見て見る限り、これはどちらも同じ内容である。
結果としては単純に元の送信数が2倍になっただけで問題は全く解決されないままだった。

最後の手段としてsitemap.xml?page=1を登録

これはいよいよ手作業でファイルを作成して登録しなければダメなのではないかと考えた。

本当はスクリプトで自動更新できればいいのだろうが、1日に何記事も更新するような大規模ニュースサイトならともかく、oreganonoteのように数日おきでの更新なら、更新された記事を追加するくらいそれほど負担ではない。
サイトマップはテキストファイルだし、フォーマットもそれほど難しくないので個人でも可能だ。


だが、その前に思いついた最後の手段を採ることにした。

はてなのサイトマップはsitemap.xmlのファイル内に、まずsitemap.xml?page=1という記述があり、その先に各記事の記述がある。

まずこれまでに登録したサイトマップとRSSをすべて削除する。
そしてこのsitemap.xml?page=1を登録してみることにした。

正直、この方法で解決する可能性は低いと考えていた。

だが、良い意味で予想を裏切り、送信数が正常となり数時間後にはインデックス数も正常となっていた。

今後、また不具合が出る可能性は高そうだが、最終的にこれでひとまずの解決とすることにした。

f:id:OREGANO:20170725230836j:plain

 

はてなブログのサイトマップに不安

今回の件はともかくとして、はてなブログのサイトマップはあまりお行儀が良くないのではないかという不安がある。
Google Search Consoleでずっと保留のままになるなど、自動送信がうまくいかないようにも思えるし、サイトマップへの記述内容が少なすぎるのも気がかりだ。
知識がないためSEO的にどうなのかわからないのだが、WordpressのGoogle XML Sitemapsプラグインと比較して、オプションとはいえPriorityやChange frequencyなどの記載がなく、サイトマップへの記述が最低限という感じなのだ。

気になる場合は自分でXMLのサイトマップを作成したほうがいいのかもしれない。