サイトマップインデックスファイルの利用

サイトマップには1つのファイルにURLは50,000個までという制限とファイルサイズは10MBまでという制限があります。この制限を超えてしまう場合はサイトマップを複数に分けることもできますが、サイトマップの数が数百や数千になるような場合はサイトマップインデックスファイルを使用すると便利です。

サイトマップインデックスファイルは利用するサイトマップをリストを記述したもので、Search Consoleでサイトマップを送信する時に、複数のサイトマップを利用していても送信するのはサイトマップインデックスファイル1つだけで済みます。ここではサイトマップインデックスの使い方について解説します。(複数のサイトマップをそれぞれ送信する方法については「複数のサイトマップの利用」を参照して下さい)。

(2022 年 04 月 22 日公開 / 2022 年 04 月 22 日更新)

サイトマップインデックスファイルの作成

サイトマップインデックスファイルとは、使用するサイトマップをまとめたファイルです。サイトマップインデックスの構造は次のようになります。

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

  サイトに関する情報

</sitemapindex> 

XML宣言を記述した後で <sitemapindex> タグで全体を囲います。<sitemapindex> タグは必須です。そしてこの中にサイトで利用するサイトマップに関連する情報を記述していきます。

「サイトに関する情報」に関しては次のように記述します。

<sitemap>
    <loc>http://www.example.com/sitemap1.xml</loc>
</sitemap>

まず全体を <sitemap> タグで囲います。そしてサイトマップのURLを <loc> タグの値として記述します。この二つのタグは必須のタグです。

例えば2つのサイトマップが含まれるサイトマップインデックスファイルは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <sitemap>
        <loc>http://photo.egokorodiary.com/sitemap1.xml</loc>
    </sitemap>

    <sitemap>
        <loc>http://photo.egokorodiary.com/sitemap2.xml</loc>
    </sitemap>
</sitemapindex>

またオプションとしてサイトマップのファイル更新日を表す <lastmod> タグが用意されています。値として次のような形式で指定して下さい。

・YYYY-MM-DDの形式、例:2012-02-27
・YYYY-MM-DDThh:mm:ssTZDの形式、例:2012-02-27T14:38:07+09:00

もし <lastmod> タグを記述する場合は次のようになります。

<sitemap>
    <loc>http://www.example.com/sitemap1.xml</loc>
    <lastmod>2012-02-27</lastmod>
</sitemap>

サイトマップインデックスファイルを作成する上でいくつか注意事項があります。

・サイトマップインデックスファイルのファイルは UTF-8 エンコードで作成して下さい。
・&などの文字はエスケープ処理をして下さい。
・サイトマップインデックスファイルに含むことが出来るサイトの数は50,000個までです。
・ファイルサイズは 10MB(10,485,760 バイト) 以下にする必要があります。
・サイトマップ インデックス ファイルには、このファイルと同じサイトにあるサイト
  マップのみを含めることができます。

エスケープ処理が必要な文字は以下のとおりです。

&    &amp;
'    &apos;
"    &quot;
>    &gt;
<    &lt;

サイトマップの場合と多くの点で同じです。

Search Consoleにてサイトマップインデックスファイルを送信

ではサンプルを使って実際にサイトマップインデックスファイルを作成しSearch Consoleから送信を行ってみます。

今回対象となるサイトは次のようなファイル構成となっています。

[/root] -+-- index.html
         |
         +-- [/photo] --+-- index1.html
         |              +-- index2.html
         |              +-- index3.html
         |
         +-- [/illust]--+-- index1.html
                        +-- index2.html
                        +-- index3.html

今回はサイトマップを2つに分けてそれぞれ次のように作成しました。

sitemap1.xml

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>http://cat.egokorodiary.com/index.html</loc>
        <lastmod>2015-11-20</lastmod>
    </url>

    <url>
        <loc>http://cat.egokorodiary.com/photo/index1.html</loc>
        <lastmod>2015-11-20</lastmod>
    </url>

    <url>
        <loc>http://cat.egokorodiary.com/photo/index2.html</loc>
        <lastmod>2015-11-20</lastmod>
    </url>

    <url>
        <loc>http://cat.egokorodiary.com/photo/index3.html</loc>
        <lastmod>2015-11-20</lastmod>
    </url>
</urlset>

sitemap2.xml

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>http://cat.egokorodiary.com/illust/index1.html</loc>
        <lastmod>2015-11-20</lastmod>
    </url>

    <url>
        <loc>http://cat.egokorodiary.com/illust/index2.html</loc>
        <lastmod>2015-11-20</lastmod>
    </url>

    <url>
        <loc>http://cat.egokorodiary.com/illust/index3.html</loc>
        <lastmod>2015-11-20</lastmod>
    </url>
</urlset>

この2つのサイトマップを含むサイトマップインデックスファイルを作成します。

sitemap-index.xml

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <sitemap>
        <loc>http://cat.egokorodiary.com/sitemap1.xml</loc>
    </sitemap>

    <sitemap>
        <loc>http://cat.egokorodiary.com/sitemap2.xml</loc>
    </sitemap>
</sitemapindex>

作成した2つのサイトマップを対象のサイトのルート直下にアップロードしました。

[/root] -+-- index.html
         |
         +-- sitemap1.xml
         +-- sitemap2.xml
         +-- sitemap-index.xml
         |
         +-- [/photo] --+-- index1.html
         |              +-- index2.html
         |              +-- index3.html
         |
         +-- [/illust]--+-- index1.html
                        +-- index2.html
                        +-- index3.html

これで準備は完了です。

Search Consoleにログインし、対象のサイトのダッシュボード画面にて「クロール」メニューの中の「サイトマップ」メニューをクリックして「サイトマップ」の画面を表示して下さい。現在はサイトマップが送信されていない状態です。

p6-1

画面右上に表示されている「サイトマップの追加/テスト」と書かれた個所をクリックしてサイトマップインデックスファイル(sitemap-index.xml)を送信します。

p6-2

サイトマップインデックスファイルの送信が完了し、次のような画面が表示されます。

p6-3

サイトマップを送信した時と同じように送信されたURLの数のグラフなどが表示されます。サイトマップインデックスファイルに含まれるサイトマップや、サイトマップ毎のURL数などを確認する場合は画面に表示されているサイトマップインデックスファイルの名前をクリックして下さい。

p6-4

サイトマップインデックスファイルに含まれるサイトマップのリストが表示されます。それぞれのサイトマップに含まれるURL数なども確認できます。

p6-5

p6-6

さらに詳細を確認したい場合は表示されているサイトマップの中から確認したいサイトマップの名前をクリックして下さい。

p6-7

該当のサイトマップの送信されたURLの数やインデックス済みの数などが表示されます。

p6-8

このようにサイトマップインデックスファイルを使用することで、使用しているサイトマップがどれだけあってもサイトマップインデックスファイルを管理するだけで済みます。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。