robots.txt(ロボッツ・テキスト)は、サイトの入口(ドメインのすぐ下)に置く短いテキストのファイルで、検索エンジンなどのクローラー(ページを読みに来るプログラム)に「ここは読みに来てよい」「ここは来ないでほしい」を伝えます。書き方は、User-agent(どのクローラー向けか)、Disallow(来ないでほしい場所)、Allow(その中で例外として来てよい場所)、Sitemap(サイトマップの場所)の四つを組み合わせるだけです。
WordPress のサイトなら、ファイルを置かなくても WordPress が自動で robots.txt を返していて、中身は管理画面(/wp-admin/)を止め、サイトマップの場所を知らせる数行です。当社の見立てでは、地域の会社や事務所のサイトの多くは、このままで足ります。書き換える前に知っておきたいのは二つです。robots.txt は検索結果からページを消す手段ではないこと。そして書き間違えると、サイト全体や、見た目を作る部品を Google が読めなくなることです。
この記事では、書き方、置く場所と効く範囲、WordPress が返す中身とファイルを置いた場合の扱い、よくある間違い、AI のクローラーを止めるかの考え方、書き換えたあとの確かめ方を順に書きます。仕様は、2026年10月時点で Google 検索セントラル、Search Console ヘルプ、WordPress.org の説明を読んで確かめたものです。検索に出さないページの作り方はnoindex の設定方法に、WordPress のサイトマップに載るページの整理はWordPress のサイトマップに不要なページが載っていたときの仕分け方に分けて書いています。
robots.txt が決めるのは「読みに来るか」で、「検索に出すか」ではない
Google の説明では、robots.txt の主な用途は、クローラーからのアクセスでサーバーに負担がかかりすぎないようにすることです。そのうえで、robots.txt は「Google にウェブページが表示されないようにするためのメカニズムではありません」とはっきり書いています。robots.txt で止めたページでも、ほかのページからリンクされていれば、URL だけが説明なしで検索結果に出ることがあります。
| したいこと | robots.txt でできるか | 代わりの方法 |
|---|---|---|
| 読み込みによるサーバーの負担を減らす | できる。本来の用途 | ― |
| 検索結果に出さない | できない。URL だけ出ることがある | noindex、パスワード保護、ページの削除 |
| 人に見られないようにする | できない。robots.txt 自体も誰でも読める | パスワード保護、ログインが要る形 |
| 画像・動画・音声を Google の検索結果に出さない | できる。ただし、ほかのページがそのファイルにリンクすることは止められない | ― |
| 行儀の悪いクローラーを締め出す | できない。従うかどうかはクローラー次第 | サーバーや CDN(ページを配信する仕組み)の側での遮断 |
Google は、robots.txt の指示をクローラーに強制することはできない、とも書いています。名の通った検索エンジンのクローラーは従いますが、すべてのクローラーが従うわけではありません。
書き方:四つの項目と、基本の形
WordPress が自動で返す robots.txt は、次のような形です(example.com は例のドメインです)。
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/wp-sitemap.xml
- User-agent:どのクローラー向けの指定かを書きます。「*」はすべてのクローラーという意味です。Google 検索のクローラーなら「Googlebot」と書きます。なお Google の説明では、広告のページを確かめる AdsBot だけは「*」に含まれず、名前を書いたときだけ対象になります。
- Disallow:読みに来ないでほしい場所を、ドメインの後ろの部分(「/」で始まるパス)で書きます。「Disallow: /wp-admin/」なら、/wp-admin/ で始まる URL すべてが対象です。
- Allow:Disallow で止めた中で、例外として読んでよい場所を書きます。上の例では、管理画面の中の admin-ajax.php(ページの一部の動きに使われるファイル)だけを許しています。
- Sitemap:サイトマップ(検索エンジンに渡すページの目次)の場所を、https から始まる完全な URL で書きます。どのクローラー向けのまとまりにも属さず、複数書くこともできます。
User-agent の行から、次の User-agent の行の手前までが一つのまとまり(グループ)です。どこにも書かれていない場所は、読みに来てよい扱いになります。
細かい決まり
- ファイル名は robots.txt で、文字コードを UTF-8 にしたただのテキストで保存します。Google はワープロのソフトで作らないよう書いています。
- 「User-agent」「Disallow」などの項目名は、大文字と小文字を区別しません。一方、Disallow や Allow に書くパスは区別します。「Disallow: /fish」は /Fish.asp には効きません。
- 「#」から後ろはメモ(コメント)として無視されます。
- 「*」は0文字以上の任意の文字、「$」は URL の終わりを表します。「Disallow: /*.pdf$」なら、.pdf で終わる URL が対象です。
- Google が読むのは user-agent、allow、disallow、sitemap の四つだけです。よく見かける crawl-delay(読みに来る間隔の指定)を、Google は扱いません。
- ファイルの大きさは 500KiB までで、超えた分は無視されます。小さなサイトで超えることは、まずありません。
Allow と Disallow がぶつかったら、長く一致したほうが使われる
Google は、URL に当てはまるルールのうち、いちばん長く(細かく)一致したものを使います。上の例の /wp-admin/admin-ajax.php は、「Disallow: /wp-admin/」にも「Allow: /wp-admin/admin-ajax.php」にも当てはまりますが、Allow のほうが長く一致するので、読んでよい扱いになります。同じ長さで食い違ったときは、制限の少ないほう(Allow)が使われます。書いた順番は関係ありません。
名前を書いたクローラーは、「*」のグループを読まない
見落としやすいのがここです。Google の仕様では、一つのクローラーに効くグループは一つだけで、名前がいちばん具体的に一致したグループが選ばれ、ほかは無視されます。「*」のグループと、名前を書いたグループは合わさりません。
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
User-agent: Googlebot
Disallow: /test/
こう書くと、Googlebot は下のグループだけに従うので、上に書いた /wp-admin/ の Disallow は Googlebot には効かなくなります。特定のクローラー向けのグループを足すときは、「*」に書いたルールのうち、そのクローラーにも効かせたいものを書き写しておきます。
置く場所と、効く範囲
robots.txt は、サイトの一番上(ルート)に一つだけ置きます。「https://example.com/robots.txt」の形で開ける場所です。下の階層に置いたファイルは、robots.txt として扱われません。またルールが効くのは、そのファイルを置いたホスト(ドメインやサブドメイン)、プロトコル(http か https か)、ポート番号の組み合わせの中だけです。
| ファイルの場所 | 効く範囲 |
|---|---|
| https://example.com/robots.txt | https://example.com/ の下のすべて。www.example.com や shop.example.com には効かない |
| https://www.example.com/robots.txt | https://www.example.com/ の下だけ |
| https://example.com/blog/robots.txt | robots.txt として読まれない |
Search Console のヘルプにも、一つのページに効く robots.txt は一つだけで、サブドメインと親のドメインのあいだで引き継がれない、とあります。予約システムやネットショップをサブドメインで別に動かしているなら、そちらの robots.txt も別に確かめます。
ファイルがないとき、開けないとき
robots.txt が見つからない(404)のは、問題ありません。Google は制限がないものとして、サイト全体を読みに来ます。困るのは、サーバーがエラー(500番台)を返しているときです。Google の仕様では、この場合はしばらくサイトのクロール(読みに来ること)を止め、取得し直せないあいだは、前に取れた内容を使います。サーバーの不調が続くと、新しいページが読まれにくくなります。
また Google は、robots.txt の内容をふつう最大24時間ためておく(キャッシュする)ので、書き換えてもすぐには効きません。
WordPress の robots.txt:自動で返る中身と、ファイルを置いた場合
ファイルがなくても、WordPress が中身を作って返す
WordPress は、サイトに robots.txt のファイルがなくても、/robots.txt を開かれると中身をその場で作って返します。WordPress.org の開発者向けリファレンスで、この中身を作る関数(do_robots)を確かめると、出しているのは次の三つです。
- 「User-agent: *」の行
- 管理画面を止める Disallow と、admin-ajax.php を許す Allow
- 「Sitemap:」の行。WordPress 5.5 で加わった標準のサイトマップ(wp-sitemap.xml)の場所を、サイトが検索エンジンに公開されている設定のときだけ足します
「設定」→「表示設定」の「検索エンジンでの表示」で「検索エンジンがサイトをインデックスしないようにする」に印を入れると、以前は robots.txt に「Disallow: /」が出ていました。WordPress 5.3 からはこの行は出ず、代わりにページの head(画面に出ない頭の部分)に noindex の指定を出す形に変わっています。印を入れたサイトでは、Sitemap の行も出ません。自社の robots.txt に Sitemap の行がないときは、この設定を見てみる価値があります。
また、この自動の中身は、テーマやプラグインが行を足したり書き換えたりできる作りになっています(robots_txt というフィルター)。SEO 用のプラグインにある robots.txt の編集画面も、多くはこの仕組みを使っています。見覚えのない行があれば、まず入れているプラグインの設定を見ます。
ファイルを置くと、ふつうはそちらが返る
サーバーの公開フォルダーの一番上に robots.txt という実際のファイルを置くと、多くのサーバーではそのファイルがそのまま返り、WordPress が作る中身は出なくなります。WordPress.org が示す標準の .htaccess(Apache というサーバーの設定ファイル)は、実在するファイルへのアクセスを WordPress に回さない書き方(RewriteCond %{REQUEST_FILENAME} !-f)になっているためです。
この場合、WordPress が自動で足す Sitemap の行も、プラグインの編集画面で変えた内容も、公開される robots.txt には出てきません。プラグインで書き換えたのに変わらないときや、以前の制作会社やサーバーの初期設定で置かれたファイルが残っていそうなときは、サーバーのファイル管理の画面で、公開フォルダーの一番上に robots.txt があるかを確かめます。自分で触れない場合は、サーバーを管理している人に聞くのが早道です。
どちらを使うかについて、当社の見立てでは、WordPress の自動の robots.txt で困っていないなら、ファイルは置かずにそのままにしておくほうが管理が単純です。サイトマップの場所が変わっても、WordPress が追従します。ファイルを置くのは、プラグインを使わずに AI のクローラー向けの指定などを足したいときくらいです。
よくある間違い
「Disallow: /」のまま公開している
「User-agent: *」の下に「Disallow: /」と書くと、サイト全体を読みに来ないでほしい、という意味になります。試験用の環境でサイトを作ったときの robots.txt を、そのまま本番に持ってきた場合などに起きます。Search Console の「ページ」の画面で「URL が robots.txt によってブロックされています」が増えていたら、まず robots.txt を開いて、この一行がないかを見ます。ページが検索に出ないときの原因の見分け方は、Google にインデックスされない原因の見分け方にまとめています。
CSS や JavaScript、画像のフォルダーを止めている
「中身ではないから」と、/wp-content/ や /wp-includes/ を Disallow にしている例があります。ここにはテーマの CSS(見た目の指定)や JavaScript(動きのプログラム)、画像が入っています。Google は、ページの理解に要るリソースまで止めると Google がページを正しく分析できなくなるので、止めないよう書いています。WordPress.org の SEO の説明にも、JS や CSS のファイルを止めないよう Google が繰り返し勧めている、とあります。WordPress の自動の中身がこれらを止めていないのは、そのためです。
Google から見たページの様子は、Search Console の URL 検査で「公開 URL をテスト」を押し、「テスト済みのページを表示」で確かめられます。読み込まれたページのリソースも、そこで見られます。
検索から消したいページを robots.txt で止める
先に書いたとおり、robots.txt は検索結果から消す手段ではありません。そのうえ、止めたページは Google が読めないので、ページに付けた noindex も読まれません。Search Console には「robots.txt によりブロックされましたが、インデックスに登録しました」という表示もあり、ヘルプは、検索から外したいなら robots.txt のブロックを外して noindex を使うよう案内しています。noindex の付け方はnoindex の設定方法に、すでに検索に出ているページを急いで消す方法はサーチコンソールでインデックスを削除する方法に書きました。
見せたくない場所の URL を書いてしまう
robots.txt は、誰でもブラウザで開いて読めます。「Disallow: /shain-only/」のように書くと、見せたくない場所があることを、かえって知らせることになります。人に見せたくないページは、robots.txt ではなく、パスワード保護やログインが要る形で守ります。
置き場所や書き方の小さな間違い
- /blog/robots.txt のように、一番上以外に置いている(読まれません)。
- Disallow のパスを「/」から始めていない。大文字・小文字が実際の URL と違う。
- 全角のコロンや空白が混ざっている。
- www あり・なしや、サブドメインの一方だけを見て、もう一方を確かめていない。
Search Console の robots.txt レポートは、読めなかった行を「問題」として数え、その行を示してくれます。エラーの行はルールとして使われず、警告の行は使われます。
AI のクローラーを止めるかどうか
生成 AI の会社も、robots.txt で扱いを分けられるクローラーを公表しています。止めるかどうかに正解はなく、何を受け入れて何を断るかの判断です。公式に書かれていることは次のとおりです。
| robots.txt に書く名前 | 公式に書かれている用途 | 止めたときに起きること |
|---|---|---|
| Google-Extended | Gemini のモデルの学習と、回答の根拠に使うこと(グラウンディング)を、サイト側で管理するための目印 | Google は、Google 検索への登録やランキングには影響しないとしている。読みに来るクローラーの名前ではなく、robots.txt で使う目印 |
| GPTBot(OpenAI) | 生成 AI の基盤モデルのために読む。学習に使われる可能性がある | 学習に使わないでほしい、という意思表示になる |
| OAI-SearchBot(OpenAI) | ChatGPT の検索機能でサイトを紹介するため | ChatGPT の検索の答えに出なくなる(案内のリンクとしては出ることがある) |
書き方は、ほかのクローラーと同じです。たとえば学習用の GPTBot だけを断るなら、次の2行を足します。
User-agent: GPTBot
Disallow: /
名前を書いたグループは「*」のグループと合わさらないので、GPTBot はこの2行だけに従います。サイト全体を断るなら、これで足ります。OpenAI は、robots.txt を書き換えてから反映まで約24時間かかるとしています。
取り違えやすいのは、Google-Extended と、Google 検索の「AI による概要」との関係です。Google は、検索の AI 機能への表示を制限する方法として nosnippet や noindex などの指定を案内していて、Google-Extended は「Google の他のシステム」の学習やグラウンディング向けの指定として、分けて書いています。Google-Extended を止めることと、AI による概要に出ないようにすることは別の話です。また Googlebot そのものを止めると、ふつうの検索にも出なくなります。
当社のサイトでは、学習用の GPTBot は断り、ChatGPT の検索用の OAI-SearchBot は止めていません。判断の考え方と、AI の検索で自社を見つけてもらうために確かめることは、AI の検索で地域の会社が見つかるにはに書いています。
書き換えたあとの確かめ方:robots.txt レポートと URL 検査
- 書き換える前に、今の中身をメモ帳などに写して残しておきます。Google の更新の手順でも、最初に今のファイルを取っておくことから始めています。
- 保存したら、ログインしていないブラウザ(シークレットウィンドウなど)で、ドメインの後ろに /robots.txt を付けて開き、書いたとおりに出ているかを見ます。
- Search Console の「設定」の画面から robots.txt のレポートを開き、「取得ステータス」が「取得済み」か、「問題」の数が0かを見ます。このレポートは、ドメイン プロパティか、パスを含まない URL プレフィックス プロパティで使えます。
- 急ぐときは、ファイルの横のメニューから「再クロールをリクエスト」を選びます。ヘルプでは、重要な URL のブロックを解除したときや、取得エラーなどの重大な問題を直したときに使うものとされています。それでも、解除した URL がすぐに読まれるとは限りません。
- 止めたつもりのページ、許したつもりのページを URL 検査で開き、「クロールを許可?」の答えを見ます。
今日、自社で確かめられること
- ブラウザで自社のドメインの後ろに /robots.txt を付けて開き、「User-agent: *」の下に「Disallow: /」だけの行がないかを見る。
- /wp-content/ や /wp-includes/ など、見た目の部品が入る場所を Disallow にしていないかを見る。
- 「Sitemap:」の行があり、その URL を開くとサイトマップが出るかを確かめる。行がなければ、「設定」→「表示設定」の「検索エンジンでの表示」を見る。
- Search Console の robots.txt レポートで、取得ステータスと「問題」の数を見る。サブドメインを使っているなら、その行も見る。
- GPTBot、OAI-SearchBot、Google-Extended の名前があるかを見て、あれば自社の考えと合っているかを確かめる。名前がなければ、「*」の指定に従っている。
参考にした公式の説明
いずれも2026年10月16日に確認しました。画面の表示名は変わることがあります。