いろいろ準備中

[sitemap][xml] サイトマップ sitemap.xmlの生成方法についてまとめ

2月 20th, 2008 Posted in web開発

サイトマップ sitemap.xmlについて調べたのでまとめてみました。
内容はgoogleのページを参考にしています

■ 概要
サイトマップを検索エンジンに送信することで、検索エンジンのクローラでサイトをより正確にクロールできるようになります。
サイトマップはリンクを辿れない動的ページや、新しくできた、リンクのないページに使うと効果的です。
サイトマップは検索エンジンが URLを検索するために補助的に使用するもので、サイトマップを指定してもウェブページが検索インデックスに必ず登録されるわけではなく、また、Googleでのページの掲載順位に影響を与えることもありません。

■ サイトマップファイル仕様
詳しくはここ

  • <urlset>タグで始め、</urlset>タグで閉じます。
  • 個々のURLの情報を、<url>タグ内に記述します。
  • <url>タグ内に<loc>を含め、この中にURLを書きます。

以下に例を書きます。

< ?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
<loc>http://www.example.com/</loc>
</url>
<url>
<loc>http://www.example.com/catalog</loc>
</url>
...
</urlset>

これがサイトマップの最小単位となります。

<loc>タグ内のURLはhttpなどのプロトコルからはじめ、末尾にスラッシュをつけます。URLは2048文字以下で指定しなければなりません。また、<loc>のuelはエスケープ処理必須です(& → &amp;)。

<url>タグ内にはオプションで以下のタグを付け加えることが出来ます
・<lastmod>タグ
ファイルの最終更新日です。
W3C Datetime(http://www.w3.org/TR/NOTE-datetime)形式で記述します。YYYY-MM-DD(2008-02-20) や YYYY-MM-DDThh:mm:ssTZD(2008-02-20T10:51:32+09:00)です。

・<changefreq>タグ
ページの更新頻度を指定します。検索エンジンはこの値を参考情報として使用するとあり、この値と異なる頻度でクロールする場合がるようです。

always
hourly
daily
weekly
monthly
yearly
never

alwaysはアクセスするたびに内容が更新されるドキュメント、neverはアーカイブページのURLにそれぞれ使用します。

・<priority>タグ
サイト内の、他のURLと比較した優先度です。0.0から1.0まで値を指定できます。
これ、自サイト内の重要なページからクロールされるようにするためのもので、他の外部サイトとの比較のものではありません

上記オプションを含めた記述例です。

< ?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
<loc>http://www.example.com/</loc>
<lastmod>2005-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.example.com/catalog</loc>
<lastmod>2005-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
...
</urlset>

■サイトマップでのURLのパス
サイトマップに含められるURLは、現在のパス以下のものに限ります。たとえば、

http://example.com/catalog/sitemap.xml

というサイトマップには

http://example.com/catalog/item?id=12345
http://example.com/catalog/campaign/
http://example.com/catalog/new/id/12345

などはOKですが、

http://example.com/order/item?id=12345
http://example.com/new

などはだめです

■ サイトマップインデックスファイル
サイトマップファイルは、1ファイル10M以内で、50000個以内のURLを含めることができます。

上記制限を超える場合は、複数のサイトマップファイルを作成し、これらのサイトマップをリストしたサイトマップインデックスファイルを作成する必要があります。
サイトマップインデックスファイルには、1000 個までのサイトマップを含めることができます。

■ サイトマップインデックスファイル仕様
詳しくはこちら

  • <sitemapindex>タグで始め、</sitemapindex>タグで閉じます。
  • 個々のサイトマップの情報を<sitemap>タグで囲みます。
  • <sitemap>タグ内に、サイトマップの場所を記述した<loc>タグを含めます。
  • オプションで<lastmod>タグを含めることができます。内容はサイトマップインデックスファイルの最終更新日で、サイトマップファイルの同タグと同じ内容です。

上記をまとめた記述例です。

< ?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84">
<sitemap>
<loc>http://www.example.com/sitemap1.xml.gz</loc>
<lastmod>2004-10-01T18:23:17+00:00</lastmod>
</sitemap>
<sitemap>
<loc>http://www.example.com/sitemap2.xml.gz</loc>
<lastmod>2005-01-01</lastmod>
</sitemap>
...
</sitemapindex>

■ おわりに
動的にコンテンツがどんどん増えていくようなページでは、サイトマップインデックスとサイトマップファイルを動的に、もしくは定期的に生成する仕組みを作る必要がありそうです。

  1. One Response to “[sitemap][xml] サイトマップ sitemap.xmlの生成方法についてまとめ”

  2. By system7 on 12月 24, 2008

    Googleのsitemapについて調べていたところ,たどり着きました。
    sitemapだけでなく,今後もいろいろと勉強させていただきたく,寄らせていただきます。
    その際はよろしくお願いいたします。

コメントを投稿する