検索エンジン最適化(SEO)における sitemap.xml の役割
sitemap.xml ファイルは、ウェブサイト内のクロール対象となるページURLを検索エンジンに伝えるための重要なXMLファイルです。検索エンジンのクローラーは、サイト内のリンクを巡回してページを発見しますが、新規に追加されたページや、他のページからのリンクが少ない孤立したページは発見が遅れることがあります。sitemap.xml を作成して検索エンジンに提示することで、サイト全体の構造を正確に伝え、効率的なインデックス登録を促すことができます。
サイトマップの構造とメタデータ
有効な sitemap.xml は、特定のXMLスキーマに準拠した構造を持っています。各URLエントリには、ページの場所を示すURLのほかに、クローラーの巡回をサポートする以下のメタデータを付与できます。
- 最終更新日(lastmod): ページが最後に更新された日付です。YYYY-MM-DD形式、または完全なISO形式の日時で記述します。
- 更新頻度(changefreq): ページの更新頻度の目安を指定します。選択肢には「常に(Always)」、「毎時(Hourly)」、「毎日(Daily)」、「毎週(Weekly)」、「毎月(Monthly)」、「毎年(Yearly)」、「なし(Never)」、または「含めない」があります。
- 優先度(Priority): サイト内における他のURLと比較した相対的な優先度を 0 から 1 の間の数値で指定します。
なお、検索エンジン(特にGoogle)は更新頻度(changefreq)と優先度(Priority)の情報を無視する傾向があるため、これらは主に他のクローラー向けのヒント情報として機能します。
多言語サイトにおける hreflang 属性の役割
多言語または多地域向けに展開されているウェブサイトでは、sitemap.xml 内で hreflang 属性を指定することが重要です。これにより、検索エンジンはユーザーの言語や地域に適したバージョンのページを検索結果に表示できるようになります。
hreflang をサイトマップで設定する場合、各言語・地域バージョンをそれぞれ個別のURLエントリとしてリストに登録する必要があります。そして、各エントリに対して、そのページ自身を含む同一の代替URL(alternate)のセットをすべて記述しなければなりません。必要に応じて、どの言語にも一致しないユーザー向けのフォールバックページとして x-default も指定します。
サイトマップ作成の制限事項とベストプラクティス
sitemap.xml の作成にあたっては、プロトコルで定められた以下の制限事項を遵守する必要があります。
- URL数とファイルサイズ: 1つのサイトマップファイルに含めることができるURLは最大50,000個まで、かつ圧縮前のファイルサイズは最大50MBまでです。これを超える大規模なウェブサイトの場合は、複数のサイトマップファイルに分割し、それらをサイトマップインデックスファイルにまとめて記述する必要があります。
- ホスト名の一致: サイトマップ内に記述するすべてのURLは、同一のホスト名(ドメイン)を使用している必要があります。
- URLの長さ: 各URLは2,048文字未満にする必要があります。
- エスケープ処理: URL内に
&などの特殊文字が含まれる場合は、XMLエンティティエスケープを適用し、例えば&のように出力する必要があります。
エラー検証とトラブルシューティング
XMLサイトマップジェネレーターは、入力されたデータが正しい仕様に準拠しているかを検証します。重大なエラー(ブロックエラー)が存在する場合、ツールは不完全なXMLファイルを生成しません。
検証時に発生する主なエラーメッセージと確認事項は以下の通りです。
- 既定値のエラー: 「既定の最終更新日が無効です。YYYY-MM-DD か完全な ISO 形式の日時を使用してください。」や「既定の優先度は 0 から 1 の間で指定してください。」が表示された場合、入力値のフォーマットを確認してください。
- URL形式のエラー: 「URL
{index}には、http:// または https:// で始まる完全なアドレスが必要です。」や「URL{index}は2,048文字未満にする必要があります。」が表示された場合、対象URLの記述を修正します。 - ホストの不一致: 「URL
{index}は、{host}と同じホスト名を使用する必要があります。」というエラーは、異なるドメインのURLが混在していることを示します。 - hreflangの整合性: 「URL
{index}の代替URLセットに、そのURL自身が含まれていません。」や「URL{index}の代替URLとして指定されている{url}が、個別URLエントリのリストに登録されていません。」というエラーが発生した場合は、代替URLのリストと個別エントリの整合性を確認してください。
プライバシーとデータ処理について
本ツールで処理されるすべてのURLおよびメタデータは、利用者のブラウザ内でのみ処理されます。入力されたデータが外部のサーバーやBroBroGoにアップロードされることはありません。
よくある質問(FAQ)
サイトマップにはどのフィールドを含めることができますか?
各エントリにはページのURLが含まれます。さらに、最終更新日、更新頻度の目安、相対的な優先度(Priority)を追加することもできます。ただし、Googleは更新頻度と優先度を無視するため、これらは他のクローラー向けのヒント情報となります。
hreflangの代替URLはどのように追加すればよいですか?
各言語または地域バージョンをそれぞれ個別のURLエントリとしてリストし、各バージョンに対して、そのページ自身を含む同一の代替URL(alternate)のセットを追加します。必要に応じて、フォールバックページとしてx-defaultも指定してください。
複数のサイトマップが必要になるのはどのような場合ですか?
1つのサイトマップには最大50,000個のURLを含めることができ、圧縮前のファイルサイズは最大50MBまでです。これを超える大規模なサイトの場合は、複数のサイトマップファイルに分割し、それらをサイトマップインデックスファイルにまとめて記述してください。