サイトマップの限界容量とタイムゾーンの注意点

サイトを長く運営していくと増えるページ数。ふと、全部のページのサイトマップって必要なんだろうか? サイトマップの限界容量はあるのかと思ったので、調べてみた。

サイトマップを作成する

ファイル サイズの大きなサイトマップは複数に分割して、大容量ファイルの送信によりサーバーに過剰な負荷がかからないようにします。サイトマップ ファイルで指定する URL は 50,000 個以下、ファイルサイズは圧縮されていない状態で 50 MB 以下にする必要があります。

ふ~ん、そうなんだ。
余程の大規模サイトでないと問題にはならないだろうけど、ブログのアップグレードをするたびにサイトマップを作りなおしてきたので、古いサイトマップはリネームしてそのままノータッチで置いておくだけですむならありがたい。

その後、Search Consoleで自分のサイトマップを確認したら、日付のフォーマットエラーが出ていた。

日付の値が無効です。 日付または書式設定を修正してから、再送信してください。

あいや~、やっちまった。よく調べないで、どっかのサイトのコピペで済ませたせいですね。

複数のサイトマップの管理を簡略化する
日付の書き方は以下の2通り。

lastmod - サイトマップの最終更新日(省略可)。

<lastmod>2004-10-01T18:23:17+00:00</lastmod>

<lastmod>2005-01-01</lastmod>

サイトマップ エラー

時刻の指定は省略できます(省略すると時間は 00:00:00Z に設定されます)。時刻を指定する場合はタイムゾーンも指定する必要があります。

はい、そうです。それをやってしまいました。
時間のところから、タイムゾーンを削っちゃったのです。いらないのかなと思って。ああ、ばか・・・。
もう~、日付は全部 ISO 8610 フォーマットにしました。なぜかUTCが混在していましたが(どっかのサイトからコピペしたから)、全部統一。

MTでサイトマップを作る場合、本家本元にサンプルがあった。
検索エンジン用サイトマップの作成

・・・あああ、混在したフォーマットはこのページのせいか!

<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
</url>

<url>
<loc><$MTPagePermalink encode_xml="1"$></loc>
<lastmod><$MTPageModifiedDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod>
</url>

色々なサイトに転載されるうちに、このutc="1"と<$MTBlogTimezone$>が混在したのか。
劣化コピーの元ネタだ。
それとも、これが正規の書き方?? あるいは、サンプルとして、こういう書き方もあるよということだったのだろうか。

結局、こうしてみた。

<url>
<loc><$mt:WebsiteURL encode_xml="1"$></loc>
<priority>1.0</priority>
<lastmod><$mt:Date format_name="iso8601"$></lastmod>
</url>

<mt:Pages>
<url>
<loc><$mt:PagePermalink encode_xml="1"$></loc>
<lastmod><$mt:PageModifiedDate format_name="iso8601"$></lastmod>
</url>
</mt:Pages>

<mt:Blogs>
<url>
<loc><$mt:BlogURL encode_xml="1"$></loc>
<priority>1.0</priority>
<lastmod><$mt:Date format_name="iso8601"$></lastmod>
</url>
<mt:IfArchiveTypeEnabled archive_type="Category">
<mt:ArchiveList archive_type="Category">
<url>
<loc><$mt:ArchiveLink encode_xml="1"$></loc>
<lastmod><$mt:Date format_name="iso8601"$></lastmod>
</url>
</mt:ArchiveList>
</mt:IfArchiveTypeEnabled>
<mt:Entries lastn="9999">
<url>
<loc><$mt:EntryPermalink encode_xml="1"$></loc>
<lastmod><$mt:EntryModifiedDate format_name="iso8601"$></lastmod>
</url>
</mt:Entries>
</mt:Blogs>

日付フォーマットの前にあるタグの意味は

MTEntryModifiedDate ブログ記事の更新保存された日時
MTEntryCreatedDate ブログ記事の作成日時
MTDate 再構築した日時

ということでした。
今回は、ちゃんと1つずつ調べたよ!