ミエルカTOP ミエルカジャーナル SEO robots.txtの書き方・設定法(記述例のサンプル付き)
SEO

robots.txtの書き方・設定法(記述例のサンプル付き)

公開日:2025.07.14
robots.txtの書き方

Webサイトを運営していると、似たようなページが複数できてしまうことはありませんか?たとえばサイト内の検索結果ページや、類似テーマで作ってしまった古いコンテンツなど。「これは検索エンジンにクロールしてもらわなくて良い」というページは、どのサイトにもあるものです。会員限定ページや、サイトの評価に関係のないパラメータ付きのURLも、クロールされるメリットはないでしょう。むしろ、そんなページまでクロールされてはサーバーに負荷がかかり、表示速度が下がる可能性もゼロではありません。

本記事は、GoogleやBing、Open AIのGPTBotといった検索エンジンからのクロール範囲を管理したいときに役立つクローラー向けの制御ファイル 「robots.txt(ロボッツテキスト)」 を紹介します。専門的に聞こえますが、記述ルールは意外とシンプル。robots.txtの基本的な書き方サンプルコードをご紹介するので、ぜひ活用ください。

robots.txtの用途とは?

robots.txtは、検索エンジンや生成AIのクローラー(ロボット)に「サイトのどこをクロールし、どこをクロールしないか」を理解させるためのテキストファイルです。
たとえば以下のような設定をしたいときに使います。

  • 特定のページやディレクトリだけをクロールさせない
  • 特定のページやディレクトリだけをクロールさせる
  • 上記クロール可否をクローラーの種類ごとに設定できる
  • サイトマップの場所を指定したい

なお、robots.txtはすべてのクローラーに対して有効なわけではありませんが、GooglebotやOpenAIのGPTBotは、robots.txtでクロールを制御できます。

※参考:
Google検索セントラル「robots.txt の書き方、設定と送信」
OpenAI Platform「Overview of OpenAI Crawlers」

metaタグ「noindex」との違い

robots.txtとmetaタグ「noindex」は混同されがちですが、両者の役割は異なります。

robots.txt
クローラーのアクセス自体をブロック
metaタグ「noindex」
クロールは許可したうえで、検索結果に表示されないように指示

※関連記事:クローラーとは?Web検索の仕組みをわかりやすく解説

つまり、「クロールを制御する」のがrobots.txt、「インデックス登録を防ぐ」のがnoindexという違いがあるのです。

クローラーやnoindexなど、SEOの基本については以下で配布している無料の資料をご活用ください。

ゼロから始める SEO基礎攻略キット

robots.txt と noindex の使い分け

robots.txtとnoindexは役割が異なるので、使い分けるのが基本です。

noindex
インデックス(検索結果への表示)制御したいときに使用
robots.txt
クロール(アクセス)制御したいときに使用

    中小規模のWebサイトではクロール制御が必要なケースは稀なため、インデックスさせたくないページには基本的に「noindex」を使いましょう。robots.txtは設定を誤るリスクがある上、ブロックしてもインデックスされる可能性があるからです。(何らかの理由でnoindexを付与できないときは代替手段として使われることもありますが)

    一方で、数百万ページを超える大規模サイトでは、「クロール最適化」のためにrobots.txtが活用されます。重要度の低いページへのクロールを制限することで、重要なページへクローリングを集中させることが可能です。

    基本編|robots.txtの構成と書き方

    robots.txtには、「どのクローラーに、どのページへのアクセスを許可・禁止するか」を記述しましょう。基本構成は次のとおりです。

    ルール内容
    User-agent適用先のクローラー名User-agent: Googlebot
    Disallow後ろに続くパスのクロールを禁止にするDisallow: /junk/
    Allow後ろに続くパスのクロールを許可するAllow: /service/
    ワイルドカード *すべてを対象にする
    または、特定のパターンに一致するパスを指定する
    User-agent: *

    ここからは、よくあるケースを想定して、記述のサンプルを紹介していきます。

    クロールを拒否したい

    クロールを拒否したいときは、Disallowを使います。ページ単位はもちろん、ディレクトリごとにアクセスを拒否したいときにも使えます。

    User-agent: *
    Disallow: /admin/
    Disallow: /private.html

    上記の記述では、クローラーの種類を問わず、「admin」配下すべてと、「private.html」へのクロールを拒否しています。

    クロールを許可したい

    クロールを許可したいときにはAllowを使用します。robots.txtを置かない限り、検索エンジンのクローラーは基本的に全ページをクロールしようとします。そのため、すべてのページを許可したいだけであれば、Allowの記述は不要です。

    しかし、特定のディレクトリはクロール禁止にしつつ、その中の一部だけはクロールを許可したいというケースがあります。Allowはこのような場合に有効です。

    User-agent: *
    Disallow: /admin/
    Allow: /admin/help.html

    上記の記述は、クローラーの種類を問わず、「admin」配下をクロールさせないようにしていますが、「admin/help.html」のみはクロールを許可しています。

    応用編|さまざまな条件つきでの書き方

    robots.txtは複数の指示を組み合わせることで、柔軟な設定が可能です。ここからは応用編として、さまざまな条件下での記述サンプルを紹介します。

    ※参考:Google検索セントラル「Google による robots.txt の指定の解釈」

    特定のクローラーだけをブロックしたい場合は、以下のように記述しましょう。

    Googleの検索用クローラーだけブロックしたい

    たとえばGoogleの検索用クローラー「Googlebot」。この書き方をすれば、Googleの検索用ボットだけはサイト全体をクロールできないですが、その他のクローラーはサイト全体をクロール可能です。

    User-agent: Googlebot
    Disallow: /

    User-agent: *
    Allow: /

    GoogleのAI学習用クローラーボットだけブロックしたい

    Googleは検索用のGooglebotとは別に、AI学習用のクローラー Google-Extended があります。記述時は間違えないように注意しましょう。GoogleのAI学習クローラーだけブロックしたいときは、以下のサンプルコードを参考に記述してください。

    User-agent: Google-Extended
    Disallow: /

    User-agent: *
    Allow: /

    ※これを記述しても、Google検索のクロールには影響しません。

    主要なAIクローラーをまとめてブロックしたい

    最近は「自社でお金や時間をかけて調査した情報を、生成AIに渡したくない」と考える企業も出てきました。robots.txtは、生成AIのボット・クローラーを制御するときも有効です。

    たとえば以下のような主要AI開発企業は、自社のAIモデル学習用クローラーが robots.txt のルールに従うことを公式に表明しているからです。

    主要AIクローラーとは?

  • OpenAI (ChatGPTなど):GPTBot
  • Google (Gemini, Vertex AIなど):Google-Extended
  • Anthropic (Claudeなど):anthropic-ai
  • Common Crawl:CCBot
  • ※参考:
    ChatGPTのウェブクローラはGPTBot。robots.txtでブロック可能|海外SEO情報ブログ(当社の執行役員・鈴木謙一 著)

    主要AIクローラーをまとめてブロックしたいときの記述例は以下です。

    User-agent: GPTBot
    Disallow: /

    User-agent: Google-Extended
    Disallow: /

    User-agent: CCBot
    Disallow: /

    User-agent: anthropic-ai
    Disallow: /

    サイトマップを指定したい

     

    クローラーにWebサイト全体の構造を正しく理解してもらうために、サイトマップ(sitemap.xml)を明示的に伝えることができます。

    書き方は以下の通りです(※User-agentの指定は不要です)。

    Sitemap: [absoluteURL]

    [absoluteURL]には、サイトマップの絶対URL(完全なURL)を入れましょう。絶対URLとは、プロトコル(httpsの部分)やドメイン名を省略しないURLです。

    Sitemap: https://example.com/sitemap.xml

    あるディレクトリにおいて特定のクローラーにのみ許可したい

    特定のディレクトリに対して、特定のクローラーのみにクロールを許可する場合は、次のように記述します。

    User-agent: *
    Disallow: /private/

    User-agent: hogehoge-bot
    Allow: /private/

    この例では、「hogehoge-bot」は「private」をクロールできますが、他のクローラーは「private」をクロールできません。

    PDFファイルのクロールを拒否したい

    PDFファイルのクロールを拒否したい場合は、次のように記述しましょう。

    User-agent: *
    Disallow: /*.pdf$

    ここでのドルマーク「$」は、URLの末尾を意味しています。この例では、全体のクロールは許可していますが、末尾が「.pdf」で終わるURLのみクロールできないようにしています。

    PDF以外のファイルも、同様の方法で設定可能です。

    ▼gifファイル(.gif)へのクロールを拒否する場合:

    User-agent: *
    Disallow: /*.gif$

    ▼エクセルファイル(.xls)へのクロールを拒否する場合:

    User-agent: *
    Disallow: /*.xls$

    特定パラメータを含むURLを拒否したい

    URLの後ろに特定のパラメータがついているURLのクロールを拒否したい場合は、次のように記述します。

    User-agent: *
    Disallow: /*?hogehoge=

    この例では、クローラーの種類を問わず、「?hogehoge=」というパラメータを含むURLのクロールを拒否します。

    サイト内に同じ内容の別URL(パラメータ違い)があると、その分だけクローラーが巡回してしまいます。たとえばhogehoge= を含むURLと含まないURLが同じ内容を返すとき、検索エンジンに重複コンテンツとして扱われる可能性があります。

    こうしたURLのクロールを制限することで、クローラーが本当に重要なページを優先して巡回できるようになり、結果としてクロール効率の向上につながります。

    注意点と文法チェックの方法

    robots.txtの設定はシンプルに見えますが、記述を誤ると意図しない動作を引き起こす恐れがあります。robots.txtの注意点と、robots.txtが正しく動いているかの確認方法についてもお伝えしておきましょう。

    1.優先順位を理解する

    robots.txtに記述されたルールには適用の優先順位があります。これは、複数のルールが同じURLにマッチした場合にどちらが適用されるかを決める仕組みです。Google検索セントラルでは、次のように定義されています。

    robots.txt ルールと URL との一致判定を行う際、クローラーはルールのパスの長さに基づいて最も限定的なルールを使用します。ワイルドカードを含むルールが競合する場合は、最も制限の少ないルールを使用します。
    ※引用:
    Google による robots.txt の指定の解釈「ルールの優先順位」

    例❶ 優先されるルールの違い

    以下の場合「Allow: /p」が適用されます。なぜなら、対象範囲がより限定されているためです。その結果、/p で始まるURL(例:/page、/product など)はクロールが許可され、それ以外は拒否されます。なお、ルールを記述する順番を変えても、優先順位は変わりません

    Allow: /p
    Disallow: /

    例❷ ルールの競合

    同じパスに対してAllowとDisallowを両方書くと、ルールが競合します。この場合、Googleは「より制限の少ないルール(=Allow)」を優先するため、「admin」へのクロールは許可されます。
    User-agent: *
    Allow: /admin/
    Disallow: /admin/

    この仕様を理解していないと、「Disallowを設定したのに、想定外にページがクロールされてしまう」といった事態につながりかねません。

    robots.txtを編集する際は、ルール同士が矛盾していないか、優先順位の影響を受けていないかを必ず確認することが重要です。

    2.ブロックしてもインデックスされる可能性がある

    robots.txtでクロールをブロックしても、外部サイトからのリンクなどによってページがインデックスされてしまう可能性があります。

    すでにインデックスされた不要なページを削除し、かつ今後のクロールも止めたい場合には、まずnoindexタグを検索エンジンに読み込ませてからrobots.txtでブロックします。これにより、ある程度インデックスされることを抑えることができます。

    また、重複コンテンツについては、noindexやrobots.txtでの対処を検討する前に、重複が発生しない仕様にするなど、重複自体を解消する根本的な対策を優先しましょう。

    文法チェック:Googleサーチコンソールを使う

    robots.txtの記述チェックには、Googleサーチコンソールが便利です。サーチコンソールの「設定」エリアにある「robots.txt」をクリックすると、robots.txtに関するレポートを確認できます。

    エラーがある場合は「問題の件数」欄に数値が表示されるので、robots.txt更新後は確認してみてください。

    なお、Googleが提供していた「robots.txtテスター」は、2023年12月12日に廃止されました。

    ※参考:
    Search Consoleヘルプ「robots.txt レポート」
    海外SEO情報ブログ「robots.txt テスターは廃止」

    robots.txt を正しく使おう

    robots.txtは、検索エンジンや生成AIのクローラーの動きを管理するテキストファイルです。

    とくに大規模サイトにとっては、積極的な活用をおすすめします。

    正しく設定すればサーバーの負荷軽減やセキュリティ面の向上にもつながります。

    ただし設定をまちがえるとWebサイト全体が検索結果に表示されなくなるリスクもはらんでいる諸刃の剣でもあります。

    不安や懸念点、robots.txtの対象ページで迷ったら設定の前に、当社・Faber Companyにご相談ください。テクニカルSEOを得意とするコンサルタントが、御社を支援します。

    SEOコンサルサービスの資料を読む(無料)
    SEOコンサルティングのサービス概要を見る
    本記事の著者
    長屋智揮
    長屋智揮
    XINOBIX 代表取締役
    この著者の記事をもっとみるarrow-right
    監修者
    竹村 数輝
    竹村 数輝
    Faber Company SEOコンサルタント
    この著者の記事をもっとみるarrow-right

    関連記事