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 作成手順

  1. 既存サイトをバックアップ
  2. テスト環境で書く
  3. Search Console「robots.txt テスター」で検証
  4. 主要 URL でクロール可能性確認
  5. 本番反映後 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 問形式で確認できる。