Movable Typeで最強サイトマップ

サイトマップ

先日リニューアルした際に、去年の今頃書いた記事「サイトマップ for Movable Type 4」のソースからサイトマップを作成したところ、実際にうまくページを吐き出していない部分があった。よくよくソースを解析してみると、とんでもない詰めの甘いミス連発! このままじゃダメだと思い、早速サイトマップ用のテンプレートを作成。この一年間、中途半端なサイトマップを公開してしまい、申し訳ありません。新たに作成したサイトマップのテンプレートに至急差し替えをお願いします。

サイトマップをMovable Typeで作成する意味

Google ウェブマスターツール

Google ウェブマスターツール

Yahoo! JAPAN サイトエクスプローラー

Yahoo! JAPAN サイトエクスプローラー

Moavble Typeでサイトマップを作成するメリットは多い。理由は、一度しっかりしたテンプレートを作成してしまえば、半永久的にブログの記事を書いたときに自動的に記事のURLをサイトマップに明記してくれるからだ。今回公開するテンプレートを使えば、年別、月別アーカイブページのURLも、自動的に書き出すことができる。新しく年、月等が変わった場合も同様だ。

サイトマップを作成したら、robot.txtでもいいし、「Google ウェブマスターツール」やYahoo! Japanの「サイトエクスプローラー」に登録して、定期的にクローリングされるように設定する。そうすれば、検索エンジンにページが登録されるスパンも短くなるし、上記に述べたサービスから、定期的にページに関する情報提供を受けることができ、十分なSEO対策が可能となる。

なので、SEO対策にサイトマップを用いるのは、今や常識と言ってもいいだろう。特に簡単にサイトマップを書き出すよう設定できるMovable Typeでサイトマップを作成しない理由はない。もう作成しない意味がわからない、ぐらい言ってもいいと思う。

さあ、早速テンプレートを用いて、Movable Typeからサイトマップを書き出すよう設定してみよう。しかし、その前に少し解説させてくれ!

戦略的サイトマップ

Movable Typeの管理者画面の操作は、以前書いた記事「サイトマップ for Movable Type 4」を参照いただくとして、今回は改良したソースコード(正常に動く・・・)に的を絞って解説する。

今回サイトマップに記載するページは、トップページ、ブログ記事、カテゴリーページ、年別、月別、週別、日別、カテゴリー(年、月、週、日)、オーサー(年、月、週、日)、アーカイブインデックス、ウェブページと、Movable Typeデフォルトで書き出す事ができるページをすべて網羅する。

「年別、月別のページはあっても週別、日別のページは作っていない」という場合でも、ソースのゴミは発生せず、とてもスマートでクリーンなサイトマップが書き出す事ができるのだ。

少し突っ込んだ話をすると、<priority>というXMLタグを全ページに付加するようにしてある。<priority>はオプション扱いで、特に明記しないでもよいが、重要なページと、そうでもないページを区別することができるので、戦略的に利用すれば効果的だ。

なお、今回はトップページとブログ記事に重点を置き、カテゴリーページ、その他と続く、三段階の設定にしてある。

ソースコード

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc><$MTBlogURL encode_xml="1"$></loc>
<lastmod><$MTDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<MTEntries lastn="0" sort_by="modified_on">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
</MTEntries>
<MTArchiveList archive_type="Category" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.7</priority>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Yearly" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Monthly" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Weekly" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Daily" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Category-Yearly" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Category-Monthly" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Category-Weekly" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Category-daily" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Author-Yearly" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Author-Monthly" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Author-Weekly" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Author-Monthly" sort_by="modified_on">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTArchiveList>
<MTPages lastn="0" sort_by="modified_on">
<url>
<loc><$MTPagePermalink encode_xml="1"$></loc>
<lastmod><$MTPageModifiedDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</MTPages>
<url>
<loc><$MTLink template="Archives" encode_xml="1"$></loc>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
</urlset>

related story