robots.txt 完全構文ガイド:
Disallow・Allow・Crawl-delay・ワイルドカード徹底解説

robots.txtはシンプルなテキストファイルですが、構文の細かい仕様を正しく理解していないと、意図しないページのクロールを許可したり、逆に重要なページのクロールを遮断したりする設定ミスが発生します。本章では、すべてのディレクティブの仕様を実例つきで解説し、現場でよく見る設定ミスとその修正方法まで網羅します。

1. robots.txt の基本構造

ファイルの配置と取得方法

robots.txt は必ずサイトのルートドメインに /robots.txt として配置します。サブディレクトリには配置できません。Googlebotは https://example.com/robots.txt を自動的にチェックします。

また、複数のドメインを運営している場合、それぞれのドメインに個別の robots.txt が必要です(https://shop.example.com/robots.txthttps://example.com/robots.txt とは別)。

robots.txt の基本構文と「グループ」の概念

robots.txt は「グループ」と呼ばれる単位で設定を記述します。各グループは1つ以上の User-agent ディレクティブで始まり、続く Disallow / Allow ルールがそのエージェントに適用されます。

/robots.txt の基本構造Text
# ===================================
# robots.txt の基本構造
# ===================================

# グループ1:すべてのクローラーに適用
User-agent: *
Disallow: /admin/
Disallow: /private/
Allow: /admin/public-page/

# グループ2:Googlebotに個別設定
User-agent: Googlebot
Allow: /important-assets/

# グループ3:画像クローラーに個別設定
User-agent: Googlebot-Image
Disallow: /no-image-crawl/

# サイトマップの場所を通知
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-images.xml

2. 各ディレクティブの完全解説

① User-agent:適用対象のクローラーを指定

User-agent ディレクティブは、続くルールを適用するクローラーを指定します。

記述方法意味
User-agent: *すべてのクローラーに適用(ワイルドカード)
User-agent: GooglebotGooglebotのみに適用
User-agent: OAI-SearchBotOpenAIの検索用クローラーのみに適用
User-agent: Googlebot
User-agent: bingbot
GooglebotとBingbotの両方に適用

特定エージェントのルールは * より優先される
User-agent: * でDisallowにしたパスでも、User-agent: Googlebot で別の設定があればGooglebotにはそちらが適用されます。特定エージェントの設定は常にワイルドカード設定より優先されます。

② Disallow:クロールを禁止するパスの指定

Disallow ディレクティブは、クローラーにアクセスを禁止するパスを指定します。

Disallow の記述パターンrobots.txt
# ディレクトリ全体をブロック(末尾スラッシュは重要)
Disallow: /admin/

# 特定ファイルをブロック
Disallow: /private.html

# ルート直下のすべてをブロック(サイト全体をブロック)
Disallow: /

# 何もブロックしない(すべて許可)= 空の Disallow
Disallow:

# クエリパラメータを含むURLをブロック
Disallow: /search?

# 特定拡張子のファイルをブロック
Disallow: /*.pdf$

③ Allow:Disallow の例外を設定する

Allow ディレクティブは、Disallow で指定したパスの中の特定のURLへのアクセスを許可します。より具体的なパスのルールが優先されます

Allow と Disallow の組み合わせrobots.txt
User-agent: Googlebot

# /private/ 以下をすべてブロック
Disallow: /private/

# ただし /private/press-release/ だけは許可
Allow: /private/press-release/

# ===================================
# ルール競合時の優先順位
# ===================================
# より長い(具体的な)パスが優先される

Disallow: /    # サイト全体をブロック
Allow: /public/ # /public/ は許可
# → /public/ 以下は許可される(Allow の方が具体的)

④ Crawl-delay:クロール間隔の制御

Crawl-delay は、クローラーがページを取得する間隔(秒数)を指定します。サーバーへの負荷が高い場合に使われることがありますが、Googlebotは Crawl-delay をサポートしていません。Google向けには不要URLの削減、サーバー応答改善、必要に応じた 503 / 429 の一時返却などで対処します。

Crawl-delay の設定robots.txt
# Bing系など一部クローラーでは Crawl-delay が解釈されることがある
User-agent: bingbot
Crawl-delay: 2

# Googlebotは Crawl-delay を処理しない
User-agent: Googlebot
Crawl-delay: 1  # Google向けには効果なし

⑤ Sitemap:サイトマップの場所を通知

Sitemap ディレクティブは、sitemap.xml の URL をクローラーに通知します。どの User-agent グループにも関係なく、ファイルのどこに記述しても有効です。複数のサイトマップがある場合は複数行記述できます。

Sitemap ディレクティブの記述robots.txt
User-agent: *
Disallow: /admin/

# サイトマップの場所(絶対URLで記述)
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-news.xml
Sitemap: https://example.com/sitemap-images.xml

3. ワイルドカードの正しい使い方

* と $ の意味と使い分け

robots.txt では2種類のワイルドカードが使用できます:

*(任意の文字列)

0文字以上の任意の文字にマッチします。
例:Disallow: /images/*.jpg
/images/photo.jpg/images/sub/photo.jpg にマッチ

$(URLの末尾)

URLの末尾を指定します。
例:Disallow: /*.pdf$
/doc.pdf にはマッチするが
/doc.pdf?page=1 にはマッチしない

ワイルドカードの実践的な使用例robots.txt
User-agent: *

# クエリパラメータを含むURLをすべてブロック
# (ECサイトのフィルター・ソートURL対策)
Disallow: /*?*

# 特定の拡張子ファイルをブロック
Disallow: /*.pdf$
Disallow: /*.zip$
Disallow: /*.xlsx$

# /tmp/ または /temp/ 以下をブロック
Disallow: /tmp/
Disallow: /temp/

# 特定パターンのURLをブロック(セッションID付きURL)
Disallow: /*?session=*
Disallow: /*&session=*

# 開発・ステージング環境のパスをブロック
Disallow: /staging/
Disallow: /dev/
Disallow: /api/            # APIエンドポイント

4. よくある設定ミスと修正方法

ミス① Disallow のパスに末尾スラッシュを忘れる

❌ 誤った設定

Disallow: /admin

robots.txt のパス一致は「先頭一致」です。そのため /admin と書くと、/admin/ だけでなく /administrator/admin-panel にも一致してしまいます。

✅ 正しい設定

Disallow: /admin/

末尾スラッシュをつけることで「/admin/ ディレクトリ以下のみ」という意図が明確になります。

ミス② サイト全体を誤ってブロックしてしまう

❌ 危険な設定(サイト全体ブロック)

User-agent: *
Disallow: /

開発中に一時的に設定した後、本番環境にそのままデプロイしてしまうケースが多発します。これは全ページのインデックスを停止させます。

ミス③ robots.txt が原因でCSSやJavaScriptがブロックされる

過去の慣習として /css//js/ を Disallow にするケースがありましたが、現在の Google は CSS・JavaScript をレンダリングしてからインデックスします。これらをブロックすると、ページが正しくレンダリングされず、インデックス品質が低下します

絶対にブロックしてはいけないパス
/css//js//assets/(スタイルシート・スクリプト)、/_next/static/ などのレンダリング必須リソース——これらをブロックするとGooglebotがページを正しく描画できず、評価や理解に悪影響が出ます。

5. Next.js での robots.txt 実装方法

app/robots.ts を使った動的生成

Next.js の App Router では、app/robots.ts ファイルを作成することで robots.txt を動的に生成できます。

app/robots.ts の実装TypeScript / Next.js
// app/robots.ts
import { MetadataRoute } from 'next';

export default function robots(): MetadataRoute.Robots {
  const baseUrl = process.env.NEXT_PUBLIC_SITE_URL
    || 'https://example.com';

  return {
    rules: [
      // すべてのクローラーに適用するデフォルトルール
      {
        userAgent: '*',
        allow: '/',
        disallow: [
          '/admin/',
          '/api/',
          '/private/',
          '/tmp/',
        ],
      },
      // OpenAI 学習用クローラーへの個別設定
      {
        userAgent: 'GPTBot',
        allow: '/',  // AI学習を許可する場合
        // disallow: ['/'],  // 禁止する場合はこちら
      },
      // OpenAI 検索用クローラーへの個別設定
      {
        userAgent: 'OAI-SearchBot',
        allow: '/',
      },
    ],
    // サイトマップの場所を明示
    sitemap: `${baseUrl}/sitemap.xml`,
  };
}

6. robots.txt 設定のチェックリスト

Disallow: / が本番環境に残っていないか確認デプロイ前に必ず確認。全ページブロックは最悪の設定ミスです。
CSS・JS・画像ファイルがブロックされていない実URLの取得結果と Search Console の URL 検査、サーバーログで確認します。旧 robots.txt テスター前提で進めないのが安全です。
Sitemap ディレクティブでサイトマップのURLが指定されている絶対URLで記述し、実際にアクセスできるURLであることを確認します。
noindex が必要なページが Disallow ではなく meta robots で設定されているDisallow + noindex の二重指定はGooglebotがnoindexシグナルを読み取れないため、noindexだけで十分です。
AIクローラーへの方針が明示されているOAI-SearchBot・GPTBot・PerplexityBotなどを許可するか制限するかを明示的に設定します(第4章で詳述)。AIクローラーを許可する場合でも、まずはHTML本体・内部リンク・sitemap.xmlを整えるのが先です。llms.txt は補助的に使います。

robots.txt の設定ミスを
自動で検出しましょう

AIOGeoScanは robots.txt の構文エラー・意図しないDisallow・sitemap.xmlとの矛盾・AIクローラーへの対応漏れを一括診断します。

今すぐ自社サイトを無料診断する
Editorial Trust Signals

このナレッジベースの編集方針

`AIOGeoScan Knowledge` は、Bennu Inc. が運営する AI検索・構造化データ・クローラー制御に関する実務ナレッジです。 Google Search Central、Schema.org、OpenAI などの一次情報を優先し、観測ベースの実務知見は本文中で区別して扱います。

運営主体
Bennu Inc. / AIOGeoScan
更新方針
仕様変更や検索機能の更新にあわせて都度改訂
優先ソース
公式ドキュメント・標準仕様・公式ヘルプ
補助ソース
実装観測・運用知見・再現性のある検証結果

あなたのサイト、AIに正しく伝わっていますか?

解説を読み終えたら、実際にあなたのサイトを診断してみましょう。
100項目以上の診断で、AI時代の構造課題を可視化します。

無料で診断を開始する