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>
  • sitemaps0.90に対応したmovabletypeのテンプレート

    今まで、googleのサイトマップに対応したサイトマップを生成していた。 しかし…

  • うまくいきません

    はじめまして、サイトマップを作ろうと調べていたらこちらに行き着きました。
    作業したのですが、再構築がうまくいきません。
    この一文の意味を教えていただけると幸いです。

  • コメントありがとうございます。
    どこかおかしいところはないかな。と見てみたところ、最後のほうの
    template=”Archives”
    がおかしいですね。失礼しました。
    これはテンプレートネームを記載すればいいのですが、デフォルトだと「アーカイブインデックス」になっています。(Movable Type Pro version 4.23-jaの場合)
    ですので、
    template=”アーカイブインデックス”
    と変更いただければ、うまく再生成ができるはずです。
    これでダメでしたら、エラー内容を教えていただけないでしょうか。

  • sitemap.xmlを作成

    SEO対策も含め、やっぱりGoogleさんやYahooさんにはどしどし来てもらいたい。ということで、その第1歩としてsitemap.xmlを生成することに…

  • はじめまして。
    こちらのサイトマップを以前から使わせていただいておりました。
    MTを4.25にバージョンアップさせたところ、再構築でエラーが発生するようになりました。
    —–エラー内容—–
    テンプレート「サイトマップ」の再構築中にエラーが発生しました: <mtArchiveList>タグでエラーがありました: <mtArchiveLink>タグでエラーがありました: Yearlyアーカイブにリンクするために<$MTArchiveLink$>タグを使っていますが、アーカイブを出力していません。
    MTのタグに不勉強なもので、修正の仕方がわかりませんでした。
    もしわかったら教えていただけないでしょうか。
    よろしくお願いいたします。

  • かな

    はじめまして!
    私も [ template=”Archives”] の部分でエラーが出ていたんですが、
    [ template=”アーカイブインデックス” ] に書き変えたら無事に再構築されましたよ!

  • nobuyoshi.

    サイトを立ち上げてこれはやっておきたい集とか

    サイト立ち上げ後2週間でやった基本的(?)な7つのSEO対策 はてブの人気記事…

related story