はてなブログのサイトマップの中身がいつ、どのように更新されるのかを調べてみた
はてなブログのサイトマップ(sitemap.xml, sitemap_page.xml, sitemap.xml?page=1 や page=2)がいつ、どのように更新されるのかを調べてみました。Google 側の話ではなく、はてな側の話です。「はてな側が、はてなブログのサイトマップの中身を、いつ、どのように更新するか」という話です。
- 前提
- ここからまとめ
- sitemap.xml はちゃんとつくられている
- 最終更新日の更新タイミング
- page=N について
- page=N への新規ページ追加順序について
- page=N に記載されているページを編集した場合
- ページや記事の「編集」とは具体的にどんな操作か?
- おわりに
前提
今回調べたサイトマップ
今回の調査使ったサイトマップは以下のとおりです。当ブログのサイトマップです。
- https://stressfree-fulfilling-solo.hatenablog.com/sitemap.xml
- https://stressfree-fulfilling-solo.hatenablog.com/sitemap_page.xml
- https://stressfree-fulfilling-solo.hatenablog.com/sitemap.xml?page=1
- https://stressfree-fulfilling-solo.hatenablog.com/sitemap.xml?page=2
調べ方と調査内容の品質について
調べ方は以下二つです。
- ある時点でのサイトマップファイルを採取し、差分を取った
- 技術者向けですが GitHub に一部データをアップしてます
- 手作業でブログを更新した後、サイトマップファイルを覗いてみる……といった原始的なやり方で調べた
しかしながら調べ方は正直甘いです。サイトマップファイル全体のうち、一部分だけ簡単に確認してみただけですし、あらゆる観点で厳密に調べたわけでもない。よって、この記事の見解が正しいとは限りません。軽い参考程度に見ていただければと思います。
本記事で使う用語
最終更新日:
- サイトマップファイル中に記載されている
<lastmod>
のこと
サイトマップデータ:
- サイトマップファイル中に記載されている
<sitemap>
または<url>
のこと
サイトマップファイル:
- sitemap.xml とか sitemap.xml?page=1 とかのこと。XMLファイルのこと
page=N:
- サイトマップファイル sitemap.xml?page=N のこと(長ったらしいので略して書く)
本記事の対象読者
サイトマップについてある程度理解していること を前提とさせてください。
たとえば、
- サイトマップとは何か
- なぜサイトマップが必要なのか
- 自分のブログのサイトマップを見るためにはどうすればよいか
などは既に知っていることを前提とします。この記事ではサイトマップ自体の解説はしません。
ここからまとめ
早速調査内容をまとめていきます。
sitemap.xml はちゃんとつくられている
はてなブログは sitemap.xml をちゃんとつくります。
つまり sitemap.xml から全ページ(about ページ、固定ページ、各記事)を辿れるように、はてな側が常に上手くつくってくれます。
具体的には、以下の二つを行ってくれます。
- 記事が追加されたタイミングで新しくサイトマップデータを追加する
- 記事が更新されたタイミングで、当該記事のサイトマップデータの最終更新日(lastmod)を、その更新日に修正する
最終更新日の更新タイミング
トップページと about ページ:
- → 何らかの記事を追加また編集したら
固定ページ:
- → 当該ページを新規したら
- → 当該ページを編集したら
各記事:
- → 当該記事を新規したら
- → 当該記事を編集したら
page=N について
- page=1 には最近投稿した記事 1~100 件が並ぶ
- page=1 の先頭には「トップページ」と「aboutページ」が並ぶ
- つまり page=1 は最大 102 件のサイトマップデータを持つ
- page=2 には最近投稿した記事 101~200 件が並ぶ
- page=3 には最近投稿した記事 201~300 件が並ぶ
- ……
page=N への新規ページ追加順序について
- (1) 新しく投稿した記事は、page=1 の一番上に配置される
- (2) 1 の結果、page=1 が 100 件からあぶれてしまう場合、101 件目のデータ(101番目に新しく投稿した記事)は次の page である page=2 に移される
- page=2 が存在しなければ作成される
page=2、page=3 についても同様の働きをする。つまり page 一つに 100 件ずつサイトマップデータが並ぶイメージ。
page=N に記載されているページを編集した場合
- 当該ページの最終更新日(lastmod) が、編集した時の日付に更新される
- page=N の中で記載順序が変わることはない
- 記載順序が変わるのは新しく記事が追加された時のみ
ページや記事の「編集」とは具体的にどんな操作か?
最終更新日が変化する契機となる操作を本記事では「編集」と書きましたが、では、この編集とは具体的にどんな操作を指すのでしょうか。
本ブログで確かめたのは(ほんのちょっとですが)以下です。
- 本文を編集した
- カテゴリーを変えた
- これには カテゴリーの名前を変えたことにより、結果的に記事のカテゴリー名が変化した場合も含みます(※1)
他にも色んな契機があると思います(タイトルを変えたとか、アイキャッチ画像を変えたとか、コメントが付いたとか……でもコメントは他人が書くものなので契機じゃないかもしれない)。
※1 たとえばカテゴリー XXXX に記事が 10 件あるとして、このカテゴリー名を YYYY に変更した場合、10 件の記事についてはカテゴリー名が XXXX から YYYY に変わったとみなされ、サイトマップデータの最終更新日が更新されます(この場合はデータ 10 個分が更新される)。
おわりに
素人の手抜き調べの上、かなり五月雨式な書き方になってしまいましたが、はてなブログが自身のサイトマップファイルをどう更新するのか、についてのまとめでした。
この「はてなブログはサイトマップをどう更新してんだ?」という点は、個人的に気になっていたことで、今回調べてみてハッキリわかったのですっきりしました。