XMLサイトマップとrobots.txtの最適な設定方法
XMLサイトマップの役割と重要性
XMLサイトマップは、Webサイト内のページ一覧を検索エンジンに伝えるためのXMLファイルです。検索エンジンのクローラーはリンクをたどってページを発見しますが、すべてのページがリンクで適切に接続されているとは限りません。XMLサイトマップを提供することで、クローラーが見落とす可能性のあるページの発見を確実にし、効率的なクロールを促進します。
特に以下のようなサイトでは、XMLサイトマップの設置が強く推奨されます。大規模サイト(数千ページ以上)、新規サイト(外部リンクが少なくクローラーが発見しにくい)、動的に生成されるページが多いサイト、孤立したページが存在する可能性があるサイトです。
XMLサイトマップの作成方法
基本的な構造
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2026-03-01</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://example.com/blog/</loc>
<lastmod>2026-03-10</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
各要素の説明
- loc(必須):ページのURL。完全なURLを記述する
- lastmod(推奨):最終更新日。W3C Datetime形式(YYYY-MM-DD)で記述
- changefreq(任意):更新頻度のヒント。always, hourly, daily, weekly, monthly, yearly, neverから選択
- priority(任意):サイト内での相対的な優先度。0.0〜1.0の値で指定
注意点として、changefreqとpriorityはGoogleによってほとんど無視されることが公表されています。locとlastmodの正確な設定が最も重要です。
サイトマップインデックス
URLが50,000件を超える場合や、ファイルサイズが50MBを超える場合は、サイトマップを分割してサイトマップインデックスファイルで管理します。
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-posts.xml</loc>
<lastmod>2026-03-15</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-pages.xml</loc>
<lastmod>2026-03-10</lastmod>
</sitemap>
</sitemapindex>
robots.txtの役割と設定
robots.txtとは
robots.txt(ロボッツテキスト)は、検索エンジンのクローラーに対してクロールの許可・禁止を指示するテキストファイルです。サイトのルートディレクトリ(例:https://example.com/robots.txt)に配置します。
基本的な記法
# すべてのクローラーに対する設定
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /search?
Disallow: /tmp/
Disallow: /cart/
Disallow: /checkout/
# Googlebotに対する個別設定
User-agent: Googlebot
Allow: /
# サイトマップの場所を指定
Sitemap: https://example.com/sitemap.xml
robots.txtのディレクティブ
- User-agent:指示の対象となるクローラーを指定。「*」はすべてのクローラー
- Allow:クロールを許可するパス。Disallowの例外を指定する際に使用
- Disallow:クロールを禁止するパス。空の値はすべてを許可する意味
- Sitemap:サイトマップのURLを指定。User-agentセクションの外に記述
- Crawl-delay:クロール間隔の指定。Googlebotは対応していないが、Bingbotなどは対応
robots.txtの重要な注意点
- インデックス制御には使えない:robots.txtでブロックしたページも、外部リンクがあればインデックスされる可能性がある。インデックス制御にはnoindexメタタグを使用する
- CSSやJSをブロックしない:Googlebotはページをレンダリングして評価するため、CSSやJavaScriptファイルのクロールを許可する必要がある
- 設定ミスのリスク:誤った設定でサイト全体のクロールをブロックしてしまう事故が発生しうる。設定変更時は必ずテストする
- セキュリティ対策ではない:robots.txtはあくまでクロールの「お願い」であり、強制力はない。機密ページの保護には認証を使用する
Google Search Consoleでの確認
XMLサイトマップはGoogle Search Consoleの「サイトマップ」セクションから送信できます。送信後、エラーの有無やインデックスされたURL数を確認できます。robots.txtのテストにはGoogle Search Consoleの「robots.txtテスター」を使用し、意図したとおりに機能しているか検証しましょう。定期的にこれらの設定を見直し、サイトの成長に合わせて最適化を続けることが重要です。