「robots.txtを設定したほうがよいと聞いたが、何を書けばよいか分からない」「記述を間違えて、サイトが検索結果から消えてしまわないか不安」と感じている担当者は少なくありません。robots.txtは数行のテキストファイルですが、1行の書き間違いがサイト全体の検索流入に影響することもある重要なファイルです。
一方で、仕組みと基本のルールさえ理解すれば、robots.txtの設定は決して難しくありません。不要なページへのクロールを抑え、重要なページを効率よく検索エンジンに伝えられるようになります。
本記事では、robots.txtの役割とSEOへの影響、使う場面、書き方と記述例、設定方法と確認手順、設定時の注意点までを順番に解説します。自社サイトのrobots.txtを見直したい方は、設定の判断材料として活用してください。
| 確認したいポイント | 結論 | 詳細 |
|---|---|---|
| robots.txtとは何をするファイル? | クローラーの巡回範囲を指定するファイル | サイトのルートに置き、検索エンジンのクローラーがアクセスしてよいURLと拒否するURLを伝える役割があります。 |
| robots.txtはどう書けばよい? | User-agentとDisallowなど4つで書く | 対象のクローラーをUser-agentで指定し、Disallow・Allowでクロール範囲を、Sitemapでサイトマップの場所を示します。 |
| 設定で気をつけることは? | サイト全体を誤ってブロックしないこと | 「Disallow: /」の残存、noindexページのブロック、CSSやJavaScriptのブロックが代表的な失敗です。 |
robots.txtとは?クローラーの巡回を制御するファイル
robots.txtとは、検索エンジンのクローラーに対して、サイト内のどのURLにアクセスしてよいかを伝えるテキストファイルです。サイトのルートディレクトリに設置し、クローラーが巡回する範囲を指定する役割を担います。
ここでは、robots.txtの基本的な仕組みと、混同されやすいnoindexとの違い、SEOに与える影響を整理します。
robots.txtの役割と仕組み
Googlebotなどのクローラーは、サイトを巡回する前にrobots.txtを読み込み、アクセスしてよいURLを確認します。robots.txtで拒否されたURLには原則としてアクセスせず、許可された範囲だけを巡回します。
Google検索セントラルのrobots.txtに関する公式ドキュメントでは、robots.txtの主な用途を、クローラーのリクエストによるサーバーの過負荷を防ぐことと説明しています。robots.txtは「クロールの制御」を目的としたファイルだと理解しておきましょう。
クローラーのアクセスが集中すると、サーバーに負荷がかかり、サイトの表示が遅くなることがあります。表示速度が落ちる原因と対策は「サイトが重い原因とは?」で詳しく解説しています。
robots.txtとnoindexの違い
robots.txtとよく混同されるのが、noindexです。robots.txtがクローラーの巡回を制御するのに対し、noindexはページを検索結果に表示させないようにインデックス登録を拒否する指示です。
robots.txtでクロールを拒否しても、他のサイトからリンクされているURLは、説明文のない状態で検索結果に表示される場合があります。検索結果から確実に除外したいページには、robots.txtではなく、ページ内のmetaタグなどでnoindexを設定するのが正しい方法です。
以前はrobots.txtにnoindexを書く方法もありましたが、Googleは2019年にこの記述のサポートを終了しています。古い情報にもとづいて設定しないよう注意しましょう。
robots.txtがSEOに与える影響
robots.txtの設定そのものが、検索順位を直接引き上げるわけではありません。ただし、価値の低いページへのクロールを抑えることで、重要なページにクローラーの巡回を集中させる効果が期待できます。
検索エンジンが1つのサイトをクロールできる量には限りがあり、この上限はクロールバジェットと呼ばれます。数万ページ規模の大規模サイトやECサイトでは、不要なURLへのクロールを減らすことで、新しいページや更新したページが早く認識されやすくなります。
小規模なサイトでは、クロールバジェットを意識する必要はほとんどありません。robots.txtで特別な制御をしなくても、多くの場合は問題なくクロールされます。
robots.txtが存在しない場合、クローラーはサイト内のすべてのURLを巡回してよいと判断します。そのため、制御したいページが特にないサイトでは、Sitemapの記述だけを入れたシンプルなrobots.txtを置いておくだけでも十分です。
robots.txtを使う主な場面
robots.txtは、すべてのサイトで細かく設定しなければならないものではありません。クロールさせる必要のないページがある場合に、目的を絞って使うのが基本です。ここでは、robots.txtが役立つ代表的な5つの場面を紹介します。
管理画面や会員ページのクロールを防ぐ
WordPressの管理画面やログインページ、会員限定のマイページなどは、検索結果に表示させる必要がありません。こうしたページへのクロールをrobots.txtで拒否すると、クローラーの巡回を無駄にせずに済みます。
ただし、robots.txtでクロールを拒否しても、ページそのものが保護されるわけではありません。URLを知っている人は誰でもアクセスできるため、見られたくない情報はパスワードなどで保護する必要があります。
WordPressの場合、初期状態のrobots.txtで管理画面へのクロールはすでに拒否されています。ログインページのURLを変更している場合や、会員機能のプラグインを使っている場合は、実際のURL構成に合わせてDisallowの記述を見直しましょう。
検索結果ページやパラメータ付きURLのクロールを抑える
サイト内検索の結果ページや、並べ替え・絞り込みのパラメータが付いたURLは、内容がほぼ同じページが大量に生成されやすい特徴があります。ECサイトのカートページなど、アクセスのたびにURLが変わるページも同様です。
こうしたURLへのクロールをrobots.txtで抑えると、似た内容のページにクローラーが分散するのを防げます。内容が重複するページの扱いは「重複コンテンツの対策方法」もあわせて確認してください。
画像・PDFなど非HTMLファイルの検索表示を防ぐ
noindexはHTMLのページ内に記述する指示のため、画像やPDF、動画などのファイルには直接書き込めません。こうしたファイルを検索結果に表示させたくない場合は、robots.txtでクロールを拒否する方法が使われます。
社内向けの資料や、古いバージョンのPDFが検索結果に表示されている場合などに有効です。サーバーの設定でX-Robots-Tagというレスポンスヘッダーを使い、ファイルにnoindexを指定する方法もあります。
サイトマップの場所をクローラーに伝える
robots.txtには、XMLサイトマップの場所を記述できます。サイトマップはサイト内のページ一覧を記載したファイルで、クローラーにページの存在を効率よく知らせる役割があります。
Search Consoleでサイトマップを送信していない検索エンジンにも、サイトマップの場所を伝えられる点がメリットです。robots.txtを設置するなら、Sitemapの記述もあわせて入れておくとよいでしょう。
AIクローラーによる学習利用を制御する
近年は、生成AIの開発企業が運営するクローラーもWebサイトを巡回しています。OpenAIの「GPTBot」や、GoogleのAI学習への利用を制御する「Google-Extended」などは、robots.txtで個別に拒否するかどうかを指定できます。
AIクローラーを拒否すると学習への利用を抑えられる一方、AIの回答で自社が引用される機会が減る可能性もあります。自社のコンテンツをAI検索でどう扱ってほしいかを考えたうえで判断しましょう。AI検索での見え方を確認する方法は「LLMO診断とは?」で紹介しています。
| 【クロールやインデックスの課題を整理したい方へ】 「robots.txtの設定が正しいか分からない」「重要なページがなかなかインデックスされない」という方に向けて、合同会社楽々Editではサービス内容や支援実績を整理した資料をご用意しています。社内での検討資料としてご活用ください。 → サービス資料を無料でダウンロードする |
robots.txtの書き方と基本の記述ルール
robots.txtは、「User-agent」「Disallow」「Allow」「Sitemap」の4つの記述を組み合わせて作成します。まずは4つの記述の意味と書き方を押さえれば、基本的な設定は十分に行えます。
User-agent:対象のクローラーを指定する
User-agentは、ルールを適用するクローラーを指定する記述です。「User-agent: *」と書くとすべてのクローラーが対象になり、「User-agent: Googlebot」と書くとGoogleのクローラーだけが対象になります。
User-agentの下に書いたDisallowやAllowが、そのクローラーへのルールとして扱われます。**特定のクローラー向けのルールがある場合、そのクローラーは「*」のルールではなく、自分の名前が書かれたルールに従う**点に注意しましょう。
Disallow:クロールを拒否するパスを指定する
Disallowは、クロールを拒否するページやディレクトリを指定する記述です。「Disallow: /admin/」と書くと、/admin/で始まるすべてのURLへのクロールを拒否します。
パスはドメイン以降の部分を「/」から書き、大文字と小文字は区別されます。「Disallow: /」と書くとサイト全体のクロールを拒否することになるため、記述する際は細心の注意が必要です。
Allow:例外的にクロールを許可する
Allowは、Disallowで拒否したディレクトリの中で、特定のページやファイルだけクロールを許可する記述です。何も書かなければクロールは許可されるため、Allowは例外を作りたいときにだけ使います。
DisallowとAllowの両方に当てはまるURLでは、より長く具体的に指定されたパスのルールが優先されます。たとえば「Disallow: /wp-admin/」と「Allow: /wp-admin/admin-ajax.php」を併記すると、admin-ajax.phpだけがクロールの対象になります。
Sitemap:サイトマップのURLを記述する
Sitemapは、XMLサイトマップの場所をクローラーに伝える記述です。「Sitemap: https://example.com/sitemap.xml」のように、httpsから始まる省略のないURLで記述する決まりがあります。
Sitemapの記述はUser-agentのグループとは関係なく、ファイル内のどこに書いても有効です。複数のサイトマップがある場合は、1行に1つずつ並べて記述します。
このほか、Disallowのパスには「*」と「$」の記号も使えます。「*」は任意の文字列を表し、「Disallow: /*.pdf$」と書くと、URLの末尾が.pdfで終わるファイルへのクロールを一括で拒否できます。記号を使う場合は、意図しないURLまで対象にしていないかを必ず確認しましょう。
目的別の記述例
すべてのクローラーにサイト全体のクロールを許可し、サイトマップの場所を伝える基本の記述例は、次のとおりです。
User-agent: *
Disallow:
Sitemap: https://example.com/sitemap.xml
WordPressの管理画面とサイト内検索の結果ページへのクロールを拒否する場合は、次のように記述します。管理画面の中でも、サイトの表示に使われるadmin-ajax.phpは許可しておくのが一般的です。
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Sitemap: https://example.com/sitemap.xml
AIの学習を目的としたクローラーだけを拒否し、検索エンジンのクロールは許可する場合は、次のようにクローラーごとにグループを分けて記述します。
User-agent: GPTBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: *
Disallow:
robots.txtの設定方法と確認手順
robots.txtの設定は、ファイルの作成、アップロード、動作確認の3つの手順で進めます。設定後に正しく読み込まれているかを確認するところまでが、robots.txtの設定作業です。
手順1:テキストファイルを作成する
メモ帳などのテキストエディタで、記述したいルールを入力します。ファイル名は必ず「robots.txt」とし、文字コードはUTF-8で保存しましょう。
WordやGoogleドキュメントなどの文書作成ソフトは、見えない書式情報が含まれてしまうため、robots.txtの作成には向いていません。「#」から始まる行はコメントとして扱われるため、ルールの意図をメモとして残しておくと、後から見直す際に役立ちます。
手順2:ルートディレクトリにアップロードする
作成したファイルは、サイトのルートディレクトリにアップロードします。「https://example.com/robots.txt」のように、ドメインの直下でアクセスできる場所に置く必要があります。
「https://example.com/blog/robots.txt」のように下の階層に置いても、クローラーには認識されません。サブドメインを使っている場合は、サブドメインごとに個別のrobots.txtが必要です。アップロード後は、ブラウザでURLを開いて内容が表示されるかを確認しましょう。
レンタルサーバーを利用している場合は、FTPソフトやサーバーのファイルマネージャーからアップロードできます。Googleがrobots.txtとして読み込めるファイルサイズは500KiBまでとされているため、ルールを書きすぎないことも大切です。
手順3:Search Consoleで正しく読み込まれているか確認する
Google Search Consoleの「設定」にある「robots.txt」レポートでは、Googleが取得したrobots.txtの内容や、最後に読み込まれた日時、エラーの有無を確認できます。記述に問題がある場合は、該当する行が表示されます。
特定のページがブロックされていないかは、URL検査ツールで確認できます。Googleはrobots.txtを一定期間キャッシュするため、変更がすぐに反映されない場合もあります。Search Consoleの基本的な使い方は「Google検索エンジンの登録方法」で解説しています。
WordPressでrobots.txtを編集する方法
WordPressは、robots.txtのファイルを置かなくても、仮想のrobots.txtを自動で生成しています。初期状態では、管理画面へのクロールを拒否し、admin-ajax.phpを許可する内容が出力されます。
内容を変更したい場合は、Yoast SEOやAll in One SEOなどのSEOプラグインの設定画面から編集するのが手軽です。ルートディレクトリにrobots.txtのファイルを直接アップロードすると、仮想のrobots.txtより優先されます。プラグインとファイルの両方で管理すると内容が食い違う原因になるため、管理方法はどちらか一方に統一しましょう。
| 【クロールやサイト構造の改善まで一貫して支援します】 「robots.txtだけでなく、サイト全体の内部施策を見直したい」という方に向けて、楽々EditのSEOコンサルティングでは、クロールやインデックスの状況分析から内部施策の改善、コンテンツ戦略までを一貫して支援します。GA4やSearch Consoleのデータに基づき、成果につながる改善策をご提案します。 → SEOコンサルティングの詳細を見る |
robots.txtを設定する際の注意点
robots.txtは手軽に編集できる反面、設定を誤るとSEOに大きな悪影響を及ぼします。代表的な5つの注意点を押さえ、意図しないブロックを防ぎましょう。
サイト全体のクロールを誤ってブロックしない
最も深刻なミスが、「Disallow: /」によってサイト全体のクロールを拒否してしまうことです。開発環境で使っていた設定を、公開後もそのまま残してしまうケースがよく見られます。
サイト全体がブロックされると、新しいページが検索エンジンに認識されなくなり、時間とともに検索流入が大きく減少します。サイトの公開やリニューアルの直後には、必ずrobots.txtの内容を確認する習慣をつけましょう。順位が急に下がった場合の確認ポイントは「検索順位が下がった原因とは?」で紹介しています。
noindexを設定したページはブロックしない
検索結果から外したいページに、noindexとrobots.txtのDisallowを同時に設定するのはよくある間違いです。robots.txtでクロールを拒否すると、クローラーがページを読み込めず、noindexの指示に気づけません。
その結果、noindexを設定したのに、いつまでも検索結果に表示され続けることがあります。検索結果から除外したいページは、robots.txtでブロックせずにクロールを許可し、noindexを読み取らせることが大切です。インデックスに関するトラブルは「Googleにインデックスされない原因は?」も参考にしてください。
CSSやJavaScriptのファイルをブロックしない
Googleは、ページの見た目や内容を正しく理解するために、CSSやJavaScript、画像などのファイルも読み込んでいます。これらのファイルをrobots.txtでブロックすると、ページが正しく表示されないと判断されるおそれがあります。
スマートフォンでの表示が崩れていると判断されると、評価に悪影響が出る可能性もあります。テーマやプラグインのファイルが置かれたディレクトリを、丸ごとブロックしていないかを確認しましょう。
robots.txtはセキュリティ対策にならない
robots.txtは誰でもブラウザで閲覧できるファイルです。見られたくないディレクトリをDisallowに書くと、かえってその場所の存在を外部に知らせることになります。
個人情報や社外秘の資料など、非公開にしたい情報は、パスワード認証やアクセス制限で保護する必要があります。robots.txtは、あくまでクローラーへのお願いを伝えるファイルだと理解しておきましょう。
すべてのクローラーが従うわけではない
GoogleやBingなどの主要な検索エンジンはrobots.txtのルールに従いますが、すべてのクローラーが従うとは限りません。悪意のあるボットやスパム目的のクローラーは、robots.txtを無視して巡回することがあります。
クローラーによって記述の解釈が異なる場合がある点にも注意が必要です。たとえば、巡回の間隔を指定する「Crawl-delay」はGoogleではサポートされていません。特定のボットによる負荷が深刻な場合は、サーバー側でアクセスを制限する対策を検討しましょう。
robots.txtを変更した日付と内容は、社内で記録しておくことをおすすめします。検索流入に変化があった際に、robots.txtの変更が原因かどうかをすぐに切り分けられるようになり、トラブルへの対応が早くなります。
| 【robots.txtを含むサイトの課題を無料で診断します】 「robots.txtの設定ミスで検索流入が落ちていないか不安」「インデックスやクロールの状況を専門家に確認してほしい」という方は、楽々Editの無料SEO診断をご活用ください。内部施策・コンテンツ・外部施策のどこに課題があるかを分析し、改善の優先順位をご提案します。 → 無料SEO診断を申し込む |
まとめ
robots.txtは、検索エンジンのクローラーに巡回してよい範囲を伝えるテキストファイルです。検索順位を直接上げるものではありませんが、不要なページへのクロールを抑え、重要なページを効率よく認識してもらうために役立ちます。
設定する際は、User-agent・Disallow・Allow・Sitemapの役割を理解し、ルートディレクトリに設置したうえで、Search Consoleで正しく読み込まれているかを確認することが欠かせません。インデックスの拒否にはnoindexを使い、サイト全体を誤ってブロックしないよう注意しましょう。
自社サイトのrobots.txtをブラウザで開き、意図しないブロックがないかを確認するところから始めてみてください。判断に迷う場合は、専門家の視点を取り入れることで、クロールやインデックスの問題を早期に解消できます。