XMLサイトマップ
“XML”とは?
“XML(Extensible Markup Language)”はテキストの構造をコンピューターが理解できるようにするための“マークアップ言語”です。ウェブページの構造を記述するためのHTMLも“マークアップ言語”で“タグ”によって構造を示しますが、“XML”も同じようにテキストの構造を示します。
このように“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サイトマップのファイル形式
ファイル形式は“.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サイトマップに記載したいウェブページの数だけ繰り返し記述します。
XMLサイトマップファイルに記述できるURLの数にはウェブサーバーに負荷がかかりすぎないようにするために制限があり、その数は50000個までです。また、XMLサイトマップ自体のファイルサイズは50MB以下である必要があります。この制限内に収まらない場合や、将来的に収まらなくなると予想される場合は後述する“サイトマップインデックス”を使用してサイトマップを分割します。
XMLサイトマップで提示するURLはそのXMLサイトマップと同じホストにある必要があります。つまりXMLサイトマップとは異なるドメインにあるウェブページは記載できません。また、異なるサブドメインにあるウェブページも記載できません。URLを記述する順番は特に意味を持たず、検索エンジンがどのようにそのURLを使用するかにも影響しません。
記載したいウェブページのURLを示す“<loc>~</loc>”のみが必須で他の要素は省略することができます。
URLに以下の記号が含まれる場合はエスケープコードと置き換える必要があります。
記号 | エスケープコード |
---|---|
“&(アンパサンド)” | & |
“'(一重引用符)” | ' |
“"(二重引用符)” | " |
“<(不等記号)” | < |
“>(不等記号)” | > |
“<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”で保存します。
サイトマップインデックスのひな形
要素とデータ値
要素 | データ値 | ||
---|---|---|---|
要素 | 説明 | データ値 | 説明 |
省略不可 | |||
<sitemapindex> | ファイル内のすべてのサイトマップに関する情報 | ||
<sitemap> | サイトマップの情報 | ||
<loc> | サイトマップのURL | URL | “http://”や“https://”から始まる絶対URL |
省略可能 | |||
<lastmod> | サイトマップファイルの更新日時 | 日時 | 機械可読な形式の日時(時刻は省略可) |
サイトマップインデックスの書き方
XMLサイトマップのURLを示すのは“<sitemap>~</sitemap>”で、これをXMLサイトマップに記載したいXMLサイトマップの数だけ繰り返し記述します。
XMLサイトマップと同様に記述できるURLの数は50000個までで、ファイルサイズは50MB以下である必要があります。
サイトマップインデックスで提示する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”を記述する
XMLサイトマップの場所を示す
XMLサイトマップまたはサイトマップインデックスファイルの場所は“Sitemap: ”に続けて絶対パスで記述します。
クロールを制限する
最初の例で、最初の2行は「すべてのファイルへ検索クローラーがアクセスすることを許可する」という記述です。この記述を書き換えることで必要に応じて検索クローラーがアクセスできるファイルに制限を加えることもできます。
この記述を書き換えることで必要に応じて検索クローラーがアクセスできるファイルに制限を加えることができます。
“User-Agent:”に続けて対象とするクローラーを指定します。この記述はすべてのクローラーが対象であると指定します。
特定のクローラーのみを対象とすることもでき、複数行記述すると複数のクローラーを対象することができます。
上の例ではGoogleの検索クローラーとGoogleの画像検索クローラーのみ対象とすることを指定します。
そのあと“User-Agent:”で指定したクローラーがクロールすることを“Disallow:”で禁止、もしくは“Allow:”で許可するディレクトリやファイルを指定します。
以上の例ではすべてのクローラーに“img/”ディレクトリのクロールを禁止しています、例外としてGoogleの画像検索クローラーにのみこのディレクトリのクロールを許可しています。