このページは移転しました。

移転先はこちら→「Google Sitemaps グーグル・サイトマップ(ベータ版)FAQとプロトコル全訳。新しいURL登録方法はSEOに必須になる?

Google Sitemaps グーグル・サイトマップ(ベータ版)FAQとプロトコル全訳。新しいURL登録方法はSEOに必須になる?

 Googleがサイトマップ(Sitemaps)という新しいツールのβ版を公開した(今のところ英語版のみ)。これは、Googleがウェブページを巡回するときに「取りこぼし」のないよう、サイト管理人側でURLの一覧を提供できるというものだ。

 今まではGoogleがリンクをたどってきてくれることを待つ(あるいはたどりやすいようにリンクを設定する)という「巡回待ち」をしなければならなかったが、これからは、更新頻度やサイト内でのファイルの優先順位も含めて、リンク一覧をGoogleに渡すことができるようになるわけである。

 ただし、これはページランクを上げるためのものではない。あくまでも巡回で取りこぼしがないようにするものだ。ファイル数が多くてすべてのファイルが巡回してもらえなかった、というようなサイトにとっては福音といえよう。

 これからのSEOでは、このグーグル・サイトマップ対策も必須になりそうである。ただし、現在Googleから提供されているサイトマップ・ジェネレーターはpythonにしか対応していないので、iswebなど一部のサーバーでしか使えないのが残念。

 以下、β版ということなので、GoogleサイトマップについてのFAQと、サイトマップ・プロトコルについて全訳しておいた。有効に使っていただければ幸いである。

GoogleサイトマップFAQ

Googleサイトマップについて

1.Googleサイトマップとは何ですか?

 Googleサイトマップはウェブ巡回の実験です。サイトマップを使ってクローラーに情報提供・指示することで、ウェブのカバー範囲を広げ、インデックスに収納する時間を改善したいと思っています。サイトマップ・フォーマット化されたファイルをウェブサーバーにおくことによって、我々のクローラーは、どのようなページが現存しているか、どれが最近変わったのかを見つけ、それに応じてあなたのサイトを巡回できるようにします。

 基本的に、Googleサイトマップに参加するには2ステップ必要です。

  1. サイトマップ・ジェネレーターを使って正しいフォーマットでサイトマップを作ってください。
  2. サイトに変更を加えたときは、サイトマップを更新してください。
2.Googleサイトマップを使えるのは誰ですか?

 Googleサイトマップはすべてのウェブサイト・オーナーのためのものです。1ページだけのサイトから、絶えず変化する何百万ものページを持つ会社まで。以下に当てはまるなら、特にGoogleサイトマップに興味を持たれるかもしれません。

  • Googleにもっと自分のウェブページを巡回してほしい。
  • サイト上の内容が変わったときにGoogleに告知したい。
3.費用はいくらかかりますか?

 まったく何も。Googleは検索結果に関して請求したことはありませんし、そうするつもりもありません。

4.Googleはなぜこのようなことをするのですか?

 世界の情報をまとめて広くアクセスできるようにするというGoogleの使命に沿って、この協同的な巡回システムによって、カバー範囲と新鮮さを改善することによってユーザーがGoogleの検索結果を使いやすくなるように、我々のクローラーを最適化することができます。

5.始め方は?

 Googleサイトマップのフォーマットについて学ぶには、以下の「サイトマップの作り方は?」を読んでください。もし直接技術的な詳細に飛びたいなら、サイトマップ・プロトコル(下記)とサイトマップ・ジェネレーターについての文書をご覧ください。

6.Googleアカウントに登録する必要がありますか?

 サイトマップを作って登録するためにはアカウントは必要ありません。しかし、サイトマップの状態を追跡し、登録したものへの診断情報を見ることができるようにするには、アカウントに登録することをおすすめします。アカウントを持っていても、結果におけるサイトランキングには影響がありません。もしすでにGmail、グループ、マイサーチヒストリー、アラート、Froogleショッピングリストを使っているなら、すでにGoogleアカウントがありますから、すでに持っているアカウントでGoogleサイトマップを使うことができます。

7.このプログラムに参加すると、Google検索結果でページの順位が変わるでしょうか?

 いいえ。Googleサイトマップを使ってもページランクには影響がありません。ページのランキングの計算には何の変更もありません。

サイトマップ

1. サイトマップ・プロトコルとは?

 サイトマップ・プロトコルとは、ウェブクローラーに対して適切なサイトマップ情報を要約するためのXMLの記法です。それぞれのURLに対して、最終更新日やおよその更新頻度のような巡回のための「ヒント」を付け加えることができます。サイトマップ・プロトコルの詳細はこちら。

2.サイトマップの作り方は?

 サイトマップを作るには多くの方法があります。グーグルのサイトマップ・ジェネレーターを使うことができます。これはGoogle Codeからダウンロードできます。これは基本的な使い方をする場合のためのサイトマップを生成する単純なスクリプトです。サイトマップ・ジェネレーターについては下記にて詳細を記してあります。もしサイトマップ・ジェネレーターがあなたのサイト構造ではうまく昨日しないなら、サイトマップを生成するオリジナルのスクリプトをご自分で書かれて、それを公開してくださればと思います。

3.Googleは、サイトマップのすべてのURLを巡回してインデックスするのですか?

 URLのすべてを巡回してインデックスすることを保証するものではありません。しかし、サイトマップのデータからあなたのサイトの構造を学び、クローラーのスケジュールを改善して、将来、あなたのサイトをもっとよく巡回することになるでしょう。たいていウェブマスターはサイトマップを登録すれば利益を得ることになるでしょうし、ペナルティが課せられることは決してありません。

4.Googleにサイトマップを登録するには?

 Googleサイトマップにあなたのサイトマップを登録する方法はいくつもあります。サイトマップ・ジェネレーターのスクリプトは、サイトマップを作って登録することを自動的にやってくれます。もしサイトマップ・ジェネレーターを使わないなら、Googleサイトマップ・アカウントからサイトマップを登録してもいいですし、登録のためにHTTPリクエストを使ってもかまいません。

 HTTPリクエストを使ってサイトマップを登録するためには、以下のURLへのリクエストを送信してください。

www.google.com/webmasters/sitemaps/ping?sitemap=sitemap_url

たとえば、あなたのサイトマップがhttp://www.example.com/sitemap.gzにあれば、URLはこうなります。

www.google.com/webmasters/sitemaps/ping?sitemap=http://www.example.com/sitemap.gz

「/ping?q=」のあとのURLはすべてエンコードしておいてください。

www.google.com/webmasters/sitemaps/ping?sitemap=http%3A%2F%2Fwww.yoursite.com%2Fsitemap.gz

 wget, curlその他のメカニズムを使ってHTTPリクエストを送信することもできます。リクエストが成功すればHTTP 200レスポンス・コードが返されます。別のレスポンスであれば、再登録すべきです。

 注:サイトマップ・インデックスファイルを提供しているなら、サイトマップ・インデックスファイルの場所を含むHTTPリクエストを一つ送信するだけでかまいません。インデックス内にリストアップされたそれぞれのサイトマップのために別々にリクエストを送信する必要はないのです。

5.サイトマップを作って登録してからどれくらい経てばURLを巡回してもらえますか?

 このベータ期間には、あなたのURLが巡回されたりインデックスに追加されるまでの期間、あるいはされるか否かということについては、いかなる予測も保証もできません。時間が経つにつれて、プロセスが洗練されてウェブマスターの必要をよりよく理解するにつれて、カバー範囲もインデックスされるまでの時間も改善されていくだろうと思います。

6.サイトマップを広く見られたくありません。Googleだけに見られるようにできますか?

 サイトマップは、クローラーがアクセスできるウェブサーバー上におかれるべきです。他のロボットがサイトマップファイルにアクセスするのを防ぎたいなら、Robots Exclusion Standardに従ってrobots.txtファイルを使えばいいでしょう。

 サイトマップに含めたくないページがあるなら、サイトに投稿された最新のサイトマップファイルから削除すればいいです。

7.ダイナミックURLのデータベースからURLを抽出するのは簡単ではありません。どのようにすればサイトマップを作れますか?

 適度に大きなアクセスログ(つまりApache log) を使ってURLを登録することができます。サイトマップ・ジェネレーターは、URLリストから、アクセスログから、あるいはURLに対応した静的ファイルを含むディレクトリパスの指定によって、サイトマップを生成できます。

8.サイトマップのために他のフォーマットを使うことができますか?

 ライブラリの世界で人気の高いプロトコルであるメタデータ収納のためのOpen Archives Initiative (OAI)プロトコルもサポートしています。もしサイトマップがすでにOAI-PMH version 2.0フォーマットで提供されているなら、これを登録してください。また、link/lastModフィールドを使ったRSS 2.0とAtom 0.3 シンジケーション・フィードも受け入れます。

 最後に、もしURLのリストだけを提供したいということであれば、下記の「登録できる最もシンプルなサイトマップは?」を参照してください。

9.登録できる最もシンプルなサイトマップは?

 サイトマップのためには、サイトマップあるいはOAIといったXMLフォーマットをお使いになることを強くおすすめします。それはそれぞれのURLに追加情報を関連づけることができるからです。しかし、単純なURLリストだけのテキストファイル形式のサイトマップも受け入れます。単純なサイトマップ・フォーマットは、1行に1URLというURLリストです。たとえば:

http://www.example.com/catalog?item=1
http://www.example.com/catalog?item=11
……

このフォーマットについてのメモ:

  • URLには新しい行を埋め込んで含んではいけません。
  • Googleは与えられたとおりに正確にURLを巡回しようとするので、完全にURLを指定しなければなりません。
  • サイトマップファイルはUTF-8エンコーディングを使わなければなりません。
10.登録前に、サイトマップに間違いがないかチェックすることはできますか?

 Googleは XMLスキーマを使って、サイトマップに使われる要素と属性を定義します。下記のリンクからこのスキーマをダウンロードできます。

 このスキーマに基づいてサイトマップの構造を実証する助けとなる多くのツールがあります。下記の場所でXML関連ツールを見つけることができます。

 サイトマップまたはサイトマップ・インデックスファイルをあるスキーマに対して検証するには、XMLファイルには追加ヘッダが必要になります。サイトマップ・ジェネレーターを使っているなら、これらのヘッダはすでに含まれています。別のツールを使ってサイトマップを作っているなら、XMLファイル内のヘッダは以下の例のようなものになります。

サイトマップ:

<?xml version='1.0' encoding='UTF-8'?>
	<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84
	http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">
	
	<url>
	...
	</url>
	</urlset>

サイトマップ・インデックスファイル:

<?xml version='1.0' encoding='UTF-8'?>
	<sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84
	http://http://www.google.com/schemas/sitemap/0.84/siteindex.xsd">
	
	<sitemap>
	...
	</sitemap>
	</sitemapindex>

サイトマップ・ジェネレーター

1.サイトマップ・ジェネレーターとは何ですか?

 サイトマップ・ジェネレーターは、自動的にサイトマップを生成してGoogleに登録するように設定できる単純なスクリプトです。サイトマップ・ジェネレーターは、URLリストから、アクセスログから、あるいはURLに対応した静的ファイルを含むディレクトリパスの指定によって、サイトマップを生成できます。サイトマップ・ジェネレーターの詳細についてはこちら。

2.サイトマップ・ジェネレーターに必要な条件は?

 サイトマップ・ジェネレーターはPython 2.2以降のバージョンが必要です。サイトマップ・ジェネレーターを使っているウェブマスターは、ウェブサーバーへのファイル転送とスクリプト稼働のための知識が必要です。

3.サイトマップ・ジェネレーターの動かし方は?

 サイトマップ・ジェネレーターを設定・稼働させるための解説はこちら

4.どこでサイトマップ・ジェネレーターをダウンロードできますか?

 サイトマップ・ジェネレーターはGoogle Codeにおけるオープンソース・プロジェクトの一つとしてリストアップされています。

5.わたしのURLがサイトマップ・ジェネレーターでサポートされた機構によって抽出できないならどうしましょう?

 誰か他の人たちが様々な状況に対応するサイトマップ生成ツールを開発・公開してくださることを期待しています。開発者は、GoogleサイトマップのためのGoogleグループ上で作品について論じ、共有していただければと思います。

アカウント

1.Googleサイトマップ・アカウントとは?

 あなたのGoogleサイトマップ・アカウントは、登録されたサイトマップ、最近の更新についての情報を提供します。また、Googleによって巡回される新しいサイトマップを登録できます。Google アカウントにはログインが必要です。アカウントのホームページで登録してください。もしすでにGmail、グループ、マイサーチヒストリー、アラート、Froogleショッピングリストを使っているなら、すでにGoogleアカウントがありますから、すでに持っているアカウントでサインインできます。

 サイトマップを登録するにはアカウントを使わなくてもかまいません。しかし、アカウント経由でサイトマップを登録するなら、すべての登録の状態を追跡することができます。

2.サイトマップを追加するには?

 サイトマップを作ってウェブサーバー上のアクセスできる場所に置いたなら、診断情報を見るためにサイトマップのリストにそれを追加する必要があります。サイトマップリストに追加するには、

  1. Googleサイトマップ・アカウントにログインしてください。www.google.com/webmasters/sitemaps
  2. 「Add a Sitemap」をクリックしてください。
  3. サイトマップURLを入力して「Submit URL」をクリックしてください。

 新しいサイトマップがメインページに追加されます。もしサイトマップ回収時にエラーが起こったら、修復して再登録するように表示されます。

3.アカウントからサイトマップを削除するには?

 各サイトマップの右にある「Remove」リンクをクリックすれば、リストからサイトマップを削除できます。

4.変更と同時にサイトマップを再登録するには?

 サイトマップ内のURLが変化したとか、すでにリストアップされているページを更新したらいつでも、再巡回のためにサイトマップを再登録できます。必要なサイトマップの右にある「Resubmit」リンクをクリックするだけです。「Submitted」の時刻は、この最新の登録を反映して更新されます。

 通常のツール(おすすめ)を使ってサイトマップを生成・登録することを自動化しているなら、Googleサイトマップ・アカウントで再登録リンクを使う必要はありません。「Submitted」の列は、リンクを手動でクリックした最後の時間を示し続けるでしょう。しかし、「Downloaded」の列は、我々のシステムがサイトマップを取得した最新の時刻を示すよう更新されます。

5.パスワードを忘れました。

 アカウントにアクセスできないとか、パスワードを忘れたときには、こちらへどうぞ。

https://www.google.com/accounts/ForgotPasswd

6.「Submitted」の日付が最新の登録時刻になっていません。

「Submitted」の列は、サイトマップがアカウント経由で最後に手動登録された時刻を示しています。もし、サイトマップ・ジェネレーターその他のアプリケーションを使ってウェブサーバー上で稼働するスクリプトを設定しているなら、登録はアカウントには反映されません。

 しかし、アカウントでは、これらの登録の結果、Googleによってあなたのサイトマップがダウンロードされた最新の時間を、「Last Downloaded」の列で示しています。

連絡手段

1.手助けが必要なとき、だれと連絡を取れますか?

 技術的な問題の助けが必要なら、あるいは他のウェブマスターとプログラムについて論じたいなら、Googleサイトマップ・グループのページへどうぞ。質問の答えを見つけることができるでしょうし、参加者が増えれば情報も集まってきます。我々は議論も読みますし、必要であれば援助を申し出ることもあるでしょう。

2.どこに意見や提案を送れますか?

 わたしたちはGoogleサイトマップ・グループページでの議論を呼んでいます。そして、プログラムについての意見や提案にも目を通すことになります。それは、世界中の専門家ウェブマスターからの技術的な援助も得られる場所です。質問がここで答えられず、Googleサイトマップに関するトラブルがまだあるなら、ここでご連絡ください。個々のウェブサイトに対して技術的援助をしたり、受け取ったすべての電子メールに個々に返答することはできません。しかし、送っていただいたフィードバックのすべてを読んで、それをGoogleサイトマップ改善のために使わせていただきます。

サイトマップ・プロトコル

概要

 サイトマップ・プロトコルは、サーチエンジン・クローラーに、巡回できるウェブサイト上のURLを教えることができます。サイトマップはURLのリストでできており、そのURLの追加情報として、最終更新時刻、更新頻度などを含めることもできます。

 ユーザーがブラウズできるインターフェースを通してウェブサイトのすべての領域に到達できないとき――つまり、ユーザーがリンクをたどってもサイトの一部のページや領域に到達できないときには、サイトマップは特に有益なものとなります。たとえば、特定のページは検索フォームからしかアクセスできないというサイトでは、サイトマップを作ってサーチエンジンに登録することで利益を得られるでしょう。

 この文書ではサイトマップ・ファイルのためのフォーマットを記述しています。また、サーチエンジンがそれを検索できるように、サイトマップをどこに置くべきかを解説しています。

 サイトマップ・プロトコルは、サーチエンジンがすでにURLを検出するために使っている巡回に基づいた機構を補うものではあっても、それに取って代わるものではないことにご注意ください。サーチエンジンにサイトマップ(複数でも可)を登録することで、エンジンのクローラーがあなたのサイトをよりよく巡回する助けとなるでしょう。

 このプロトコルを使ったとしても、ウェブページが検索インデックスに収められることを保証しません。また、このプロトコルを使っても、サーチエンジンによるページのランキングは影響を受けないかもしれません。

 Sitemap 0.84は、Attribution-ShareAlike Criative Commons Licenceのもとで提供されます。

XMLサイトマップ・フォーマット

 XMLサイトマップ・フォーマットで、サイトマップの中に、URLリストとそのURLの追加情報を盛り込むことができます。この追加情報は、そのURLの内容が最後に変更された日付、その内容がどのくらいの頻度で更新されるか、そのURLがサイト内の他のURLと比べてどれくらい重要か、などです。

 XMLサイトマップ・フォーマットは次のXMLタグを使います。

  • changefreq……URLの内容の更新頻度
  • lastmod……そのURLの内容の最終更新時刻
  • loc……URLの場所
  • priority……同じサイト内の他のページと比較したそのページの優先度
  • url……このタグは上記4つのタグをくくる
  • urlset……このタグは上記5つのタグをくくる

 注:サイトマップ・ファイルのすべてのデータ値はURLを含めてXMLエンコードされていなければなりません。以下の表は、文字とその対応するエンコード値のリストです。ある文字をXMLエンコードするには、実体参照も文字コードも使うことができます。XMLエンコードについての詳細についてはFAQ参照。

文字 エスケープ形式
実体参照 文字コード
アンパサンド & &amp; &#38;
シングルクォーテーションマーク ' &apos; &#39;
ダブルクォーテーションマーク " &quot; &#34;
大なり > &gt; &#62;
小なり < &lt; &#60;
サンプル XML サイトマップ

 以下の例は、XMLフォーマットのサイトマップです。例示したサイトマップにはいくつかのURLが含まれており、それぞれがloc XMLタグでくくられています。この例ではそれぞれのURLごとに別のオプションパラメーターが設定されています。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
   <url>
      <loc>http://www.yoursite.com/</loc>
      <lastmod>2005-01-01</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
   <url>
      <loc>http://www.yoursite.com/catalog?item=12&amp;desc=vacation_hawaii</loc>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.yoursite.com/catalog?item=73&amp;desc=vacation_new_zealand</loc>
      <lastmod>2004-12-23</lastmod>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.yoursite.com/catalog?item=74&amp;desc=vacation_newfoundland</loc>
      <lastmod>2004-12-23T18:00:15+00:00</lastmod>
      <priority>0.3</priority>
   </url>
   <url>
      <loc>http://www.yoursite.com/catalog?item=83&amp;desc=vacation_usa</loc>
      <lastmod>2004-11-23</lastmod>
   </url>
</urlset>

 gzipを使ってサイトマップ・ファイルを圧縮することができます。サイトマップ・ファイルを圧縮すれば、必要な帯域幅を減らすことになるでしょう。圧縮解除されたサイトマップ・ファイルは10MBより大きくならないように気をつけてください。

 注:サイトマップ・ファイルはUTF-8エンコーディングを使わなければなりません。

XMLタグ定義

 この節では、サイトマップに使えるXMLタグについての詳細を示します。いくつかのXMLタグ定義にある「サブタグ」では、クエスチョンマーク(「?」)がXMLタグ名の後ろに付いているとき、これは任意であることを示します。

changefreq
定義

任意。この値は特定のURLにおける内容がどれくらいの頻度で更新される可能性があるかを示します。値は"always"(常時), "hourly"(毎時), "daily"(毎日), "weekly"(毎週), "monthly"(毎月), "yearly"(毎年) , "never"(不変)です。"always"値はアクセスごとに変わる文書を示すために使われます。"never"値は、保存用URLを記述するために使われます。

このタグの値はヒントであって、命令ではないことに注意。決定するとき、サーチエンジン・クローラーはこの情報を考慮に入れますが、"hourly"と指定されたページを巡回するのはそれ以下の頻度になるでしょうし、"yearly"と指定されたページはそれ以上の頻度で巡回するかもしれません。クローラーは"never"とされたページも定期的に巡回します。それはこれらのページに突然変更が加えられても処理できるようにです。

制約

列挙されたリスト。有効値は"always", "hourly", "daily", "weekly", "monthly", "yearly", "never"。

<changefreq>monthly</changefreq>
上位タグ url
内容フォーマット

テキスト


lastmod
定義

任意。URLが最後に修正された日時。ISO 8601を使ってタイムスタンプを指定すること。たとえば、2004-09-22T14:12:14+00:00。ISO 8601フォーマットの時間部分を省略できます。たとえば、2004-09-22も有効です。この情報で、クローラーは変化していない文書を再巡回しなくて済むようになります。

制約

値はISO 8601フォーマットでなければならない。

<lastmod>2005-02-21</lastmod>
or
<lastmod>2005-02-21T18:00:15+00:00</lastmod>
上位タグ url
内容フォーマット

テキスト


loc
定義

必須。サイト上のページのURL。

制約

値は2048文字以下でなければならない。

<loc>http://www.yoursite.com/catalog?item=1&amp;desc=vacation_hawaii</loc>
上位タグ url
内容フォーマット

テキスト


priority
定義

任意。特定のURLを同じサイト内の他のページと比べたときの「相対的」な優先度。このタグの値は0.0と1.0の間です。0.0はサイト内で最も優先度の低いページ、1.0はサイト内で最も優先度の高いページとなります。

あるページのデフォルトの優先度は0.5です。

あるページに割り当てた優先度は、サーチエンジンの結果ページにおけるURLの場所には影響しないことに注意。同じサイト上のURLの間で選択するときに、サーチエンジンはこの情報を使います。そのため、重要なページが検索インデックスに存在する可能性を高めることができます。

また、サイト上のすべてのURLに高い優先度を割り当てても意味がないことに注意。優先度は相対的なので、サイト内のURLの間での選択にしか使われません。ページの優先度は、他のサイトのページの優先度と比較されることはありません。

制約

値は 0.0 から 1.0 までの間でなければならない

<priority>0.7</priority>
上位タグ url
内容フォーマット

テキスト


url
定義

特定の URL についての情報をくくります。

サブタグ changefreq?, lastmod?, loc, priority?
上位タグ urlset
内容フォーマット


urlset
定義

サイトマップファイル内のすべてのURLについての情報をくくります。

サブタグ url
内容フォーマット

多数のサイトマップ・ファイルを提供する

 多数のサイトマップファイルを提供することができますが、それぞれのファイルは5万URLを超えてはいけません。また、圧縮解除されたときに10MB(10,485,760)より大きくなってはいけません。これらの限界は、ウェブサーバーがあまりにも巨大なファイルを提供してダウンしたりしないようにするものです。5万以上のURLをリストアップしたければ、多数のサイトマップ・ファイルを作らなければなりません。サイトマップが5万URLまたは10MBを超えた大きさになると予想されるなら、多数のサイトマップ・ファイルを作ることを考慮すべきです。多数のサイトマップを提供するなら、サイトマップ・インデックスファイルでリストアップしなければなりません。サイトマップ・インデックスファイルでは1,000以上のサイトマップをリストできないかもしれません。サイトマップ・インデックスファイルは Sitemap_index.xml と名付けることができます。

 サイトマップ・インデックスファイルの XML フォーマットは、サイトマップファイルの XMLフォーマットに非常に似ています。サイトマップ・インデックスファイルは次のXMLタグを使います。

  • lastmod
  • loc
  • sitemap
  • sitemapindex

 注:サイトマップ・インデックスファイルは、同じサイトにあるサイトマップだけを指定できます。たとえば、http://www.yoursite.com/sitemap_index.xmlhttp://www.yoursite.com にあるサイトマップを含むことができますが、http://www.mysite.com あるいは http://yourhost.yoursite.com にあるものはだめです。

XMLサイトマップ・インデックスのサンプル

 次の例はXMLフォーマットでのサイトマップ・インデックスを示します。このサイトマップ・インデックスは2つのサイトマップをリストアップしています。

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

 注:サイトマップURLは、XMLファイルのすべての値と同様、XMLエンコードされていなければなりません。

サイトマップ・インデックスXMLタグ定義
  • locタグは必須であり、サイトマップの場所を指定します。
  • lastmodタグは対応するサイトマップファイルが修正された日時を識別する任意のタグです。サイトマップ内のどれかのページが変更された日時とは対応しません。lastmodタグの値はISO 8601フォーマットでなければいけません。
    最終更新タイムスタンプを提供することで、サーチエンジン・クローラーがインデックス内のサイトマップの下位セットのみを検索できるようになります――つまり、クローラーは特定の日付以降に更新されたサイトマップだけを検索することができるのです。この逐次的なサイトマップ取得の仕組みによって、非常に大きなサイトでも新しいURLを速やかに発見できるようになります。
  • sitemapタグは個々のサイトマップについての情報をくくります。
  • sitemapindexタグはサイトマップ・ファイル全体の情報をくくります。

サイトマップファイルの場所

 サイトマップファイルの場所で、そのサイトマップに含むことのできるURLの組み合わせが決まります。http://yoursite.com/catalog/sitemap.gz にあるサイトマップ・ファイルはhttp://yoursite.com/catalog/ に始まるURLを含むことができますが、http://yoursite.com/images/ に始まるURLを含むことができません。

 "http://site.org/path/sitemap.gz"を変更する権限があるなら、"http://site.org/path/"に始まるURLの情報を提供する権限があるということになるでしょう。http://yoursite.com/catalog/sitemap.gz で有効と思われるURLの例。

  • http://yoursite.com/catalog/show?item=23
  • http://yoursite.com/catalog/show?item=233&user=3453

http://yoursite.com/catalog/sitemap.gz で有効ではないと思われるURL の例。

  • http://yoursite.com/image/show?item=23
  • http://yoursite.com/image/show?item=233&user=3453
  • http://mysite.com/catalog/show?item=24

 有効と見なされないURLはそれ以上たどられることはありません。サイトマップをウェブサーバーのルートディレクトリに置くことを強く推奨します。たとえば、HTTPウェブサーバーが yoursite.com にあるなら、サイトマップ・インデックスファイルは "http://yoursite.com/sitemap.gz" にあるといいでしょう。特定のケースで、異なったパスのための別のサイトマップを作る必要があるかもしれません――つまり、組織内でのセキュリティ・パーミッションで別のディレクトリへの書き込みアクセスを制限している場合など。

よくある質問

Q:URLをXMLエンコードするには?

 適切にURLエンコードするには、HTML 4.0仕様書B.2.1節で勧告された手続きに従ってください。文字列をUTF-8に変換してから、その結果をURLエスケープしてください。国際化リソース識別子(IRI)の詳細は、RFC2396 (セクション2.3と2.4)ならびにRFC3987を参照のこと。

 以下はURLをXMLコーディングするpythonスクリプトの例。

    $ python
    Python 2.2.2 (#1, Feb 24 2003, 19:13:11)
    >>> import xml.sax.saxutils
    >>> xml.sax.saxutils.escape("http://www.test.org/view?widget=3&count>2")

 この例でエンコードされたURLは以下のようになります。

    http://www.test.org/view?widget=3&amp;count&gt;2
Q:サイトマップを作るのにどの文字エンコード方法を使うかというのは重要ですか?

 はい。サイトマップ・ファイルはUTF-8エンコードを使わなければなりません。

Q:時間を指定するには?

 lastmodタイムスタンプ、ならびにこのプロトコルのすべての日付と時刻はISO 8601エンコーディングを使ってください。たとえば、 2004-09-22T14:12:14+00:00。

 ISO 8601フォーマットの時間部分を省略することもできます。たとえば、2004-09-22も有効。しかし、サイトがしばしば変更されるなら、クローラーがサイトについての完全な情報を手に入れられるよう、時間部分も含めておくことをおすすめします。

Q:lastmod日付とは?

 変化がないファイルにおいては、これは実際にファイルが更新された日付です。この日付を手に入れるには、UNIX dateコマンドを使うことができます。

$ date --iso-8601=seconds -u -r /home/foo/www/bar.html

>> 2004-10-26T08:56:39+00:00

 多くのダイナミックURLにおいては、lastmodの日時は、もとになるデータが変更されたとき、あるいは周期的な更新に基づく近似値(可能であれば)によってlastmodの日付を決めることができるかもしれません。およその日付やタイムスタンプであっても使ってあれば、クローラーは変更されていないURLを巡回しなくてすみます。これはウェブサーバーの帯域とCPUへの要求を減らすことになるでしょう。

Q:どこにサイトマップを置けばいいですか?

 サイトマップをHTMLサーバーのルートディレクトリに置くことを強くおすすめします。つまり、http://yoursite.com/sitemap.gzに置いてください。

 特定のケースで、異なったパスのための別のサイトマップを作る必要があるかもしれません――つまり、組織内でのセキュリティ・パーミッションで別のディレクトリへの書き込みアクセスを制限している場合など。

 "http://site.org/path/sitemap.gz"を変更することができるなら、"http://site.org/path/"以下のメタデータを報告する権限があるということになるでしょう。

Q:サイトマップはどれぐらい大きくてもいいですか?

 サーチエンジンは、圧縮解除したときに10MB(10,485,760バイト)以上、あるいは5万以上のURLを含む場合にはサイトマップを処理できません。つまり、5万以上のURLがサイト上にあるとか、サイトマップが10MB以上になる場合は、多数のサイトマップファイルとサイトマップ・インデックスファイルを使わなければならないということです。小さいサイトであっても、5万URL以上、あるいは10MB以上に成長しそうなときは、サイトマップ・インデックスファイルを使うべきです。

Q:サイトには何千万というURLがあります。最近変更したものだけを登録するにはどうしたらいいですか?

 頻繁に更新する少数のサイトマップに更新URLをリストアップし、サイトマップ・インデックスファイルでそのサイトマップファイルを指定するためにlastmodタグを使えばいいです。サーチエンジンは、更新されたサイトマップだけをすぐに巡回するようになるでしょう。

Q:サイトマップを作ったら何が起こるのですか?

 サイトマップを作った後、サイトマップの場所をサーチエンジンに知らせる必要があります。その通知を受けたサーチエンジンはサイトマップを検索し、URLをクローラーがたどれるようにします。

Q:サイトマップのURLは完全に指定されなければいけませんか?

 はい。サーチエンジンは、提供されたとおり正確にURLを巡回します。(XMLコーディングされているなら、サーチエンジンはURLをXMLデコードします) URLにはプロトコル(たとえばhttp)を含む必要があります。ウェブサーバーが必要とするなら、URL末尾のスラッシュも忘れてはいけません。たとえば、http://www.google.com/ はサイトマップのための有効なURLですが、www.google.comはそうではありません。

Q:サイトにはURLが「http」と「https」のバージョンの両方があります。両方ともリストアップする必要がありますか?

 いいえ。サイトマップでは一つのURLには一つだけのバージョンをリストアップしてください。URLの多数のバージョンを含めてあると、サイトの不完全な巡回という結果に終わるかもしれません。

Q:サイト上のURLにはセッションIDがあります。それを取り去る必要がありますか?

 はい。URLにセッションIDを含めていると、サイトの巡回が不完全かつ冗長になるかもしれません。

Q:サイトマップにおけるURLの順番は影響がありますか?

 いいえ。サイトマップにおけるURLの順番は、サーチ・エンジンによって使用・判断される方法に影響を与えません。

Q:サイト上のいくつかのページでフレームを使っています。framesetのURLを入れるべきか、それともフレームの中身のURLを入れるべきですか?

 両方のURLを入れてください。

Q:サイトマップはzip圧縮できますか?それともgzipでないといけませんか?

 サイトマップ圧縮にはgzipを使ってください。

Q:XMLサイトマップ内での「priority」は、検索結果においてわたしのページのランキングを変えますか?

 いいえ。サイトマップでの「priority」は、サイト内の他のURLとの比較におけるURLの優先度を示すだけです。

Q:XMLサイトマップに対して有効にできるXMLスキーマはありますか?

 サイトマップ・ファイルに有効なXMLスキーマはhttp://www.google.com/schemas/sitemap/0.84/sitemap.xsd にあります。サイトマップ・インデックスファイルで有効なXMLスキーマはhttp://www.google.com/schemas/sitemap/0.84/siteindex.xsd にあります。