「robots.txtを設定したらクロールされなくなった」「なんとなく書いてそのままにしている」——Web担当者の間で、こうした声をよく耳にします。
結論からお伝えすると、robots.txtは設定ミスをすると損をする施策です。正しく書けば何も起きないのに、間違えると大きく損をします。
この記事では、基本構文・用途別の記述例・よくある設定ミス4選・AIクローラー対応まで、実務目線で解説します。
robots.txtとは何か?クロール制御の役割と「インデックス制御」との違い
robots.txt(ロボッツ・テキスト)とは、Webサイトのルートに置くテキストファイルで、クローラーの巡回を制御するための指示書です。
Googleなどの検索エンジンは、このファイルを読み込んでから巡回するURLを決定します。
重要なのは、robots.txtが制御できるのは「クロール(巡回)」だけという点です。「インデックス(検索結果への掲載)」とは別の概念なので、両者を混同すると深刻なミスにつながります。
robots.txtでできること・できないこと
robots.txtで実現できることと、できないことを整理しておきましょう。
| 項目 | できる/できない |
|---|---|
| 特定のURLへのクロールを禁止する | できる |
| 特定のクローラーだけ許可・拒否する | できる |
| XMLサイトマップのURLをクローラーに伝える | できる |
| ページを検索結果から除外する | できない(noindexを使う) |
| ページの内容を非公開にする(アクセス制限) | できない |
| Disallowに書いたURLを第三者から隠す | できない(ファイルは公開される) |
noindex・canonicalとの役割の違い(3択の判断フロー)
「このページを検索結果に出したくない」「重複コンテンツを整理したい」というとき、robots.txt・noindex・canonicalの3択で迷うケースが多いです。Technogramの現場でも、noindexを効かせたいページをrobots.txtでブロックしてしまうのが最も多い混同パターンです。
以下のフローで判断してください。
目的別の使い分け
- クロールバジェットを節約したい・クローラーを特定ページに入れたくない → robots.txt(Disallow)
- 検索結果から除外したいが、ページ自体は存在させたい → noindex(metaタグまたはHTTPヘッダー)
- 重複コンテンツの正規URLをGoogleに伝えたい → canonical(rel=”canonical”)
※ noindexを使うページはrobots.txtでブロックしてはいけません。詳しくは後述の「よくあるミス4選」で解説します。
なお、インデックス制御の全体像については、「インデックス登録とは?原因からSearch Consoleでの対処まで解説
」もあわせてご覧ください。

どんなサイトがrobots.txtを設定すべきか?
robots.txtの優先度が高いのは、管理すべきURLが多いサイトや、クロールバジェットを意識する必要があるサイトです。
数十〜数百ページ程度の小規模サイトは、robots.txtより先にXMLサイトマップを整えるほうが優先度は高いというのが、Technogramの実務スタンスです。
小規模サイト(数十〜数百ページ)は基本的に優先度が低い理由
小規模サイトでは、Googlebotが全ページを巡回してもクロールバジェットへの影響はほぼありません。無理に設定しようとして間違えると、むしろ損をするリスクが生まれます。
ただし、どんな規模のサイトでも以下の1点だけは設定しておく価値があります。
- SitemapディレクティブでXMLサイトマップのURLを記載する
これにより、クローラーがサイトマップを効率的に発見できます。XMLサイトマップの詳しい作り方・設定方法は「XMLサイトマップとは?SEO効果・作成方法・よくあるミスまで実務で解説」で解説しています。

robots.txtが必要になるサイトの条件
以下のような状況になったとき、robots.txtの設定・見直しを検討してください。
- ECサイト・大規模サイト:URLパラメータ(並び替え、フィルタリング)で大量の重複URLが発生している
- 動的コンテンツが多いサイト:検索結果ページや絞り込みページを大量に生成している
- WordPressサイト:管理画面(/wp-admin/)やログインページをブロックしたい
- ステージング環境:本番公開前のサイト全体をインデックスされないようにしたい
- AIクローラーを制御したい:コンテンツの学習用利用を制限したい
robots.txtの基本的な書き方|4つのディレクティブと記述ルール
設置後は、Google Search Consoleのrobots.txtレポートで動作確認を行います。
なお、本番に反映する前にGoogle Search Consoleの「robots.txtテスター」を使って意図通りに動作するかを確認しておくと安心です。テスターでは、特定のURLがブロックされるかどうかをリアルタイムで検証できます。
User-agent・Disallow・Allow・Sitemapの書き方
各ディレクティブの書き方と意味を整理します。
| ディレクティブ | 意味 | 例 |
|---|---|---|
User-agent | 対象のクローラー名。* はすべてのクローラー | User-agent: * |
Disallow | クロールを禁止するパス。空欄にするとすべて許可 | Disallow: /wp-admin/ |
Allow | Disallowを上書きして許可するパス | Allow: /wp-admin/admin-ajax.php |
Sitemap | XMLサイトマップのフルURL | Sitemap: https://example.com/sitemap.xml |
基本的な記述ルール
User-agentとDisallow/Allowのセットが1つのブロック(グループ)です- ブロックとブロックは空行で区切ります
#から始まる行はコメントとして扱われます(クローラーには無視される)- パスは
/から始まる相対パスで書きます(フルURLは使わない) - 大文字・小文字は区別されます(
/Admin/と/admin/は別扱い)
ワイルドカード(*)と正規表現の使い方
robots.txtでは2種類のパターンマッチが使えます。
*(アスタリスク):任意の文字列にマッチ
Disallow: /*?
→ ? を含むすべてのURLをブロック(URLパラメータ全般を除外)
$(ドル記号):URLの末尾を示す
Disallow: /*.pdf$
→ .pdf で終わるURLをすべてブロック
robots.txtは、サイトのルートに1つだけ設置するテキストファイルです。
文字コードはUTF-8(BOMなし)で保存します。「誰に(User-agent)」「何を禁止・許可するか(Disallow/Allow)」「サイトマップはどこか(Sitemap)」の4つのディレクティブで構成されます。
ケース別の記述例サンプル
通常のコーポレート・ブログサイト向け基本テンプレート
WordPress管理画面と検索パラメータを除外し、サイトマップを明示する基本設定です。
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /*?s=
Sitemap: https://www.example.com/sitemap.xml
/wp-admin/をブロックしつつ、Ajaxリクエスト用のURLは許可しています?s=はWordPressの検索パラメータです。大量の重複URLを防ぐために除外します
WordPress環境での注意点と推奨設定
WordPressでは、設定方法が2通りあるため注意が必要です。
- 物理ファイル(FTP等でアップロード):サーバーに直接
robots.txtを置く - プラグインの仮想robots.txt:プラグインが動的に生成する
両方が存在するとプラグインの設定が無視される場合があります。
WordPressサイトでプラグインを使ってrobots.txtを管理している場合は、サーバー上に物理ファイルが存在しないかを確認してください。
管理画面・パラメータURLを制御したい場合
特定のディレクトリ配下をまとめてブロックしたい場合の例です。
User-agent: *
Disallow: /wp-admin/
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /*?orderby=
Disallow: /*?filter=
Allow: /wp-admin/admin-ajax.php
Sitemap: https://www.example.com/sitemap.xml
ECサイトでは、カート・チェックアウト・会員ページをブロックするのが一般的です。また、並び替えや絞り込みのパラメータURLも大量の重複コンテンツになりやすいため、適切に制御します。
AIクローラーを用途別に制御する方法(2026年最新)
AIクローラーの扱いは、「すべてブロック」ではなく戦略的に判断するのが現在の実務スタンスです。
Technogramでは、「AI検索で引用されたいが、学習データとしての無断利用は避けたい」というクライアントに対して、用途別のブロック設定を提案しています。
AIクローラーの種類と対応方針
| クローラー名 | 種類 | 対応方針の例 |
|---|---|---|
GPTBot | OpenAI学習用 | ブロック推奨(学習利用を避けたい場合) |
OAI-SearchBot | ChatGPT検索用 | 許可推奨(AI検索で引用されたい場合) |
PerplexityBot | Perplexity検索用 | 許可推奨(AI検索で引用されたい場合) |
CCBot | Common Crawl学習用 | ブロック推奨(学習利用を避けたい場合) |
anthropic-ai | Anthropic学習用 | 要判断 |
Googlebot | Google全般 | 絶対にブロック禁止 |
重要:Googlebot をブロックすると、オーガニック検索からの流入だけでなく、Google AI Overviewsへの引用も同時に失います。Googlebotだけは絶対にブロックしないでください。
学習用クローラーだけをブロックし、検索用クローラーは許可する設定例は以下のとおりです。
# 学習用クローラーをブロック
User-agent: GPTBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: anthropic-ai
Disallow: /
# 検索用クローラーは許可(何も書かない=全アクセス許可)
# User-agent: OAI-SearchBot → 記述なし(デフォルトで許可)
# User-agent: PerplexityBot → 記述なし(デフォルトで許可)
# 全クローラーへの基本設定
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://www.example.com/sitemap.xml
AIO(AI検索最適化)の観点から、AI検索に引用される戦略については「テクニカルSEO完全ガイド|診断・優先施策・実装手順を実務で解説【チェックリスト30項目】」でも詳しく解説しています。

robots.txtの設置と確認方法
ファイルの作成とサーバーへのアップロード手順
robots.txtの設置は以下の手順で行います。
- テキストエディタ(VSCode、メモ帳など)で
robots.txtという名前のファイルを作成する - 文字コードを UTF-8(BOMなし)で保存する
- FTPソフト(FileZillaなど)またはサーバーのファイルマネージャーで、ドメインのルートディレクトリ(
public_html/やwww/など)にアップロードする - ブラウザで
https://www.example.com/robots.txtにアクセスし、内容が表示されることを確認する
設置場所のミスに注意:サブディレクトリ(/blog/robots.txt など)に置いてもルートドメインのクロール制御には効きません。必ずルート(/robots.txt)に設置します。
Google Search Consoleのrobots.txtレポートで確認する方法
注意点が2つあります。1点目は、robots.txtは正規表現([a-z] や (a|b) など)には対応しておらず、* と $ だけが有効なパターン記号です。2点目は、Disallowのパス指定は前方一致で動作する点です。
Disallow: /blog と書くと /blog-2024/ のような意図しないURLもブロックされます。ディレクトリ単位でブロックしたい場合は、末尾に / をつけて Disallow: /blog/ と書くのが正しい書き方です。
- Google Search Consoleにログインする
- 左メニューから「設定」→「クロール統計情報」→「robots.txtで除外されたリクエスト」を確認する
- または「URL検査ツール」で特定のURLを入力し、「robots.txtによりブロックされています」と表示されるかを確認する
想定外のURLがブロックされていないか、または必要なURLがブロックされていないかを定期的にチェックする習慣をつけておくと安心です。
実務でよく見かけるrobots.txtの設定ミス4選
Technogramの支援現場で実際に遭遇してきたミスをまとめました。いずれも「知らないとやってしまう」パターンばかりです。
ミス1:機密URLをDisallowに列挙してしまう(情報漏洩リスク)
「このURLにアクセスされたくない」という意図でDisallowに書いてしまうミスです。
なぜ問題か:robots.txtはWebに公開されるファイルです。Disallow: /secret-page/ と書くと、そのURLを知りたい第三者に対して「ここに重要なページがある」と教えてしまいます。
正しい対処:機密情報を含むページは、Basic認証・IPアドレス制限・会員ログインなどアクセス制限を使って保護してください。robots.txtはアクセス制限のツールではありません。
ミス2:noindexを効かせたいページをrobots.txtでブロックしてしまう
「検索結果に出したくないからDisallowに入れた」というケースです。
なぜ問題か:robots.txtでブロックされたページにはクローラーが入れません。つまり、ページ内に書いた <meta name="robots" content="noindex"> を読み取れず、すでにインデックスされているページがいつまでも消えない状態になります。
正しい対処:noindexを機能させたいページはrobots.txtでブロックしてはいけません。クローラーにアクセスさせながら、noindexタグで「インデックスしないでください」と伝えるのが正しい手順です。
このミスについては「インデックス登録リクエストが効かない原因と対処法|Google Search Console実務トラブルシューティングガイド」でも詳しく解説しています。

ミス3:WordPressで物理ファイルとプラグインが競合する
プラグイン(Yoast SEO等)でrobots.txtを管理しているのに、FTPで物理ファイルも存在している状態です。
なぜ問題か:物理ファイルが存在する場合、WordPressはプラグインの仮想robots.txtではなく物理ファイルを優先します。プラグイン側で設定を変えても反映されず、原因に気づかないことが多いです。
正しい対処:プラグインで管理する場合は物理ファイルを削除する。物理ファイルで管理する場合はプラグインのrobots.txt機能をオフにする。どちらかに統一してください。
ミス4:CSSやJavaScriptをブロックしてレンダリングが崩れる
「不要なファイルをブロックしてクロールを効率化したい」という意図で、CSSやJavaScriptのディレクトリをブロックしてしまうケースです。
なぜ問題か:GoogleはCSSとJavaScriptを読み込んでページをレンダリングします。これらをブロックすると、Googleがページの見た目・構造を正しく把握できなくなり、コアウェブバイタルの評価や構造化データの認識に影響が出ることがあります。
正しい対処:/wp-content/themes/ /wp-content/plugins/ といったCSSやJavaScriptを含むディレクトリはブロックしないでください。
「テクニカルSEO完全ガイド|診断・優先施策・実装手順を実務で解説【チェックリスト30項目】」では、クロール最適化の全体方針についても解説しています。

まとめ|robots.txtは「触らなくて済むなら触らない」が小規模サイトの正解
robots.txtのポイントを整理します。
- robots.txtはクロール制御のみ、インデックス制御はnoindex、重複URLはcanonicalで対応する
- 小規模サイトは優先度が低い。まずXMLサイトマップを整えることが先決
- 基本テンプレートは「wp-admin除外+検索パラメータ除外+Sitemapディレクティブ」の3点セット
- AIクローラーは全部ブロックではなく、学習用と検索用を用途別に制御する
- 最大の落とし穴は「noindexページをDisallowに入れる」ミス。必ず分けて管理する
小規模サイトの場合、設定ミスのリスクを考えると「触らなくて済むなら触らない」が正解です。必要なときだけ、正しい目的で設定・変更するようにしてください。
よくある質問(FAQ)
Q. robots.txtを設定しないと、SEOに悪影響はありますか?
小規模サイトであれば悪影響はほぼありません。設定しない場合、クローラーはサイト全体を自由に巡回します。ただし、XMLサイトマップのURLだけはSitemapディレクティブとしてrobots.txtに記載しておくと、クローラーへの伝達が効率化されます。まず優先すべきはXMLサイトマップの整備です。
Q. robots.txtで管理画面のURLを非公開にできますか?
できません。robots.txtはWebに公開されるファイルであるため、Disallowに記載したURLは誰でも閲覧できます。管理画面や機密ページを本当に保護したい場合は、Basic認証やIPアドレス制限を使うのが正しい対処です。robots.txtはクロール禁止の指示書であり、アクセス制限のツールではありません。
Q. AIクローラーはすべてブロックすべきですか?
目的によります。ChatGPTやPerplexityなどのAI検索経由でユーザーに見つけてもらいたいなら、検索用クローラー(OAI-SearchBot、PerplexityBotなど)は許可するのが得策です。一方、コンテンツをAIの学習データとして使われたくない場合は、学習用クローラー(GPTBot、CCBotなど)だけを個別にブロックする方法があります。GooglebotはAI Overviewsにも関わるため、絶対にブロックしてはいけません。
Q. noindexを設定しているページをrobots.txtでブロックするのはなぜいけないのですか?
robots.txtでクロールをブロックすると、クローラーがそのページに入れなくなり、noindexタグを読み取れなくなります。その結果、すでにインデックスされているページが「消えない」状態になることがあります。noindexを正しく機能させたいなら、robots.txtではブロックせずクローラーにアクセスさせた上で、noindexタグで指示するのが原則です。

