テクニックというか、技術的な部分についてあまり触れていませんでしので、今回はsitemap.xmlについて書きたいと思います。
かなり前ですが、モバイルサイト向けsitemap.xmlについての記事を書いた事がありました。

今回はPCサイト用のsitemap.xmlを設置する目的、その書き方や書式の意味について説明したいと思います。

sitemap.xmlは何の為に設置するのか?

通常、sitemap.xmlはユーザーに見せるために設置するものではありません。
検索エンジンのクローラーがサイト内のページを効率よく巡回する為に設置するものです。
ユーザーにサイト内を効率よく巡回して欲しい、と感じた場合は、別途sitemap.htmlの様なページを1ページ設置し、ユーザーにサイトの状況を分かりやすく伝える様にすると良いでしょう。

SEOというか、検索されて自分のサイトにたどり着いて貰う為に、最初にしなければいけない事は、検索エンジンにインデックスされる事です。
インデックスされるには、まず、検索エンジンのクローラーに効率よくクロールされる必要があります。
クロールされる為には、検索エンジンに対してURLを伝える必要があるのです。
通常、検索エンジンは、リンクを辿り、そこからURLのリストを見つけ出してくれますが、見つかりにくいURLもあり、上手くクロールされない可能性もあります。

例えば他のページから、あまりリンクされていない場合などは、クロールされない可能性が高いでしょう。
こういった状況を極力避けて、現在サイト上に存在しているページをこちら側から指定してクロールやインデックスを促す場合、sitemap.xmlが便利です。

sitemap.xmlは、検索エンジンに対して、そのサイトのページのリストを教えてあげる為に存在するのです。
SEOではクローラビリティについて考える事も大切になります。

sitemap.xmlの書式や記述の意味

必須項目と省略可能な項目がありますが以下の様な形になります。

<?xml version=”1.0″ encoding=”UTF-8″?>
<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″>
<url>
<loc>http://www.example.com/</loc>
<lastmod>2013-03-07</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>

分解して見ていきましょう。

<?xml version=”1.0″ encoding=”UTF-8″?>
ここでは、文字コードを宣言しています。
UTF-8エンコードで作成しましょう。

<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″>
ネームスペースを指定しています。
最新バーションである「http://www.sitemaps.org/schemas/sitemap/0.9」を記載しましょう。

ここまでが、sitemap.xmlファイルの最初に宣言する内容になります。
1度記載するだけで問題ありません。

<url>
親タグとして、<loc>などの個々の情報を囲います。

<loc>
URLを記載します。
重複していない、固有のURLを記載する必要があります。

上記2項目は、URL毎に必須の情報となります。
URLの数だけ記載する事になりますが、1つのsitemap.xmlファイルには5万URLまでしか、URLを記載出来ません。
また、1ファイルにつきファイル容量が10MB以上になってはいけません。

ここから下は、省略可能な項目です。
1つ1つ説明します。

<lastmod>
ファイルの最終更新日を記載します。
例の通り、YYYY-MM-DD の形式で記載する必要があります。
時刻は省略可能です。

ちなみに、この情報に関してはGoogleも参考にしている様子です。
大規模サイトの更新をGoogleに伝える方法 & 重複コンテンツを減らす方法 at #SMX London 2012

既存のURL: 正確な日時のを記述する - 最後のクロールよりも新しい日時の<lastmod>が付いたURLのクロールをGooglebotは優先する

とあります。
意外と地味な所ですが、書かないよりは書いたほうが良いと思います。
過去記事を更新した場合などにも再クロールして欲しい場合もありますよね。

<changefreq>
ページの更新頻度を表します。
Googleには参考程度でしか利用されませんが、クロール頻度の参考に使われる可能性もあります。
有効な値を記載しておきます。()内は、それぞれの値の意味です。

  • always(アクセスする度に更新されている)
  • hourly(1時間毎に更新されている)
  • daily(毎日更新されている)
  • weekly(1週間毎に更新されている)
  • monthly(1ヶ月毎に更新されている)
  • yearly(1年毎に更新されている)
  • never(アーカイブページなどに指定します)

<priority>
サイト内の他のURLと比較した際の優先度を表します。
0.0から1.0までを指定可能です。
検索エンジンに対して重要度を伝えるものになります。
デフォルト値は0.5となります。
検索順位に影響しませんので、特別設定しなくても問題はありませんが、早めにインデックスして欲しいページの優先度を高めに設定すると良いでしょう。
トップページが1.0
第一階層が0.8
第二階層が0.5

の様な形で指定しても良いと思います。
ページの優先度を判断して指定して下さい。
全てのURLに1.0に指定すると、その効果が無くなります。

今回の記事のまとめ

基礎的な内容ですが、しっかりと書いた事がありませんでしたので書いてみました。
意外とWeb制作の現場では作られたり、クライアントへ見せたりする事が多い様子です。
ウェブマスターツールでグラフになって見えるのも大きいのかも知れません。

検索順位に影響する訳ではありませんが、インデックス促進には有効な方法です。
更新頻度について把握するためにも使われている様ですから、設置しておいて損をする事は、まず無いでしょう。

念のため公式情報についても確認しておきましょう。
サイトマップについて

また、sitemap.xmlの自動生成ツールも紹介しておきます。

ツールで取得したURLの場合、リンクを辿ってURLを取得する為、index.html有り・無しを重複して取得してしまう可能性もあります。
<lastmod>や<lchangefreq>などの情報を上手く設定出来ない可能性もあります。
ある程度は手作業で設定する必要もあります。

WordPressの場合でしたら、Google XML Sitemapsというプラグインを使用する事で、記事を更新する度に自動で生成させる事が可能です。

ご自身にあった方法を活用してインデックスの促進を行いましょう!

※本ブログに記載されている情報は、私の見解に基づく場合が多々ございます。
 掲載記事を参考にした事による損害については、その責任を負いかねます。
 自己責任で、掲載情報を参考にして頂ければと思います。