2026年7月29日更新:RFC 9309、Googleの現行robots.txt仕様とSearch Consoleレポート、Google-Extended、OpenAIのOAI-SearchBot・GPTBotを照合し、従来のSEOクローラーだけでなくAI検索・学習クローラーの制御も追加しました。
結論から言うと、robots.txtは「クローラーにURLを取得してよいか伝える公開ルール」です。検索結果からページを消す仕組みでも、管理画面や秘密ファイルを守る仕組みでもありません。目的を取り違えず、オリジンとURLごとに判定表を作ることが、最も安全な運用です。
robots.txtはクロール管理に使い、非表示・秘密保護は別の手段に分ける
不要な検索結果ページや重複URLのクロールを抑える用途には有効です。一方、検索結果から外すならnoindex、機密情報を守るなら認証・認可を使います。公開前後は、ファイルのHTTP応答と代表URLの許可・不許可を別々に検証します。
| robots.txtとは | 協力するクローラーへ、同じプロトコル・ホスト・ポート内のURLを取得してよいか伝える公開テキスト |
|---|---|
| 設置場所 | 各オリジンのルートにある小文字の /robots.txt |
| 中心となる記述 | User-agent、Allow、Disallow、補助的な Sitemap |
| SEO上の注意 | DisallowしてもURLが検索結果に残る場合がある。noindexを読ませるURLは遮断しない |
| Google固有の主な上限 | 500KiBまで解析、通常は最大24時間程度キャッシュ、少なくとも5回のリダイレクトを追跡 |
| 最終確認日 | 2026年7月29日 |
robots.txtとは?役割と限界を最初に理解する
検索エンジンは、ページを理解する前にURLを取得します。robots.txtはこの「取得」の入口を管理します。したがって、ページ本文のrobots metaタグやHTTPヘッダーに書かれたnoindexとは役割が異なります。
robots.txtを使う価値が高いのは、サイト内検索、絞り込み、セッション付きURL、無限に近いカレンダーURLなど、検索価値が低いURL空間が大量に生まれる場合です。ただし、robots.txtだけでURL設計の問題は解決しません。内部リンク、canonical、サイトマップ、パラメータ設計、サーバー性能も同時に見直します。
robots.txtは「お願い」であり、セキュリティ境界ではありません。
悪意あるクライアントや未対応クローラーを止めるには、認証、認可、WAF、ネットワーク制限、レート制御を使います。
クロール制御・検索非表示・機密保護を混同しない
設定前に、対象URLを「取得を減らしたい」「検索結果から外したい」「一般公開自体を止めたい」のどれかに分類します。ここを曖昧にしたままDisallowを書くと、noindexが読まれない、重要ページを遮断する、機密パスを公開するといった事故につながります。
| 目的 | 主な手段 | robots.txtの扱い | 確認ポイント |
|---|---|---|---|
| 不要URLのクロールを減らす | robots.txt、URL設計、内部リンク整理 | 適している | 重要ページやレンダリング資源を巻き込んでいないか |
| 検索結果からページを外す | robots metaのnoindex、X-Robots-Tag、削除・404/410 | 遮断しない | クローラーがnoindexを取得できるか |
| 管理画面・顧客データを守る | 認証、認可、MFA、ネットワーク制限 | 保護にならない | 匿名アクセスが本当に拒否されるか |
| 一時的な検索結果の緊急非表示 | 公開停止・noindex・Search Console削除ツール等 | 単独では不十分 | 恒久対策と再クロールの条件 |
noindexを読ませるURLはクロール可能にする
HTMLならrobots meta、PDFなどならX-Robots-Tagを返し、その指示を取得できる状態にします。反映には再クロールが必要です。
Disallowすれば秘密も検索結果も消える
robots.txtは公開されます。外部リンクからURLが見つかると、本文を取得せずURLだけ検索結果に表示される場合があります。
適用範囲はプロトコル・ホスト・ポートの組み合わせで決まる
robots.txtは、配置したオリジンのルートにある /robots.txt として取得されます。HTTPS用のファイルはHTTP、別サブドメイン、非標準ポートへ自動では継承されません。標準ポートは省略表記と同等ですが、非標準ポートは別管理です。
| robots.txtのURL | 適用される例 | 適用されない例 | 実務対応 |
|---|---|---|---|
| https://example.com/robots.txt | https://example.com/page | http://example.com/ https://www.example.com/ | HTTPとwwwを公開するなら、それぞれも確認 |
| https://shop.example.com/robots.txt | https://shop.example.com/cart | https://example.com/ https://cdn.example.com/ | サブドメインごとに所有者と規則を管理 |
| https://example.com:8181/robots.txt | https://example.com:8181/admin/ | https://example.com/(443) | 外部公開の必要性から見直す |
| https://example.com/help/robots.txt | 有効な配置ではない | サイト全体 | ルートの /robots.txt へ移す |
大文字小文字、末尾スラッシュ、エンコード、クエリ文字列を実URLで確認してください。/File/ と /file/ は別パスです。URLフラグメントの #section はサーバーへ送られないため、robots.txtでは区別できません。
User-agentのグループと最も具体的なパス規則を判定する
標準の中心は User-agent、Allow、Disallow です。Sitemap は主要検索エンジンが対応する追加レコードです。フィールド名は大文字小文字を区別しませんが、パス値は区別します。
User-agent
対象クローラーの製品トークンを指定します。* は、より具体的に一致するグループがないクローラー向けです。
Disallow
一致するURLの取得を許可しない規則です。値が空なら制限なし、/ ならサイト全体へ一致します。
Allow
広いDisallowの内側で、より具体的なURLを許可します。単純に後に書いた行が勝つわけではありません。
Sitemap
サイトマップの完全URLを記載します。User-agentグループの許可・不許可ルールではありません。
ワイルドカード
Googleでは * が0文字以上、$ がURL末尾を表します。他クローラーでは公式仕様を確認します。
コメント
# 以降は無視されます。理由や変更票番号は書けますが、機密情報や内部構成は書きません。
User-agent: *
Disallow: /search/
Allow: /search/help/
Sitemap: https://example.com/sitemap.xml判定は「対象グループ」→「最長一致」の順で行う
Disallow: /catalog/ と Allow: /catalog/help/ がある場合、/catalog/item/1 は不許可、/catalog/help/size はより具体的なAllowにより許可されます。robots.txtの安全な書き方と設定例
設定例はそのままコピーせず、対象オリジン、実在URL、検索価値、noindex、レンダリング資源との整合を確認してください。規則は少ないほどレビューしやすく、事故時の復旧も速くなります。
すべてのクローラーを許可し、サイトマップを案内する
特に遮断するURLがない小規模サイト向け。空のDisallowでも制限なしを表せますが、Allow: / のほうが意図を読みやすくできます。
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xmlサイト内検索を遮断し、ヘルプだけ許可する
検索結果URLを大量生成するサイトの例。ヘルプページが同じディレクトリにある場合、より具体的なAllowで例外を作ります。
User-agent: *
Disallow: /search/
Allow: /search/help/
Sitemap: https://example.com/sitemap.xml特定のクエリパターンだけを制限する
Google向けの例。並び替えや追跡パラメータが無限に近いURLを生む場合に使えますが、必要なランディングページを巻き込まないよう代表URLで検証します。
User-agent: Googlebot
Disallow: /*?sort=
Disallow: /*&sort=
Disallow: /*?session=Disallow: / は停止条件です。 ステージング用ファイル、環境変数、CDNキャッシュ、デプロイ先の取り違えを自動検知し、重要URLが全体遮断されたら公開を中断してください。2026年はAI検索・学習クローラーを目的別に分けて管理する
AI関連のUser-agentは一枚岩ではありません。検索結果へサイトを表示するためのクローラー、基盤モデルの学習に使うクローラー、ユーザー操作でページを取得するエージェントは、目的もrobots.txtへの扱いも異なります。
| User-agent | 主な目的 | 制御した場合の意味 | 注意点 |
|---|---|---|---|
| Google-Extended | Geminiモデルの学習、Gemini・Vertex AIのグラウンディング利用 | Googleがクロールした自サイトコンテンツをこれらの用途へ使うか管理 | Google検索への登録やランキングシグナルには影響しないとGoogleが説明 |
| OAI-SearchBot | ChatGPTの検索機能でウェブサイトを表示 | 許可するとChatGPT検索結果へ掲載される可能性を維持 | GPTBotとは独立。更新反映には時間がかかる場合がある |
| GPTBot | 生成AI基盤モデルの学習に使われ得るコンテンツのクロール | Disallowで学習利用を望まない意思を示す | OAI-SearchBotを許可し、GPTBotだけ遮断する設定が可能 |
| ChatGPT-User | ユーザーがChatGPTやCustom GPTからページ取得を依頼 | 自動クロールの検索掲載制御には使わない | ユーザー起点のためrobots.txtが適用されない場合がある |
# ChatGPT検索での掲載機会を維持
User-agent: OAI-SearchBot
Allow: /
# OpenAIの基盤モデル学習には使わせない意思を示す
User-agent: GPTBot
Disallow: /
# Google検索には影響させず、Gemini関連用途を制御
User-agent: Google-Extended
Disallow: /robots.txtとnoindexの違いをSEO目的で使い分ける
robots.txtは「取得してよいか」、noindexは「検索インデックスへ残してよいか」を伝えます。noindexはページ本文またはレスポンスヘッダーにあるため、クローラーがURLへアクセスできなければ読み取れません。
| 比較項目 | robots.txt | noindex / X-Robots-Tag | 認証・認可 |
|---|---|---|---|
| 主な目的 | クロール範囲の管理 | 検索結果から除外 | コンテンツへのアクセス制御 |
| 置く場所 | オリジンの /robots.txt | HTML metaまたはHTTPヘッダー | アプリ・サーバー・ID基盤 |
| クローラーの取得 | 対象URLを取得させない | 指示を読むため取得が必要 | 権限がなければ取得不可 |
| 秘密を守れるか | いいえ | いいえ | はい。正しく実装した場合 |
| URLが検索結果に残る可能性 | ある | 再クロール後に除外 | 公開状況と既存インデックスに応じて別途対応 |
すでに検索結果にあるURLを外す手順
- robots.txtの遮断を外す
クローラーがページまたはレスポンスヘッダーを取得できるようにします。
- noindexまたはX-Robots-Tagを返す
HTML、PDF、画像など対象形式に合う方法を選びます。
- URL検査とログで再クロールを確認する
公開中のレスポンスとGoogleが取得した状態が一致しているか確認します。
- 恒久状態を決める
公開を続けるならnoindexを維持し、不要なら削除・404/410、秘密なら認証へ移します。
危険な設定は公開前の停止条件として扱う
構文が正しくても、対象URLや目的が誤っていればSEO障害になります。次の項目は差分レビューと自動テストで検知します。
本番のDisallow: /
サイト全体を遮断します。ステージング設定やCDNキャッシュの混入を最優先で検知します。
noindex対象も遮断
ページ内のnoindexやX-Robots-Tagを取得できず、検索結果から外す処理を妨げます。
機密パスを列挙
/backup/ や管理用URLの存在を公開します。アクセス制御は認証・認可で行います。
CSS・JS・画像を一括遮断
レンダリングやページ理解に必要な資源まで止めると、検索エンジンが内容を正しく評価できません。
401・403をブロック代わりにする
Googleは429以外の4xxを「有効なrobots.txtがない」とみなし、クロール制限なしとして扱います。
長い転送・HTML応答
ログイン画面、WAFページ、404 HTML、言語転送が返っていないか、本文とContent-Typeを確認します。
巨大なファイル
Googleは500KiB以降を無視します。URL設計を整理し、少数の規則へ統合します。
Crawl-delayに依存
Googleはcrawl-delayをサポートしません。負荷原因をログ、URL空間、性能、エラーから切り分けます。
推測したクローラー名
似たUser-agent文字列をまとめて遮断せず、公式の製品トークンとIP確認方法を使います。
HTTP応答・キャッシュ・ファイル形式もルールと同じ重要度で監視する
同じ本文でも、状態コード、Content-Type、文字コード、リダイレクト、キャッシュで解釈が変わります。Google固有の挙動とRFC 9309の基準を分けて記録してください。
| 応答 | Googleの主な扱い | 運用確認 |
|---|---|---|
| 2xx | 取得したルールを解析 | 200、UTF-8、プレーンテキスト、本文、Cache-Controlを確認 |
| 3xx | 少なくとも5回のリダイレクトを追跡し、その後は404相当 | 可能なら直接200。転送先も同じ目的の /robots.txt にする |
| 4xx(429以外) | 有効なrobots.txtが存在しないものとして、クロール制限なし | 401・403でクロールを止めようとしない。未設置と配信事故を区別 |
| 429 | 通常の4xxとは別扱い。レート制限・可用性の問題として確認 | 過剰な制限、WAF、CDN、オリジン負荷、再試行状況を確認 |
| 5xx・通信障害 | 最初の12時間はクロール停止。以後は最大30日ほど直近正常版を利用しながら再取得 | 直近正常版、復旧時間、DNS、TLS、タイムアウト、サーバーログを監視 |
変更前にURL判定表を作り、最小規則を配信する
robots.txtを直接書き始める前に、対象URL、対象クローラー、期待結果、代替制御、確認方法を表にします。重要URLとレンダリング資源は「必ず許可されるテストケース」として固定します。
- 対象オリジンを列挙する
HTTP・HTTPS、www、サブドメイン、CDN、画像ホスト、非標準ポートを一覧化し、各 /robots.txt の所有者を決めます。
- 代表URLを許可・不許可・別制御へ分類する
トップ、重要下層、検索・絞り込み、管理画面、API、CSS・JS、画像、PDF、サイトマップ、存在しないURLを含めます。
- 目的に合う仕組みを選ぶ
クロール管理はrobots.txt、検索非表示はnoindex、秘密保護は認証へ分離します。
- 最小のグループと規則を書く
重複グループや広すぎるワイルドカードを避け、必要なDisallowと例外Allowだけにします。
- ローカルとステージングでURL判定を自動化する
User-agent、末尾スラッシュ、大文字小文字、クエリ、エンコードを含むテストを実行します。
- 正規配信層とキャッシュを固定する
アプリ、Webサーバー、CDNのどこが正規ファイルを持つか決め、環境別ファイルの混入を防ぎます。
- 前版・停止条件・担当者を用意して公開する
全体遮断、重要URL遮断、HTML応答、5xxを検知したら前版へ戻せる状態にします。
ファイル取得とURL判定を別々に検証する
/robots.txt がブラウザで開けるだけでは、対象クローラーとURLの判定が正しいとは限りません。HTTP応答、構文、URL判定、Search Console、ログを段階的に確認します。
まずcurlで配信状態を確認する
curl -i https://example.com/robots.txtcurl -IL --max-redirs 5 https://example.com/robots.txtcurl -sS https://example.com/robots.txt | wc -ccurl -sSI https://example.com/robots.txt | grep -i content-type次にUser-agentと代表URLを判定する
- トップページ、重要カテゴリ、記事、商品、CSS・JS・画像が許可される
- 検索・絞り込み・重複URLなど、意図したURLだけが不許可になる
- 大文字小文字、末尾スラッシュ、クエリ、エンコード違いを含む
- Googlebot、画像・動画クローラー、AI関連User-agentを目的別に確認する
- noindex対象、サイトマップ、canonical、内部リンクと矛盾しない
Search Consoleの現行robots.txtレポートで取得版を確認する
robots.txtレポートでは、Googleが検出した主要ホストのファイル、前回取得日時、サイズ、警告・エラー、過去30日間の取得版を確認できます。重要な修正後は再クロールをリクエストできますが、URL自体がすぐ再クロールされる保証はありません。
公開済みファイルの取得状態
最新取得版、問題行、過去の版、再クロール要求を確認します。特定URLのブロック判定にはURL検査ツールを使います。
Googleの公開robots.txtライブラリ
大量URLの自動テストや変更差分の回帰検査には、Google検索でも使われるオープンソース実装を利用できます。
公開と復旧はファイル・キャッシュ・検索制御を一緒に管理する
robots.txtだけ戻しても、CDNキャッシュ、同時に変更したnoindex、X-Robots-Tag、canonical、サイトマップ、内部リンクが残る場合があります。変更票には関連制御と復旧順をまとめます。
公開前の正常版を保存する
本文、応答ヘッダー、ハッシュ、取得時刻、URL判定表、Search Consoleの取得版を保存します。
停止条件を監視する
重要URLの不許可、全体遮断、4xx・5xx、HTML応答、想定外ホストへの転送を検知します。
正規配信層で前版へ戻す
別レイヤーへ応急規則を重ねず、正規ファイルを復元し、対象CDNキャッシュだけを無効化します。
競合するSEO制御も復元する
noindex、X-Robots-Tag、canonical、サイトマップ、内部リンクを承認済みの同じ版へ戻します。
再取得とURL判定を確認する
curl、URL判定表、Search Console、サーバーログで復旧を確認し、原因と再発防止を記録します。
robots.txt変更の完了チェックリスト
目的と範囲
- ✓クロール管理・noindex・機密保護を区別した
- ✓プロトコル、ホスト、サブドメイン、ポートを列挙した
- ✓対象クローラーの公式製品トークンを確認した
- ✓代表URLの期待結果を表にした
規則
- ✓User-agentグループと最長一致を確認した
- ✓大文字小文字、末尾、クエリ、エンコードを検証した
- ✓CSS・JS・画像・PDF・サイトマップを確認した
- ✓全体遮断、機密パス、未対応拡張がない
配信と検証
- ✓/robots.txt が200・UTF-8で取得できる
- ✓リダイレクト、WAF、認証、CDN差分がない
- ✓Search Console取得版とログを確認した
- ✓重要URLの回帰テストをCIに追加した
公開と復旧
- ✓現行版、変更版、ハッシュ、公開時刻を保存した
- ✓停止条件、担当、連絡先を決めた
- ✓前版復元と限定キャッシュ無効化を試した
- ✓noindex・canonical・サイトマップとの整合を確認した
robots.txtでよくある質問
robots.txtでDisallowすれば検索結果から消えますか?
消えるとは限りません。外部リンクなどからURLが発見されると、本文を取得しないままURLだけが検索結果に表示される場合があります。検索結果から外すには、クローラーが取得できる状態でnoindexまたはX-Robots-Tagを返します。
管理画面をDisallowすれば安全ですか?
安全にはなりません。robots.txtは公開ファイルであり、従わないクライアントもいます。管理画面や機密データは、認証・認可・多要素認証・ネットワーク制限・監査ログで保護します。
AllowはDisallowより後に書けば優先されますか?
行の順番だけでは決まりません。対象User-agentのグループを選んだ後、URLに一致するパスが最も長いルールを使います。同じ長さでAllowとDisallowが競合する場合はAllowが選ばれます。
Disallowの値を空にするとどうなりますか?
そのルールはクロールを制限しません。サイト全体を止める指定はDisallow: / です。空欄とスラッシュ1文字は意味が正反対なので、公開前に必ず差分を確認してください。
Crawl-delayでGooglebotを遅くできますか?
Googleはrobots.txtのcrawl-delayをサポートしていません。負荷対策は、URL空間の整理、キャッシュ、サーバー性能、エラー修正、正規のクロール設定、必要に応じたレート制御を組み合わせます。
AIクローラーだけを個別に制御できますか?
対応する事業者が公開しているUser-agentトークンを使えば個別制御できます。Google-Extended、OAI-SearchBot、GPTBotは目的が異なるため、検索表示と学習利用を同じ設定にせず、各社の最新資料を確認します。
Search Consoleの古いrobots.txtテスターはどこですか?
現在はrobots.txtレポートで取得済みファイル、警告・エラー、過去の版を確認し、特定URLのブロック判定にはURL検査ツールを使います。開発時の自動検査にはGoogleの公開robots.txtライブラリも利用できます。
robots.txtの最大サイズはありますか?
Googleは500KiBを上限としており、それを超えた部分を無視します。巨大なルール一覧を増やすより、URL設計やディレクトリ構成を整理し、少ない規則で管理できる状態を目指します。
更新時に確認した一次資料・標準資料
確認日:2026年7月29日。標準仕様、Google固有の実装、Search Console、AIクローラーの説明を分けて参照しています。