Domain 157 / 225
robots.txt の応用は複数 User-Agent / ワイルドカード / 優先順位の理解が必要
robots.txt 応用 の要点
robots.txt の基本を超えた応用には、複数 User-Agent ブロックの順序、ワイルドカード(* / $)の正確な解釈、Allow と Disallow が競合した時の優先順位(より長いパスが勝つ)、Sitemap 複数指定が必要。誤った記述は意図せず全クロール拒否を招く
なぜこれを学ぶか
robots.txt の 1 行ミスでサイト全体クロール拒否になる事故は今でも起きる。 複雑なディレクトリ構造を持つサイトでは応用知識が必須。
中規模以上のサイト運営者で重要。
学ばないと起きること
| よくある事故 | 被害 |
|---|---|
| ワイルドカード誤記 | 意図せぬページがブロック |
| User-Agent ブロック順序ミス | Googlebot に意図しないルール適用 |
| Disallow / Allow の優先順位誤解 | 全クロール拒否 |
学ぶメリット
- 複雑な robots.txt を安全に書ける
- クロール制御の精密化
- 商談で「優先順位ルール」を即答
仕組み
複数 User-Agent ブロック
# 全ボット共通
User-agent: *
Disallow: /admin/
Disallow: /private/
# Googlebot のみ
User-agent: Googlebot
Allow: /admin/public/
Disallow: /admin/
# Bingbot のみ
User-agent: Bingbot
Disallow: /search/
特定の User-Agent ブロックがあれば、* ブロックはその UA に適用されない:
- Googlebot は「Googlebot」ブロックのみ参照
- 「*」は適用されない
ワイルドカード
| パターン | 意味 |
|---|---|
| * | 任意の文字列 |
| $ | URL の末尾 |
| ? | クエリパラメータ含む |
例:
Disallow: /*?utm_source= # utm_source パラメータ含む URL
Disallow: /*.pdf$ # .pdf で終わる URL
Disallow: /private/* # /private/ 以下全て
Allow と Disallow の優先順位
公式: より長い(具体的な)パスが勝つ。
User-agent: *
Disallow: /admin/
Allow: /admin/public/
/admin/public/file.html の場合:
- Disallow: /admin/ → 7 文字
- Allow: /admin/public/ → 14 文字
- 長い方(Allow)が勝つ → クロール可
キー概念
Sitemap ディレクティブ
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-news.xml
Sitemap: https://example.com/sitemap-image.xml
複数指定可能、絶対 URL 必須。 User-Agent ブロックとは独立してファイル全体に適用。
Crawl-delay の現状
公式: Googlebot は Crawl-delay を無視。 Bingbot / Yandex は対応。 Googlebot のクロール率制御は Search Console 経由(既に廃止)または 503 / 429。
コメント
# このセクションは Google 用
User-agent: Googlebot
Disallow: /
# 以降が行末までコメント。
サイズ制限
公式: 500KiB(約 500KB)まで。 これを超える部分は無視される。 通常は 100 行以内に収まる。
よくある誤解
| よくある誤解 | 実際のところ | 出典 |
|---|---|---|
| User-Agent: * は全 UA に適用 | 個別ブロックがある UA は除外 | robots.txt 仕様 |
| Allow が優先 | 長いパスが優先(Allow / Disallow 関係なし) | 同上 |
| Disallow でインデックス削除 | クロール拒否のみ、インデックス削除は noindex | 同上 |
実務での適用
安全な robots.txt 作成手順
- 既存サイトをバックアップ
- テスト環境で書く
- Search Console「robots.txt テスター」で検証
- 主要 URL でクロール可能性確認
- 本番反映後 24 時間 Search Console「クロールの統計」監視
設計パターン
EC サイト
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /search?
Disallow: /*?sort=
Disallow: /*?filter=
Allow: /
Sitemap: https://example.com/sitemap.xml
メディアサイト
User-agent: *
Disallow: /admin/
Disallow: /api/
Disallow: /tag/
Disallow: /author/
Allow: /
# AI クローラ制御
User-agent: GPTBot
Disallow: /
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-news.xml
トラブル別の対処
| 症状 | 確認すべきこと |
|---|---|
| 意図せず全クロール拒否 | 「Disallow: /」記述ミス |
| 特定パスのみ拒否したい | ワイルドカード + 末尾 $ |
公式ソース
自己テスト
Q1. Allow と Disallow が競合する時の優先順位は?
より長い(具体的な)パスが勝つ。Allow か Disallow かは関係ない
Q2. ワイルドカードの記号は?
*(任意の文字列)と $(URL の末尾)
Q3. Googlebot は Crawl-delay を見るか?
無視する。クロール率制御は 503 / 429 ステータスで
これらの内容を採点付きで挑戦したい場合は、本ドメインのプロ試験で 5 問形式で確認できる。