餡のいろ

日々の調べたこと色々メモ。

はてなブログのサイトマップはどのファイル?

※2020年6月27日追記
はてなブログのよくあるお問い合わせにハッキリと回答ありました!

Q.GoogleSearchConsoleからのサイトマップ送信に失敗する問題について
A.サイトマップは sitemap_index.xml を送信してください。

hatena.zendesk.com

 

 

---以下は2019年5月の投稿記事です---

 

一般的にサイトマップというと
(1) 一つ一つのURLの場所を指定するXMLサイトマップ、と
(2) RSSフィードAtomフィードなど最近更新されたURLのみを記載する更新フィードがよくあげられます。

 

そのサイトマップGoogleで使用できるようにするには
(1) robots.txtファイルに追記する、か
(2) Search Console(以下、サチコ)から直接URLを送信します。

 

詳しくはGoogleのヘルプを参照のこと。

Google】Search Consoleヘルプ
サイトマップを管理する

サイトマップの作成と送信 - Search Console ヘルプ
https://support.google.com/webmasters/answer/183668?hl=ja

 

はてなブログでは

XMLサイトマップRSS 2.0形式、Atom形式の更新フィードが自動で作成され自動で更新されていて、基本的にユーザが操作できない仕様になっているようです。
robots.txtも同様で、自動的に作成&更新されていてユーザ操作不可です。
知らない間に作られているんですね。助かる。

 1.robots.txt

はてなブログで自動で作成、自動で更新してくれていてユーザ操作不可です。
robots.txtのSitemapには「sitemap_index.xml」が指定されていることがわかります。

例)https://an-no-iro.hateblo.jp/robots.txt

robots.txtのSitemapに記載してあってもサチコの画面(サイトマップレポート)に自動ででてくる訳ではありません。サチコの画面にでるのはサチコで送信したサイトマップが表示されます。

 

Google】Search Consoleヘルプ
サイトマップを管理するサイトマップ レポート
https://support.google.com/webmasters/answer/183668?hl=jahttps://support.google.com/webmasters/answer/7451001?hl=ja&ref_topic=4581190

robots.txtファイルは「クローラがどのページやファイルをサイトからリクエストできるか、またはできないかを検索エンジン クローラに知らせるものです。」「特定のクローラに対して、対象ウェブサイト内の特定のファイルパスへのアクセスをブロック(または許可)します。」(Search Consoleヘルプより)
サイトをインデックス登録させないことが目的ではなくてサイトへのクロールをコントロールするためのもの。robots.txtファイルはなくてもいいが特にサチコで送信しなくてもあれば勝手にクローラーが巡回してくれるので、robots.txtファイルのSitemapにブログのサイトマップを指定しておいたほうが効率がいいと言われます。

2.更新フィード

こちらもはてなブログRSS 2.0形式、Atom形式の更新フィードを自動で配信してくれていてユーザ操作不可です。ファイルパスは本家ヘルプに書いてあります。

例:RSS2.0形式)https://an-no-iro.hateblo.jp/rss

例:Atom形式)https://an-no-iro.hateblo.jp/feed

※ダウンロードするか聞かれたらファイルをダウンロードしてテキストなどのエディターで開いてみてください。ご自分のブログで試してみるといいと思います。

 

はてなブログ ヘルプ】

更新フィード - はてなブログ ヘルプ
http://help.hatenablog.com/entry/feed

3.XMLサイトマップ

、、、これが情報錯綜、暗中模索。
/sitemap.xml説、/sitemap_index.xml説、/sitemap.xml?page=1説とか、とりあえず全部サチコにアップしちゃえ説とかいろいろ出てくる。

 

そこで、それぞれURLを直打ちして「ソースの表示」をしてファイルの中身をてみます。

 

(1) sitemap.xml、sitemap_index.xmlサイトマップインデックス

・sitemap.xml、sitemap_index.xmlは全く同じ内容
・親タグは<sitemapindex>、子タグ<sitemap>にサイトマップのURLと最終更新日が記載されている。
・<sitemap>には「sitemap.xml?page=1」や「sitemap.xml?page=2」が指定されている。

例)https://an-no-iro.hateblo.jp/sitemap.xml

例)https://an-no-iro.hateblo.jp/sitemap_index.xml

 

(2) sitemap.xml?page=1(サイトマップ

・親タグは<urlset>、子タグ<url>で区切って記事一つ一のURLと最終更新日が記載されている。
・page="の数字は約100記事ぐらいで古い記事が押し出される形でファイルが分けられ"page=2"、"page=3"と増えている。(自分のサイトマップを数えたら102記事だったので“約”としました。ファイルサイズで決められてるのかな?)

例)https://an-no-iro.hateblo.jp/sitemap.xml?page=1

※2020年6月27日追記
久しぶりにSearch Consoleをのぞいてみたらサイトマップの形式が月ごとに1ファイルに変わっていました。2020年4月頃にはてなブログ側で仕様が変わったみたいです。

例)https://an-no-iro.hateblo.jp/sitemap_periodical.xml?year=2020&month=6

 

(3)サイトマップインデックスとサイトマップの関係

この構造はサチコのヘルプに詳しく書かれています。
サイトマップインデックスにサイトマップが包含されているため、サチコに登録するのはサイトマップインデックスのみでいいと書かれています。

 

Google】Search Consoleヘルプ
サイトマップを管理する

大きなサイトマップを分割する - Search Console ヘルプ
https://support.google.com/webmasters/answer/75712?hl=ja&ref_topic=4581190


「インデックス ファイルを作成して保存したら、すべてのサイトマップをホストサーバーの同じ場所にアップロードして保存した上で、インデックス ファイルを Google に送信します。」

 

Google】Search Consoleヘルプ
サイトマップを管理する

サイトマップの作成と送信 - Search Console ヘルプ
https://support.google.com/webmasters/answer/183668?hl=ja&ref_topic=4581190


サイトマップ インデックス ファイルを使用して個々のサイトマップをすべて記載し、このファイルだけを Google に送信します。個々のサイトマップを送信する必要はありません。」

 

(4) sitemap.xml、sitemap_index.xmlどちらが正しいサイトマップか?

ご本家のはなてブログヘルプやはてなブログ開発ブログを「サイトマップ」「sitemap」で検索しても肝心要のサイトマップのファイルパス名については触れられていない。はっきり示してくれ!!!

関連記事は一部のオプション設定の説明が書いてあるのみです。

はてなブログ ヘルプ】

ブログの詳細設定ページ - はてなブログ ヘルプ
http://help.hatenablog.com/entry/config/detail

 

で、(1)~(3)を調べてみての自分なりの考察としては

・どちらでもサイトマップインデックスとして機能している(ちゃんと更新されていてサイトマップに紐づいている)
・sitemap_index.xmlrobots.txtに記載されていて勝手にクローラーが通る可能性が高い
・sitemap.xmlはどこにも登録されておらず、何もしなければ何も起こらない可能性が高い
サイトマップインデックスが2つある理由は、、、

いろいろ調べている中で、はてなブログサイトマップを問い合わせた正式回答は「sitemap.xml」だったという書き込みがあり、一方で、はてなブログで用意しているrobots.txtサイトマップには「sitemap_index.xml」が記載されています。
そのことを考えると、完全な推測で、、、
robots.txtに登録したサイトマップインデックスからのアクセスとサーチコンソールに登録したサイトマップインデックスからのアクセスを見分けるために、あえて異なるサイトマップインデックスを用意しているのかな?と。。。。
もう少し調べたいと思います。(どうやって見分けるの?ツールでみられるの?とか。不明。。。)

以上の考察から、私はサチコにあげるサイトマップは「sitemap.xml」で試すことにしました。

4.まとめ-私が登録したサイトマップ

サチコのサイトマップ画面から送信したもの

 

URL直打ちして存在確認と内容確認のみをしたもの(サチコで送信しなかった)

 とりあえず今回は上のような設定でしてしばらく様子をみようと思います。(2019/4/30現在)

5、おまけ-感じたこと

いろいろ調べてみると、はてなブログサイトマップどれ問題は、インデックスされない問題(クロールされない)と混ざり合ってよくわからなくなっている感じがします。
みなさん試行錯誤しているのがよくわかります。
私も一応納得して4の登録をしてみたもののうまくスムーズにクロールされないのだろうな、、、と想定しています。わからないことだらけ。ビギナーらしく疑問に思ったことをゆるゆる一つ一つ潰していこうと思います。

 

その後の状態

an-no-iro.hateblo.jp