サイトマップの XML 形式

次に移動:
XML タグ定義
エンティティのエスケープ処理
サイトマップ インデックス ファイルの使用
サイトマップ ファイルの場所
サイトマップの検証
サイトマップ プロトコルの拡張
検索エンジンのクローラに通知

このドキュメントでは、サイトマップ プロトコルの XML スキーマについて説明します。

サイトマップ プロトコル形式は、XML タグで構成されています。 サイトマップのすべてのデータ値には、エンティティのエスケープ処理を行う必要があります。 ファイルは UTF-8 エンコードで作成する必要があります。

サイトマップの記述ルールは次のとおりです。

他のすべてのタグはオプションです。 これらのオプション タグがサポートされているかどうかは、検索エンジンによって異なります。 詳細については、お使いの検索エンジンのマニュアルを参照してください。

XML サイトマップのサンプル

1 つの URL だけを含み、オプションのタグをすべて使用したサイトマップの例を次に示します。 オプションのタグはイタリックで表示されています。

<?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>2005-01-01</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
</urlset> 

複数の URL の例もご覧ください。

XML タグ定義

使用できる XML タグは次のとおりです。

属性 説明
<urlset> 必須

ファイルの他のタグを囲み、現在のプロトコル標準を参照します。

<url> 必須

各 URL エントリの親タグです。 その他のタグは、このタグ内に含めます。

<loc> 必須

ページの URL です。 ウェブ サーバーによっては、http などのプロトコルから始め、末尾にスラッシュを含める必要があります。 この値は 2,048 文字以下で指定する必要があります。

<lastmod> オプション

ファイルの最終更新日です。 この日付は W3C Datetime 形式で記述します。 必要な場合は、時刻の部分を省略して YYYY-MM-DD の形式で記述することもできます。

このタグは、サーバーが返す If-Modified-Since (304) ヘッダーとは別のものです。検索エンジンは、両方のソースからの情報を別々に使用することがあります。

<changefreq> オプション

ページの更新頻度です。 検索エンジンではこの値を参考情報として使用しますが、指定した値とは異なる頻度でクロールされることがあります。 有効な値は次のとおりです。

  • 常時
  • 毎時間
  • daily
  • 毎週
  • 毎月
  • 毎年
  • never

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

このタグの値は、コマンドではなくヒントとして使用されることに注意してください。検索エンジンのクローラは、この情報を使用してクロール頻度を調整しますが、実際のクロールは "hourly" と指定されたページでは 1 時間に 1 回以下、"yearly" と指定されたページでは 1 年に 1 回以上行われます。また、"never" と指定されたページも予期せず変更された場合に備えて定期的にクロールされます。

<priority> オプション

サイト内の他の URL と比較したこの URL の優先度です。0.0 から 1.0 までの値を指定できます。この値は他のサイトのページとの比較方法に影響するものではなく、検索エンジンのクローラに重要なページを知らせるためのものです。

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

ページに割り当てた優先度が、検索エンジンの検索結果に表示されるページの掲載順位に影響することはほとんどありません。検索エンジンでは、この情報を使用してサイトから URL を選択するため、最も重要なページを検索インデックスに優先的に登録することができます。

また、サイト内のすべての URL に高い優先度を設定しないでください。優先度は相対的なものであるため、サイト内で URL を選択する場合にのみ使用します。

トップへ戻る

エンティティのエスケープ処理

サイトマップ ファイルは UTF-8 エンコードで作成する必要があります (ファイルを保存すると、通常は UTF-8 エンコードで保存されます)。 他の XML ファイルと同じように、URL などのデータ値では、次の文字にエンティティのエスケープ コードを使用する必要があります。

文字 エスケープ コード
アンパサンド & &amp;
一重引用符 ' &apos;
二重引用符 " &quot;
不等記号 (より大) > &gt;
不等記号 (より小) < &lt;

URL (サイトマップの URL を含む) はすべてエスケープ処理を行い、ホストするウェブ サーバーで読み取り可能な形式でエンコードする必要があります。スクリプト、ツール、ログ ファイルなどを使用して URL を生成した場合、通常は手動で入力したデータ以外は適切にエンコードされます。URL は URI の RFC-3986 基準、IRI の RFC-3987 基準、および XML 基準に従っている必要があります。

ASCII 以外の文字 (ü) とエンティティのエスケープ処理が必要な文字 (&) を含む URL の例を次に示します。

http://www.example.com/ümlat.php&q=name

ISO-8859-1 エンコードを使用するサーバーでホストされている場合は、次のように ISO-8859-1 エンコードで URL をエスケープします。

http://www.example.com/%FCmlat.php&q=name

UTF-8 エンコードを使用するサーバーでホストされている場合は、次のように UTF-8 エンコードで URL をエスケープします。

http://www.example.com/%C3%BCmlat.php&q=name

エンティティのエスケープ処理も行った URL は次のようになります。

http://www.example.com/%C3%BCmlat.php&amp;q=name

XML サイトマップのサンプル

次に、XML 形式のサイトマップの例を示します。 このサイトマップには複数の URL が含まれており、各 URL には異なるオプション パラメータが使用されています。

<?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>2005-01-01</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=12&amp;desc=vacation_hawaii</loc>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=73&amp;desc=vacation_new_zealand</loc>
      <lastmod>2004-12-23</lastmod>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.example.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.example.com/catalog?item=83&amp;desc=vacation_usa</loc>
      <lastmod>2004-11-23</lastmod>
   </url>
</urlset>

トップへ戻る

サイトマップ インデックス ファイル (複数のサイトマップ ファイルのインデックス) を使用する場合

複数のサイトマップ ファイルを送信できますが、各サイトマップ ファイルにリストする URL は 50,000 個まで、ファイル サイズは 10 MB (10,485,760 バイト) 以下とする必要があります。必要な場合は、サイトマップ ファイルを gzip 形式で 10 MB 以下に圧縮して、サーバーの負荷を軽減できます。50,000 個以上の URL をリストする場合は、複数のサイトマップ ファイルを作成する必要があります。

複数のサイトマップを使用する場合は、サイトマップ インデックス ファイルに各サイトマップ ファイルをリストする必要があります。 サイトマップ インデックス ファイルには、最大で 1,000 個のサイトマップをリストできます。サイズは 10 MB (10,485,760 バイト) 以下にする必要があります。 サイトマップ インデックス ファイルの XML 形式は、サイトマップ ファイルとほぼ同じです。

次に、サイトマップ インデックス ファイルの要件を示します。

サイトマップ インデックス ファイルでは、オプションの <lastmod> タグも指定できます。

注: サイトマップ インデックス ファイルには、このファイルと同じサイトにあるサイトマップのみを含めることができます。 たとえば、http://www.yoursite.co.jp/sitemap_index.xml には、http://www.yoursite.co.jp のサイトマップを含めることができますが、http://www.example.co.jp や http://yourhost.yoursite.co.jp のサイトマップを含めることはできません。 サイトマップと同様に、サイトマップ インデックス ファイルは UTF-8 エンコードで作成する必要があります。

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

次の例では、2 つのサイトマップをリストするサイトマップ インデックスを作成します。

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <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>

注: XML ファイルのすべての値と同様、サイトマップの URL には、エンティティのエスケープ処理を行う必要があります。

サイトマップ インデックスの XML タグ定義

属性 説明
<sitemapindex> 必須 ファイル内のすべてのサイトマップに関する情報を囲みます。
<サイトマップ> 必須 個々のサイトマップの情報を囲みます。
<loc> 必須

サイトマップの場所を指定します。

この場所には、サイトマップ、Atom ファイル、RSS ファイル、テキスト ファイルを配置できます。

<lastmod> オプション

対応するサイトマップ ファイルの更新時刻を指定します。 サイトマップにリストされているページの変更時刻ではありません。 lastmod タグの値は、W3C Datetime 形式で指定する必要があります。

最終更新日のタイムスタンプを提供すると、検索エンジンのクローラがインデックス内の特定のサイトマップのみをクロールできるようになります。たとえば、特定の日付以降に更新されたサイトマップのみがクロールされます。このようにサイトマップを段階的にクロールすることで、大規模なサイトでも新しい URL を迅速に見つけることができます。

Other Sitemap formats

The Sitemap protocol enables you to provide details about your pages to search engines, and we encourage its use since you can provide additional information about site pages beyond just the URLs. However, in addition to the XML protocol, we support RSS feeds and text files, which provide more limited information.

Syndication feed

You can provide an RSS (Real Simple Syndication) 2.0 or Atom 0.3 or 1.0 feed. Generally, you would use this format only if your site already has a syndication feed. Note that this method may not let search engines know about all the URLs in your site, since the feed may only provide information on recent URLs, although search engines can still use that information to find out about other pages on your site during their normal crawling processes by following links inside pages in the feed. Make sure that the feed is located in the highest-level directory you want search engines to crawl. Search engines extract the information from the feed as follows:

Text file

You can provide a simple text file that contains one URL per line. The text file must follow these guidelines:

Sample text file entries are shown below.

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

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

サイトマップ ファイルを置く場所によって、サイトマップに含めることのできる URL は異なります。 サイトマップ ファイルを http://example.co.jp/catalog/sitemap.xml に置いた場合は、http://example.co.jp/catalog/ から始まる URL を含めることができますが、http://example.co.jp/images/ から始まる URL を含めることはできません。

http://example.org/path/sitemap.xml を変更する権限がある場合は、通常 http://example.org/path/ で始まる URL の情報を含めることができます。http://example.com/catalog/sitemap.xml には、次のような URL を含めることができます。

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

たとえば、サイトマップを http://example.co.jp/catalog/sitemap.xml に置いた場合、次のような URL を含めることはできません。

http://example.com/image/show?item=23
http://example.com/image/show?item=233&user=3453
https://example.com/catalog/page1.php

つまり、サイトマップにリストされているすべての URL は、同じプロトコル (この例では http) を使用し、サイトマップと同じホスト上に存在しています。 たとえば、サイトマップが http://www.example.co.jp/sitemap.xml にある場合、このサイトマップには http://subdomain.example.co.jp の URL を含めることはできません。

有効ではない URL はクロールされません。 サイトマップは、ウェブ サーバーのルート ディレクトリに置くことを強くお勧めします。 たとえば、ウェブサーバーが example.co.jp にある場合、サイトマップ インデックス ファイルは http://example.co.jp/sitemap.xml に置きます。 セキュリティ保護のため組織内でディレクトリごとに異なる書き込み権限を設定している場合などは、パスごとにサイトマップを作成する必要があります。

ポート番号付きのパスを使用してサイトマップを送信する場合は、サイトマップ ファイルにリストする各 URL のパスにポート番号を含める必要があります。たとえば、サイトマップが http://www.example.com:100/sitemap.xml にある場合、サイトマップにリストする各 URL は、http://www.example.com:100 で始める必要があります。

トップへ戻る

サイトマップの検証

次の XML スキーマでは、サイトマップ ファイルの要素と属性を定義します。 このスキーマは下記のリンクからダウンロードできます。

サイトマップ情報: http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd
サイトマップ インデックス ファイル: http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd

ツールを使用して、サイトマップの構造をこのスキーマに基づいて検証できます。 XML 関連ツールのリストは、次の場所から入手できます。

http://www.w3.org/XML/Schema#Tools
http://www.xml.com/pub/a/2000/12/13/schematools.php

サイトマップまたはサイトマップ インデックス ファイルのスキーマを検証するため、次のように追加ヘッダーを XML ファイルに含める必要があります。

サイトマップ:

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

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

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

サイトマップ プロトコルの拡張

サイトマップ プロトコルは、独自のネームスペースを使用して拡張できます。 ルート要素にネームスペースを指定してください。 たとえば、次のように指定します。

<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
         http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
         xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
         xmlns:example="http://www.example.com/schemas/example_schema"> <!-- namespace extension -->
   <url>
      <example:example_tag>
         ...
      </example:example_tag>
      ...
   </url>
</urlset>

検索エンジンのクローラに通知

Once you have created the Sitemap file and placed it on your webserver, you need to inform the search engines that support this protocol of its location. You can do this by:

The search engines can then retrieve your Sitemap and make the URLs available to their crawlers.

Submitting your Sitemap via the search engine's submission interface

To submit your Sitemap directly to a search engine, which will enable you to receive status information and any processing errors, refer to each search engine's documentation.

Specifying the Sitemap location in your robots.txt file

You can specify the location of the Sitemap using a robots.txt file. To do this, simply add the following line:

Sitemap: <sitemap_location>

The <sitemap_location> should be the complete URL to the Sitemap, such as: http://www.example.com/sitemap.xml

This directive is independent of the user-agent line, so it doesn't matter where you place it in your file. If you have a Sitemap index file, you can include the location of just that file. You don't need to list each individual Sitemap listed in the index file.

Submitting your Sitemap via an HTTP request

To submit your Sitemap using an HTTP request (replace <searchengine_URL> with the URL provided by the search engine), iIssue your request to the following URL:

<searchengine_URL>/ping?sitemap=sitemap_url

たとえば、サイトマップをhttp://www.example.co.jp/sitemap.gz に置いた場合、URL は次のようになります。

<searchengine_URL>/ping?sitemap=http://www.example.com/sitemap.gz

URL encode everything after the /ping?sitemap=:

<searchengine_URL>/ping?sitemap=http%3A%2F%2Fwww.yoursite.co.jp%2Fsitemap.gz

HTTP リクエストは、wget、curl、またはその他の方法を使用して送信できます。リクエストが正常に送信された場合は HTTP 200 の応答コードが返されますが、別の応答コードが返された場合はリクエストを再送信する必要があります。HTTP 200 の応答コードは、検索エンジンでサイトマップを受信したことを示すもので、サイトマップやサイトマップ内の URL が有効であることを示すものではありません。これを簡単に行うには、サイトマップを定期的に生成し送信する自動設定を作成します。
Note: If you are providing a Sitemap index file, you only need to issue one HTTP request that includes the location of the Sitemap index file; you do not need to issue individual requests for each Sitemap listed in the index.

Excluding content

The Sitemaps protocol enables you to let search engines know what content you would like indexed. To tell search engines the content you don't want indexed, use a robots.txt file or robots meta tag. See robotstxt.org for more information on how to exclude content from search engines.

 

トップへ戻る

Last Updated: 11 April 2007