Movable Typeで最強サイトマップ
17 Aug 2008Filed under Web Creative
先日リニューアルした際に、去年の今頃書いた記事「サイトマップ for Movable Type 4」のソースからサイトマップを作成したところ、実際にうまくページを吐き出していない部分があった。よくよくソースを解析してみると、とんでもない詰めの甘いミス連発! このままじゃダメだと思い、早速サイトマップ用のテンプレートを作成。この一年間、中途半端なサイトマップを公開してしまい、申し訳ありません。新たに作成したサイトマップのテンプレートに至急差し替えをお願いします。
サイトマップをMovable Typeで作成する意味
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>
Trackbacks (3)
Trackback URL: http://www.screamo.jp/cms/mt-tb.cgi/157
- 日曜プログラマのそゞろ事
- sitemaps0.90に対応したmovabletypeのテンプレート
- August 18, 2008 12:36 AM
今まで、googleのサイトマップに対応したサイトマップを生成していた。 しかし...
- dwlog.net
- sitemap.xmlを作成
- March 15, 2009 9:02 PM
SEO対策も含め、やっぱりGoogleさんやYahooさんにはどしどし来てもらいたい。ということで、その第1歩としてsitemap.xmlを生成することに...
- nobuyoshi.
- サイトを立ち上げてこれはやっておきたい集とか
- July 5, 2009 11:41 AM
サイト立ち上げ後2週間でやった基本的(?)な7つのSEO対策 はてブの人気記事...
Comments (4)
はじめまして、サイトマップを作ろうと調べていたらこちらに行き着きました。
作業したのですが、再構築がうまくいきません。
この一文の意味を教えていただけると幸いです。
返信
コメントありがとうございます。
どこかおかしいところはないかな。と見てみたところ、最後のほうの
template="Archives"
がおかしいですね。失礼しました。
これはテンプレートネームを記載すればいいのですが、デフォルトだと「アーカイブインデックス」になっています。(Movable Type Pro version 4.23-jaの場合)
ですので、
template="アーカイブインデックス"
と変更いただければ、うまく再生成ができるはずです。
これでダメでしたら、エラー内容を教えていただけないでしょうか。
返信
はじめまして。
こちらのサイトマップを以前から使わせていただいておりました。
MTを4.25にバージョンアップさせたところ、再構築でエラーが発生するようになりました。
-----エラー内容-----
テンプレート「サイトマップ」の再構築中にエラーが発生しました: <mtArchiveList>タグでエラーがありました: <mtArchiveLink>タグでエラーがありました: Yearlyアーカイブにリンクするために<$MTArchiveLink$>タグを使っていますが、アーカイブを出力していません。
MTのタグに不勉強なもので、修正の仕方がわかりませんでした。
もしわかったら教えていただけないでしょうか。
よろしくお願いいたします。
返信
はじめまして!
私も [ template="Archives"] の部分でエラーが出ていたんですが、
[ template="アーカイブインデックス" ] に書き変えたら無事に再構築されましたよ!
返信