ウェブマスターがウェブのことを書いたら

ウェブマスターとして働いている管理人がウェブで躓いたこと、ググったことを備忘録として書いています。主に技術的なこと、WEBサイト設計のこと

独自で作成!xmlサイトマップの作り方・書き方(Google向け仕様)

   

 - サイトマップ

XML形式のサイトマップの作成方法をまとめます。Google向けの作り方ですが、bingでも同じで大丈夫です。自動で作成するツールもありますが、大規模サイトやポータルサイトの場合、独自で作成しないといけないことが殆どですので、作成時の仕様、注意点をまとめます。

サイトマップ作成の【Googleのヘルプページ】はこちら

ファイルの制限、仕様

まずは、作成するファイルの仕様、制限です。Googleのヘルプページに以下の記載があります。

ファイルサイズ1つのサイトマップXMLにリストできるURLの数
10MB以下(圧縮しない状態で)50,000件以下

ファイルには上記のようにサイズが10MB(圧縮しない状態で)以下、URLが50,000件以下制限がありますので、それを超えないように1ファイルを作成します。超える場合は、分割して複数ファイルを作成しましょう。

ファイルはUTF-8エンコードで作成します。ファイルの拡張子は.xmlです。ファイル名は自由に指定して問題ありません。(sitemap_static1.xmlとか自由でOK)

基本的なXMLの書き方

Googleは標準のサイトマッププロトコルをサポートしているということですので、sitemaps.orgの仕様が適用できます。
sitemaps.orgの公式ページはこちら

基本の記述ルールは次のとおりです。

  • <urlset>タグで始め、</urlset>タグで閉じます。
  • <urlset>タグ内にネームスペース (プロトコル標準) を指定します。
  • 各 URL に <url>エントリをXML親タグとして含めます。
  • 各親タグ <url>に子エントリ <loc>を含めます。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
 <loc>http://www.example.com/foo.html</loc>
 </url>
 <url>
 <loc>http://www.example.com/foo2.html</loc>
 </url>
 <url>
 <loc>http://www.example.com/foo3.html</loc>
 </url>
</urlset>

上記が基本の最低限必須の形式です。緑字の箇所は、インデックスしたいURLを記述します。この数が1ファイル最大50,000件以下の制限ですので収めましょう。

オプションのタグ

上記以外にオプションのタグを設定することができます。

属性説明記載方法
<lastmod>ファイルの最終更新日W3C Datetime形式で記述します。

  • YYYY (eg 1997)
  • YYYY-MM (eg 1997-07)
  • YYYY-MM-DD (eg 1997-07-16)
  • YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
  • YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
  • YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)

必要な場合は、時刻の部分を省略してYYYY-MM-DDの形式で記述することもできます。

<changefreq>ページの更新頻度
  • always
  • hourly
  • daily
  • weekly
  • monthly
  • yearly
  • never

alwaysはアクセスするたびに更新されるページに、neverはアーカイブページのに指定。

<priority>サイト内の他のURLと比較したこのURLの優先度0.0(重要度低)から1.0(重要度高)までの値を指定。ページのデフォルトの優先度は0.5です。サイト内のすべてのURLに高い優先度1.0を設定すると効果がなくなります。

オプションタグはあくまでも検索エンジンは参考情報、ヒントとして使用されます。
以下サンプルです。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
 <loc>http://www.example.com/foo.html</loc>
 <lastmod>2016-01-18</lastmod>
 <changefreq>daily</changefreq>
 <priority>1.0</priority>
 </url>
 <url>
 <loc>http://www.example.com/foo2.html</loc>
 <lastmod>2016-01-12</lastmod>
 <changefreq>weekly</changefreq>
 <priority>0.8</priority>
 </url>
 <url>
 <loc>http://www.example.com/foo3.html</loc>
 <lastmod>2016-01-01</lastmod>
 <changefreq>monthly</changefreq>
 <priority>0.5</priority>
 </url>
</urlset>

注意点:URLに特殊文字が含まれる場合はエスケープ処理する

サイトマップのURL内に「&」「’」「”」「>」「<」など特殊文字が含まれているとエラーになります。

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

エラーになる例:

<loc>http://xxxxx.com/xxxxx&xxxxxx.html</loc>

エラーにならない正しい書き方例:

<loc>http://xxxxx.com/xxxxx&amp;xxxxxx.html</loc>

URLはエスケープ処理して記述しましょう。

複数のサイトマップを管理する場合

50,000個以上のURLをリストする場合は、サイトマップを分割して複数のサイトマップファイルを作成する必要があります。

サイトマップが何十個、何百個と複数になった場合、サーチコンソールですべてのサイトマップを送信するのは、管理する上でも大変です。その場合、別途サイトマップインデックスファイルを作成することで管理を簡略化することができます。

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

サイトマップとは別に、サイトマップをまとめた、一覧化したインデックスファイルです。

サイトマップインデックスファイルだけを サーチコンソールでGoogleに送信すれば、個々のサイトマップを送信する必要はなくなるので便利です。

2つ3つのサイトマップであれば、サーチコンソールで送信するのも手間ではないので、自身のサイトの運用方法にあわせて作成してみるといいと思います。

サイトマップインデックスファイルの作成は以下のページにまとめています。
Google向けサイトマップインデックスファイルの作成方法(XML形式)