« MySQLの文字化け対策 | トップページ | PHPのShift_JIS文字化け対策2 »

2006年11月28日

GoogleのSitemaps(サイトマッププロトコル)を作ろう

先日、米のGoogle,Yahoo,Microsoftの検索エンジン大手の3社が「Sitemaps 0.90」に対応させると、発表がありました。
今まではそれぞれの検索エンジン用のSitemapsを作っていましたが、近い将来統一してくれるそうです。
米で始まったばかりなので、日本ではまだまだ先の話かなぁ。。。
このサイトを立ち上げた当初(1年前)からGoogle用にSitemaps(サイトマップ)を作って実験してきました。作ると言っても自動ですが、、、
やり始めのころはサービスを始めたばかりとのこともあり、目ぼしい機能もなかった上に自動でSitemapsを作っていたので放置してました。
先日、久々にログインをしてみると「インデックス登録日」「インデックス更新日」「ロボットが拾ったキーワード」「検索語句での順位」「ランクの高・中・低ページの割合」等、色々な情報や機能が実装されていました。(いつの間に!?)
今では定期的にチェックしています。SEO対策にも使えそうな機能が沢山あるので興味のある方は登録してみてください。
と言うことで今日はXML形式のSitemapsの作り方を紹介します。

・Google本家のヘルプページ
ウェブマスター向けヘルプセンター
*右上にある「Change Language」で日本語に変換できます。

・今回参考にしたページ
Googleウェブマスターツール XMLの作り方

Googleでは4種類のSitemaps(サイトマップ)が使用可能です。
・サイトマッププロトコル
今回、ご紹介するXML形式のサイトマップです。
・OAI-PMH
これは全然調べてません^^;
・シンジケーション フィード
RSS2.0やAtom0.3をSitemapsとして使えます。
・テキスト ファイル
1行に1つのURLを記述する一番簡単な方法です。

サイトマッププロトコル(XML形式)で作ってみます。
まず、通常通りXML宣言文を記述します。

<?xml version="1.0" encoding="UTF-8"?>

次に、urlsetタグを記述します。

<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
</urlset>

サイトマッププロトコルでは必ず最初と最後を「<urlset>」で囲みます。
xmlns属性も必ず入れましょう(2006年11月28日現在では0.84ですが、近い将来変わるかもしれません)。これは約束事でHTMLファイルをhtmlタグで囲むのと同じような意味だと思ってください。

urlsetタグの中にurlタグを入れます。

<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
</url>
</urlset>

urlタグの中にはインデックスさせたいページのURLや更新日時を書いて行きます。
urlタグ1つにつき、1ページ分の情報を指定します。

次はurlタグの中に情報を書き込んで行きます。

<url>
<loc>http://xxx.xxxxx.xx/</loc>
<lastmod>2006-11-19T16:12:05Z</lastmod>
<changefreq>monthly</changefreq>
<priority>1.0</priority>
</url>

locタグはURLを指定します。この項目は必須です。
lastmodタグは最終更新日時を指定します。時間を省いて年-月-日で指定することも出来ます。オプションなので指定しなくても問題ありません。
changefreqタグはページの更新頻度を指定します。上記の例では「monthly」なので1ヵ月に1回更新してますと言うことです。(ただし、指定した期間に必ずクロールされるとは限りません。あくまで目安です。)changefreqタグもオプションです。
priorityタグは自サイト内のみで優先順位を0.0~1.0の範囲内で指定します。数字が高いほど優先順位が高くなります。これもオプションで、デフォルト(指定なし)では0.5になります。
あくまで自サイト内のみの優先順位の為、全てを1.0にしても順位が上がることはありません。

後は、自由にurlタグを増やしてサイトマッププロトコルを増やして行きましょう。

Sitemaps(サイトマッププロトコル)製作例

1つのSitemapsで最大50,000件又は10MBまで登録できます。50,000件又は10MB以上のページが存在する場合、2つ以上のSitemapsを1つにすることで対応可能です。詳細は下記をご参照ください。
複数のサイトマップを登録する方法

今回はSitemapsについて、ご紹介させていただきました。
最後に、サイトマッププロトコルのタグ一覧表を作りました。

*は必須項目です。

<urlset>*ファイル全体を囲い込みます。

例)<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">~</urlset>

<url>*URLや更新日時(<loc> <lastmod> <changefreq> <priority>)を囲むタグです。
<url>1つにつき、1ページ分の情報を指定します。

例)<url>他のタグ</url>

URLタグ内で使用可能なタグ
*は必須項目です。

<loc>*インデックスに登録するURLを指定します。

例)<loc>http://xxx.xxxxx.xx</loc>

<lastmod>ページの最終更新日時です。年-月-日に省略することも可能です。

例)<lastmod>2006-11-19T16:12:05Z</lastmod>
例)<lastmod>2006-11-19</lastmod>

<changefreq>ページの更新頻度を指定します。ただし、指定した期間に必ずクロールされるとは限りません。あくまで目安です。

・alwaysアクセスする度に内容が変わるページ
・hourly1時間に1回ペースで内容が変わるページ
・daily1日に1回ペースで内容が変わるページ
・weekly1週間に1回ペースで内容が変わるページ
・monthly1ヶ月に1回ペースで内容が変わるページ
・yearly1年に1回ペースで内容が変わるページ
・neverアーカイブページのURL

例)<changefreq>monthly</changefreq>

<priority>サイト内の優先順位です。0.0~1.0の値を指定します。
数字が高いほど優先順位が高くなります。
デフォルト(指定なし)では0.5になります。
あくまで自サイト内のみの優先順位の為、全てを1.0にしても順位が上がることはありません。

例)<priority>1.0</priority>

・関連記事
Movable TypeでSitemaps(サイトマッププロトコル)を作ってみよう

トラックバック

このエントリーのトラックバックURL:
http://www.s-memo.net/mt/mt-tb.cgi/22

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)