ライフスタイル

はてなブログのサイトマップが検出されなかった原因と解決策

はてなブログのサイトマップが検出されない原因

はてなブログのサイトマップがインデックスに登録できなくて苦労している方が多いようです。

調べてもはっきりした答えが見つけれず、解決するまで1か月かかってしまいましたがようやく登録できました。僕のブログがサイトマップに登録できなかった原因と解決策をご紹介します。※2019/11/11追記

登録できなかった原因はクローラーが迷子になっていた

今まで大きな勘違いをしていたのが、インデックスとはGoogleに登録(圏外も含めて検索結果に表示)されること。

サイトマップはクローラーが迷子にならないようにする地図なんですね。

地図がないとGoogleのクローラーさんが記事を発見できずに到着が遅れたり、内容を見落としたりして、なかなかインデックスされないことが発生するかもしれないです。

内部リンク経由などがあるので少し時間はかかりますが、実はサイトマップが無くてもそのうち勝手にインデックスされます。

 登録できなかった状況

サイトマップ はてなブログ

まずは登録ができていない状況です。最終読み込み日時が古すぎるし、47記事投稿して検出されたURLの合計数が13です…。

その検出された13個のURLの中に「/sitemap.xml?page=1」(100記事までのサイトマップ)と「/sitemap_page.xml」(固定ページのサイトマップ)がいるので実質11個…。

カバレッジがおかしい

Googleサーチコンソール 除外カバレッジの状況

カバレッジがおかしくて、検出されたURLの合計数が13なのに、有効なページが92あり、そのうち51も除外されています

有効・除外の内容
  • インデックス登録されましたが、サイトマップに送信していません 90
  • 送信して登録されました 0
  • 除外の内容代替ページ(適切な canonical タグあり) 26
  • クロール済みインデックス未登録 20
  • クロールエラー 6
  • 重複しています。ユーザーにより、正規ページとして選択されていません 1
  • 検出―インデックス未登録 0

 サイトマップに送信していませんの90って全部ですね!代替とか重複ってどういうこと??

他のソースから認識されている可能性とは?

サチコ サイトマップ

このキャプチャは別の日に撮ったものなので、2019/02/09は気にしないでくださいね。

サイトマップが無いことになっていますが、他のソースから認識されている可能性があるとのこと。やっぱり何かが重複していることが原因みたい。

 ヒントは最終読み込み日時

サチコ サイトマップ

「2019/01/24」この日に何があったのか。

実は初めて独自ドメインを取得した日です。feedとかいろいろサイトマップに登録していますが、この頃から検出されたURL数が変わっていませんね。

現状、検出されているURLが13のままです。

無料版はてなブログを書いた記事が11なので、独自ドメイン取得前の記事しかサイトマップに登録できていませんでした

サイトマップ グーグルサーチコンソール

クローラーの動きは複雑なルールがあって条件を満たしていないと、サイトマップに記載されている項目をクロールしないことがあるって解釈でいいですかね?

重複していたり代替ページが正規として指定されてないと、サイトマップをクロールしてくれないみたい。

つまり、どのURLが正しいサイトマップなのかクローラーが迷っている状態のようです。

解決策:正規URLを指定をして重複をなくす

はてなブログでどうやったら正規URLを指定できるのかが分かりました。

独自ドメイン関連の設定

幸子 サイトの設定

今までは「Googleサーチコンソール サマリー」の左上にある「+プロパティを追加」で

http://attack.work/

https://attack.work/

https://www.attack.work/

https://www.attack.work/

「s」のありなし。「www」のありなしの4つを1つずつ登録し所有権を確認していましたが現在は「ドメインプロパティ」で一括して確認できるようになっているみたいです。

数日前に僕が登録した時はドメインプロパティの機能がなかったです…。

ここで所有権を確認できた場合に「サイトの設定」で、「wwwありなし」どちらを使用するか登録します。どちらに統一するかはよく考えてくださいね。

旧サーチコンソールの右上歯車から入ります。

www ありなし

にゃんすけ
にゃんすけ
新サーチコンソールでは、自動的にwww.あり・なしを判別するようになりました。

所有権の確認が出来なかった場合はDNSの設定が必要です。

「TXT」コードが表示され、コピーしておいて一旦ページ(タブ)を置いておきます。転送の設定もしますので、新しいタブで独自ドメインを取得したサイトに行きます。

僕は独自ドメインをお名前.comで取得していてお名前.com にログイン。

ドメイン設定⇒ネームサーバの設定⇒DNS関連機能の設定→ドメイン名にチェックを付けて次へ。「以下3点は無料でご利用いただけます」の下にあるDNSレコード設定をするをクリック。

ホスト名は何も入れずにタイプはTXTを選択。ボリュームにサーチコンソールでコピーしたコードをペーストします。

httpsかhttpかは無視していいみたいです。一番下の「DNSレコード設定用ネームサーバの変更確認」をチェックして確認へ進み設定変更をします。

グーグルサーチコンソールに戻って所有権の確認をするのですが、設定が反映されるまで少し時間がかかります。僕は15分くらいで反映されて所有権の確認ができました。

これでサーチコンソールの「サイトの設定」から「wwwあり」か「wwwなし」かを選択できるようになっているはずです。

サイトマップの再登録

僕はサイトマップに登録してあるURLを一度全部消してみました。そして「/sitemap.xml」だけを入力し送信します。

念の為にURL検査で公開URLをテストをしてからインデックスを登録をクリックしました。今までいきなりインデックスを登録していましたが、テストしてからが正しい順番かも??

ついにサイトマップが検出されました!

グーグル インデックス

送信してから検出されるまで1日かかりましたが、ようやくサイトマップを発見してもらうことができました。(検出されたURLが49)

ずっともやもやしていましたがスッキリ。面倒でやっていなかったことが原因だったとは…

なぜ90もの有効ページがあったのか考察

記事を一つの部屋だとすると、部屋と部屋を結んでいる廊下も検出されていたのだと考えられます。例えば僕のブログのTOPページURLが

https://www.attack.work/

で、トップページ下の「次へ」(ページナビゲーション)をクリックすると

https://www.attack.work/?page=1550634346 

こうなります。TOPページにいることは変わっていませんが、次の記事一覧ページのURLは違うんですね。

こういったパーマリンクの違う細かいURLまで読み込んでいたのが異常に除外URLが増えた原因です。
追記:クローラー制御や正規化で対策できます。

クローラーが信用できる地図(サイトマップ)がどこにあるのかわからず「地図を見るのをやめて自力で歩こう!」と諦めたのが検出されなかった理由のように思います。
追記:Google側の問題がありそうです。Bingでは送信しなくてもサイトマップをしっかりクロールしてくれます。

wwwあり・なしの件を軽視していましたがSEO的には重要な項目だと思われます。まだ設定をしていない方は設定してみてはいかがでしょうか。

追記:正常にサイトマップが登録されてから非常に不安定な状態が続いています。その後の記事を書きましたので、よろしければこちらもご確認ください。

はてなブログのサイトマップが正常検出→再び0ページにはてなブログのサイトマップがようやく正常に登録されたのですが、また検出されなくなりました。 Bingウェブマスターツールでは正常に...

追記

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

追記:現在、Wordpressに移転しています。

WordPressのプラグインで作成した「sitemap.xml.gz(圧縮されたサイトマップ)」では、すべての記事がすぐに検出されます。

はてなブログで運営していたころの「sitemap.xml」は検出されたURLがずっと102のままで、「sitemap.xml?page=1」など、考えられるサイトマップをすべて送信しましたが、一向に検出してくれませんでした。

Bingは送信ボタンを押さなくても正常に検出してくれます。ですので、はてなブログとGoogle(サーチコンソール)の相性が悪く、サイトマップに登録できないことを確信しています

はてな運営がGoogleのシステムに対応しない限り、正常なサイトマップが検出されません

たとえ検出されなくてもブログ開始から半年くらいで、サーチコンソールのURL検査から個別に「インデックス登録をリクエスト」すると、5分くらいで検索結果に表示されるようになります。

つまり、サイトマップの検出に多くの時間を割くよりも、新記事やリライトに力を注ぐことがPVアップの近道と考えます。