Google Sitemaps
の英語版β公開から既に一年が経過していますが、今更ながらOpen MagicVox.netでもGoogle Sitemapsに対応してみました(遅いって!) サイトのクロール精度を向上し、ページを変更した場合でもより確実にクロールされるようにすることで、サイト全体のSEO効果を高めることができます。
このエントリでは、MovableTypeを使ったGoogle Sitemapsの攻略(?)方法を紹介しています。
検索エンジンの多くは"クローラ(crawler)"と呼ばれるロボットプログラムを使ってあなたのサイトを訪れ、そのページをデータベースに蓄積しています。どんなに素晴らしいコンテンツを公開していても、クローラがそのページを訪れてくれない限り、検索サイトの検索結果には表示されません。そのクローラロボット君を、更新されたページに効果的に案内できれば、より新しいウェブページが検索結果に反映されると考えられます。Google Sitemapsは、クローラロボット君があなたのサイトを精度良くクロールするための手助けをします。
Google Sitemapsに対応すると、果たしてどれくらいの効果があるのでしょうか? 実は私が今まで放置していたのも、この効果がイマイチ良くわからないと云うことが理由にありました。しかし、"Google Sitemapの効果を検証する"によると、サイトの構成などによってバラツキはあるかも知れませんが、かなり劇的な効果が期待できそうです。
また、MovableTypeで運用されているサイトであれば、小さなテンプレートファイル一つの hack で対応できる点も見逃せません。
クロールロボット君に巡回して欲しいページのURLを教えるのがサイトマップです。クロールロボット君は、このサイトマップの情報を元に、クロールするページを決定すると考えられます。 MovableType で作られたサイトでインデックスして欲しいURLといえば、もちろん個別アーカイブページです。つまり、サイトマップには個別アーカイブページのパーマリンクURLをリストすれば良い…となれば後の話は簡単ですね(笑
MovableTypeのテンプレート管理画面で、新規インデックステンプレートを作成します。出力ファイル名はsitemap.xmlなどとしておきます。
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84"> <url> <loc><$MTBlogURL encode_xml="1"$></loc> <lastmod><$MTDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod> <changefreq>weekly</changefreq> <priority>0.8</priority> </url> <MTEntries lastn="65535"> <url> <loc><$MTEntryPermalink encode_xml="1"$></loc> <lastmod><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod> <changefreq>never</changefreq> <priority>0.5</priority> </url></MTEntries> </urlset>
参考:Google Sitemaps using Movable Type via SEMリサーチ - MovableTypeで Google Sitemapsを作成する
sitemap.xml を構築したら、Google Sitemaps にログインし、sitemap.xml を登録するだけで作業は完了します。至って簡単。あとは結果が出るまでのお楽しみです。
上のサイトマップには個別アーカイブページのURLだけをリストしています。一方、カテゴリアーカイブや月別アーカイブのURLについては、私は敢えてリストする必要は無いと考えています。沢山のビジタに訪問して欲しいと思うのが人情ではありますが、クロールロボット君に必要なページを効果的に隈なく巡回されてこそ、それが実現されるわけです。無闇にURLを増やすのは、サイトマップの目的としては本末転倒です。
カテゴリアーカイブや月別アーカイブの一般的な使われ方を考えれば、それらは単なる個別アーカイブの劣化コピーにしか過ぎないとも言えます。加えて検索エンジンの検索結果にカテゴリアーカイブや月別アーカイブがインデックスされるのは、ビジタに不便を強いるケースを想定しなければなりません。
カテゴリアーカイブが検索エンジンにインデックスされたとしましょう。もちろん、カテゴリアーカイブは、ブログに新しい記事が追加される度に更新されています。数ヶ月前のインデックスを頼りに、カテゴリアーカイブに辿り付いたビジタは、果たして目的の記事に辿り付けたでしょうか? 頻繁に記事が追加されるカテゴリであれば、お目当てのタイトルは過去ログの彼方に消えていることでしょう。過去ログから目的の記事を探すなんて、ビジタにそんな手間を強いるのであれば、最初から個別アーカイブに誘導してしまった方が良いと思いませんか?
カテゴリアーカイブや月別アーカイブは、ビジタがサイトをブラウズするには有用ですが、今、注目しているのは検索エンジンからのビジタであるという点です。
そういう思想から、Open MagicVox.net のカテゴリアーカイブページには、META タグに noindex,follow が指定してあります!
サイトマップファイルの仕様を読むと、サイトマップにはクローラに有益な情報を提供できそうな仕組みが幾つかあります。これを使わない手はありません。上のサイトマップをカスタマイズして、チューンアップしてみます。
もし、あなたのブログに得意とするジャンルやカテゴリがあるようでしたら、それはあなたのブログを他と差別化できる大きな武器になるでしょう。そこで、ビジタに特にアピールしたいと思うカテゴリの記事を、クロールロボット君に優先的にクロールさせるよう調整したものが次のテンプレートです。
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84"> <url> <loc><$MTBlogURL encode_xml="1"$></loc> <lastmod><$MTDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod> <changefreq>weekly</changefreq> <priority>0.8</priority> </url> <MTEntries lastn="65535"> <url> <loc><$MTEntryPermalink encode_xml="1"$></loc> <lastmod><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod> <MTIfMatches var="EntryCategory" pattern="m/MovableType/"> <changefreq>weekly</changefreq> <priority>0.8</priority> </MTIfMatches> <MTIfMatches var="EntryCategory" pattern="m/プラグイン/"> <changefreq>weekly</changefreq> <priority>0.7</priority> </MTIfMatches> </url></MTEntries> </urlset>
<priority>
はそのURLの優先度を指定するパラメータで、この例では、"MovableType"カテゴリと"プラグイン"カテゴリに属する記事については、他の記事に比べてURLの優先度を高く指定しています。
また、記事の更新頻度(<changefreq>
)を併せて指定することで、クロール頻度を週単位(weekly)に明示しています。
優先度とは 0.5 を基準にした、各URL間の相対的なものなので、全てのURLに対して最高値(1.0)を指定するのは却って逆効果と思われます。
実際のところ、個別アーカイブなので更新頻度にはneverの指定で十分です。更新も無いページに対してdailyやalwaysを指定するのは却って逆効果と思われます。これはあくまで例として。
なお、これらの指定はあくまでクロールロボット君のためのヒントでしかありませんから、過信しすぎないように。
上の例で使用した <MTIfChanged>
テンプレートタグを使うには、Regex Pluginが必要になりますから別途導入しておいてください。このプラグインの使い方については、drk7.jp:MovableType の正規表現プラグインにが判りやすくてお奨めです。
Google Sitemaps の管理画面には、クローラの詳細なエラー情報を確認したり、自分のサイトがどのような単語で検索されているか一覧する便利な機能がありますが、実はそのままでは使えません。登録したサイトがサイト管理者本人のものであるのかを確認する作業が必要になります。 これをサイトの確認と呼んでいます。
サイトを確認するには 2 通りの方法があって、一つはサイトのホームページ(index.htmlやindex.php)に Google Sitemaps で指定された META タグを埋め込む方法。もう一つは、サイトのトップに Google Sitemaps が指定した名前で HTML ファイルを置く方法です。何れかの作業を完了することで、このサイトがあなたのものと確認され、より詳細な統計情報を見ることができるようになります。実際にやってみると特に難しい作業でもありませんから、サクッと済ませおきましょう。
一晩、この作業が必要なこと気付きませんでした(汗)
個人的には META タグを使うのがスマートと思います。余計なファイルが増えませんし。