このウェブサイトはご利用の端末での閲覧に対応していません。
This website does not support your device.

【SEO対策】XMLサイトマップの書き方とrobots.txt

記事May 30th,2015
Sep. 5th,2018
SEO対策に重要な検索クローラーのクローラビリティを向上するためのウェブページの一覧、“XMLサイトマップ”の書き方。robots.txtについても。

XMLサイトマップ

“XML”とは?

XML(Extensible Markup Language)”はテキストの構造をコンピューターが理解できるようにするための“マークアップ言語”です。ウェブページの構造を記述するためのHTMLも“マークアップ言語”で“タグ”によって構造を示しますが、“XML”も同じようにテキストの構造を示します。

<members>
<member>
<id>0966</id>
<name>清原諾子</name>
<penname>清少納言</penname>
<department>内裏</department>
</member>
<member>
<id>0970</id>
<name>藤原香子</name>
<penname>紫式部</penname>
<department>内裏</department>
</member>
</members>

このように“XML”では“タグ”でデータを囲むことでそのデータの意味を示すことができ、例えば、そのデータを検索しやすくすることができます。HTMLとは違い、“タグ”は最初から定義されているものではなく必要に応じて自由に決めることができます。

“XML”もHTMLもどちらも“SGML”から派生した“マークアップ言語”ですが異なるのはHTMLがブラウザで人間が読むための構造を示すための“マークアップ言語”なのに対して、“XML”は主にコンピューターが理解するためのデータの構造を示すための“マークアップ言語”であるということです。

通常ワープロや表計算ソフトなどで作成されたデータはそのデータを作成したソフトウェアがないと使用することができ、ソフトウェアのバージョンが変わったり、そのソフトウェアを開発している会社がなくなってしったりするとデータが使えなくなってしまう可能性もあります。統一された記述ルールで異なるデバイスやプログラムでもデータを使用できるようにし、この問題を解決するために開発されたのが“SGML”が作られ、“SGML”は複雑で扱いづらいものだったため、“SGML”を改良して簡略化したのが“XML”です。

異なるデバイスやプログラムの間でデータをやり取りする時必要となる統一した記述方法のことを“データフォーマット”と呼び、“XML”は“データフォーマット”の一種です。

“XMLサイトマップ”とは?

XMLサイトマップ”は“XML”の形式でウェブサイト内に存在するページのURLや優先度、更新日、更新頻度などを検索クローラーに知らせるためのURLの一覧です。

検索エンジンの情報を収集する検索クローラーは通常ページ内に配置されているリンクを辿ってウェブサイト内をクロール(巡回)していきます。しかし、ウェブサイトの構造が複雑な場合や、規模が大きい場合、リンクがあまりされていないページがある場合はうまくクロールできず、一部のページがクロールされない場合があります。クロールされないとそのウェブページは検索エンジンに認識されず、検索エンジンにインデックス(登録)されることもありません。“XMLサイトマップ”で検索クローラーにページの一覧を示すことでこの一覧をもとに効率よくウェブサイト内をクロールしてもらうことができます。効率的にクロールしてもらうことができれば、ページが検索エンジンにインデックスされるまでの時間の短縮につながります。

Google、Bing、Yahoo!といった大手検索エンジンは“XMLサイトマップ”に対応しているため、“XMLサイトマップ”を使用すれば主要な検索エンジンにクロールしてほしいページのURLを伝えることができます。

XMLサイトマップは“メモ帳”などのテキストエディタでも簡単に作成することができます。

XMLサイトマップの記述方法

XMLサイトマップの書き方

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>2015-05-29</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>

<url>
<loc>http://www.example.com/page1.html</loc>
<lastmod>2015-05-04</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>

<url>
<loc>http://www.example.com/page2.html</loc>
<lastmod>2015-05-06</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>

</urlset>

XMLサイトマップのファイル形式

ファイル形式は“.xml”で文字エンコードは“UTF-8”で保存します。

要素とデータ値

要素 データ値
要素 説明 データ値 説明
省略不可
<urlset> 現在のプロトコル標準を指定
<url> URLエントリの親タグ
<loc> ページのURL URL “http://”や“https://”から始まる絶対URL
省略可能
<lastmod> 最終更新日時 日時 機械可読な形式の日時(時刻は省略可)
<changefreq> ページの更新頻度 always アクセスの度に更新
hourly 1時間ごとに更新
daily 1日ごとに更新
weekly 1週間ごとに更新
monthly 1か月ごとに更新
yearly 1年ごとに更新
never 更新されない
<priority> ページの相対的な重要度 数値 0.0、0.1、0.2、…1.0の11段階で数値が大きいほど重要度が高い(デフォルトは“0.5”)

XMLサイトマップの書き方

XMLサイトマップに記載するURLを示すのは“<url>~</url>”に囲まれる部分で、これをXMLサイトマップに記載したいウェブページの数だけ繰り返し記述します。

<url>
<loc>http://www.example.com/</loc>
<lastmod>2015-05-29</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>

XMLサイトマップファイルに記述できるURLの数にはウェブサーバーに負荷がかかりすぎないようにするために制限があり、その数は50000個までです。また、XMLサイトマップ自体のファイルサイズは50MB以下である必要があります。この制限内に収まらない場合や、将来的に収まらなくなると予想される場合は後述する“サイトマップインデックス”を使用してサイトマップを分割します。

XMLサイトマップで提示するURLはそのXMLサイトマップと同じホストにある必要があります。つまりXMLサイトマップとは異なるドメインにあるウェブページは記載できません。また、異なるサブドメインにあるウェブページも記載できません。URLを記述する順番は特に意味を持たず、検索エンジンがどのようにそのURLを使用するかにも影響しません。

記載したいウェブページのURLを示す“<loc>~</loc>”のみが必須で他の要素は省略することができます。

URLに以下の記号が含まれる場合はエスケープコードと置き換える必要があります。

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

<lastmod>~</lastmod>”、“<changefreq>~</changefreq>”、“<priority>~</priority>”は参考にはされますが、必ずしもクロールされる頻度や検索エンジンにどのように表示されるかには影響するとは限りません。

<priority>~</priority>”はウェブサイト内での相対的な重要度を示すものなのですべてのページを“1.0”に設定すると意味がなくなってしまいます。トップページは“1.0”、第2階層は“0.8”、第3階層は“0.5”などと差をつけるようにします。

XMLサイトマップを複数に分ける

“サイトマップインデックス”

URLの数が多い場合、“サイトマップインデックス”を作成することができます。“サイトマップインデックス”は言葉通り「XMLサイトマップのインデックス」で、複数のXMLサイトマップを一度に検索クローラーに提示するためのXMLサイトマップの一覧です。

サイトマップインデックスのファイル形式はXMLサイトマップと同様に“.xml”で文字エンコードは“UTF-8”で保存します。

サイトマップインデックスのひな形

<?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</loc>
<lastmod>2015-05-25</lastmod>
</sitemap>

<sitemap>
<loc>http://www.example.com/sitemap2.xml</loc>
<lastmod>2015-05-27</lastmod>
</sitemap>

<sitemap>
<loc>http://www.example.com/sitemap3.xml</loc>
<lastmod>2015-05-29</lastmod>
</sitemap>

</sitemapindex>

要素とデータ値

要素 データ値
要素 説明 データ値 説明
省略不可
<sitemapindex> ファイル内のすべてのサイトマップに関する情報
<sitemap> サイトマップの情報
<loc> サイトマップのURL URL “http://”や“https://”から始まる絶対URL
省略可能
<lastmod> サイトマップファイルの更新日時 日時 機械可読な形式の日時(時刻は省略可)

サイトマップインデックスの書き方

XMLサイトマップのURLを示すのは“<sitemap>~</sitemap>”で、これをXMLサイトマップに記載したいXMLサイトマップの数だけ繰り返し記述します。

XMLサイトマップと同様に記述できるURLの数は50000個までで、ファイルサイズは50MB以下である必要があります。

<sitemap>
<loc>http://www.example.com/sitemap3.xml</loc>
<lastmod>2015-05-29</lastmod>
</sitemap>

サイトマップインデックスで提示するURLはそのサイトマップインデックスと同じホストにある必要があります。つまりサイトマップインデックスとは異なるドメインにあるXMLサイトマップは記載できません。また、異なるサブドメインにあるXMLサイトマップも記載できません。

XMLサイトマップと同様に“&(アンパサンド)”などの記号はエスケープコードと置き換える必要があります。

<lastmod>~</lastmod>”は省略することが可能できます。

XMLサイトマップを送信する

XMLサイトマップが出来上がったらウェブサイトのサーバーにアップロードします。

ただ、アップロードしただけでは検索クローラーにXMLサイトマップを見つけてもらうことができません。後述する“robots.txt”にファイルの場所を記載して検索クローラーにXMLサイトマップを知らせる必要があります。

また、“Google Search Console”(旧名称:“Google Webmaster Tool”)や“Bing Webmaster Tool”などのサービスにウェブサイトを登録するとXMLサイトマップを直接検索エンジンに送信することができ、早く認識してもらうことができます。

robots.txt

“robots.txt”とは?

robots.txt”は検索クローラー(ロボット)にウェブサイトをどのようにクロールするべきか指示するためのファイルです。

検索エンジンに登録してほしくないディレクトリやファイル形式を指定するのに使用することができるほか、XMLサイトマップの場所を検索クローラーに知らせることができます。

以下は“robots.txt”のサンプルです。

User-Agent: *
Disallow:

Sitemap: http://www.example.com/sitemap.xml

“robots.txt”は“robots.txt”のファイル名で保存し、ウェブサイトのルートディレクトリ(一番上の階層)にアップロードしなければいけません。

“robots.txt”を記述する

XMLサイトマップの場所を示す

XMLサイトマップまたはサイトマップインデックスファイルの場所は“Sitemap: ”に続けて絶対パスで記述します。

Sitemap: http://www.example.com/sitemap.xml

クロールを制限する

最初の例で、最初の2行は「すべてのファイルへ検索クローラーがアクセスすることを許可する」という記述です。この記述を書き換えることで必要に応じて検索クローラーがアクセスできるファイルに制限を加えることもできます。

User-Agent: *
Disallow:

この記述を書き換えることで必要に応じて検索クローラーがアクセスできるファイルに制限を加えることができます。

“User-Agent:”に続けて対象とするクローラーを指定します。この記述はすべてのクローラーが対象であると指定します。

User-Agent: *

特定のクローラーのみを対象とすることもでき、複数行記述すると複数のクローラーを対象することができます。

User-Agent: Googlebot
User-Agent: Googlebot-Image

上の例ではGoogleの検索クローラーとGoogleの画像検索クローラーのみ対象とすることを指定します。

そのあと“User-Agent:”で指定したクローラーがクロールすることを“Disallow:”で禁止、もしくは“Allow:”で許可するディレクトリやファイルを指定します。

User-Agent:*
Disallow: /img/

User-Agent: Googlebot-Image
Allow: /img/

以上の例ではすべてのクローラーに“img/”ディレクトリのクロールを禁止しています、例外としてGoogleの画像検索クローラーにのみこのディレクトリのクロールを許可しています。

“robots.txt”を検証する

“robots.txt”が正しく記述できているかは“Google Search Console”内の“robots.txt テスター”で検証することができます。

一番上へ
トップにもどる
シェアする
シェアする
Facebookでシェアする
ツイート
Google+でシェア
Pocket
はてなブックマーク