はてなブログのサイトマップはどのファイル?
※2020年6月27日追記
はてなブログのよくあるお問い合わせにハッキリと回答ありました!
Q.GoogleSearchConsoleからのサイトマップ送信に失敗する問題について
A.サイトマップは sitemap_index.xml を送信してください。
---以下は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
この構造はサチコのヘルプに詳しく書かれています。
サイトマップインデックスにサイトマップが包含されているため、サチコに登録するのはサイトマップインデックスのみでいいと書かれています。
【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.xmlはrobots.txtに記載されていて勝手にクローラーが通る可能性が高い
・sitemap.xmlはどこにも登録されておらず、何もしなければ何も起こらない可能性が高い
・サイトマップインデックスが2つある理由は、、、
いろいろ調べている中で、はてなブログにサイトマップを問い合わせた正式回答は「sitemap.xml」だったという書き込みがあり、一方で、はてなブログで用意しているrobots.txtのサイトマップには「sitemap_index.xml」が記載されています。
そのことを考えると、完全な推測で、、、
robots.txtに登録したサイトマップインデックスからのアクセスとサーチコンソールに登録したサイトマップインデックスからのアクセスを見分けるために、あえて異なるサイトマップインデックスを用意しているのかな?と。。。。
もう少し調べたいと思います。(どうやって見分けるの?ツールでみられるの?とか。不明。。。)
以上の考察から、私はサチコにあげるサイトマップは「sitemap.xml」で試すことにしました。
4.まとめ-私が登録したサイトマップ
サチコのサイトマップ画面から送信したもの
URL直打ちして存在確認と内容確認のみをしたもの(サチコで送信しなかった)
- /sitemap.xml?page=1 と page=2
※サイトマップインデックスに載っているサイトマップの存在を確認 - /robots.txt
※Sitemapに「sitemap_index.xml」が指定されていることをチェック - /sitemap_index.xml
※存在を確認
とりあえず今回は上のような設定でしてしばらく様子をみようと思います。(2019/4/30現在)
5、おまけ-感じたこと
いろいろ調べてみると、はてなブログのサイトマップどれ問題は、インデックスされない問題(クロールされない)と混ざり合ってよくわからなくなっている感じがします。
みなさん試行錯誤しているのがよくわかります。
私も一応納得して4の登録をしてみたもののうまくスムーズにクロールされないのだろうな、、、と想定しています。わからないことだらけ。ビギナーらしく疑問に思ったことをゆるゆる一つ一つ潰していこうと思います。
その後の状態