Robots.txtとは?| Robots.txtファイルの仕組み

robots.txtファイルには、Webサイトがボットに対してどう行動してほしいかが記述されています。このファイルを使用して、ボットに、アクセスすべきWebページとアクセスしてはいけないWebページを伝えます。Robots.txtは、主にWebクローラーに向けて使用されます。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • robots.txtファイルとは何かを学ぶ
  • ボットとrobots.txtファイルの相互作用を理解する
  • Robots Exclusion ProtocolやSitemapsなど、robots.txtファイルで使用されているプロトコルを調べる

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

Cloudflareでクレデンシャルスタッフィングやコンテンツスクレイピングなどのボット攻撃を防御する

robots.txtとは?

OSI参照モデル

robots.txtファイルは、ボットに与えるガイドラインのセットです。このファイルは、ほとんどのWebサイトのソースファイルに含まれています。robots.txtファイルは、Webクローラーのようなボットのアクティビティを管理することを目的としていますが、すべてのボットがこのファイルの指示に従うとは限りません。

robots.txtファイルは、ジム、バー、公民館などの壁に掲示されている「行動規範」のようなモノです。看板自体は、掲載されている規則に対して強制力を持ちませんが、「正当な」利用者は規則に従い、「悪意のある」利用者は規則に違反し、出入り禁止となる可能性があります。

ボットは、Webサイトやアプリケーションを操作する自動化されたコンピュータープログラムです。ボットの1つに、Webクローラーボットと呼ばれるものがあります。これらのボットはWebページを「クロール」し、コンテンツにインデックス付けして、検索エンジンの結果に表示できるようにします。robots.txtファイルは、これらのWebクローラーのアクティビティを管理して、WebサイトをホストしているWebサーバーに過負荷をかけたり、一般に公開したくないページをインデックスに登録しないようにします。robots.txtファイルを使用して、AIクローラーボットの動作を制御することもできます。AIクローラーボットはWebサーバーに対し、時には従来のWebクローラーボットよりもはるかに多くの負荷をかけることがあります。

robots.txtファイルの仕組みは?

robots.txtファイルは、HTMLマークアップコードのない単なるテキストファイルです(したがって.txt拡張子)。robots.txtファイルは、Webサイトの他のファイルと同様にWebサーバーでホストされます。実際、任意のWebサイトのrobots.txtファイルは、通常、ホームページの完全なURLを入力して/robots.txtを追加すると表示できます。https://www.cloudflare.com/robots.txt のような形です。このファイルはサイトの他のどこにもリンクされていないため、ユーザーの目に触れることはほとんどありませんが、ほとんどのWebクローラーボットはサイトの他の部分をクロールする前にまずこのファイルを検索します。

robots.txtファイルはボットに指示を与えますが、その指示を強制することはできません。一部のボット、例えばWebクローラーやニュースフィードボットは、ドメイン内の他のページを閲覧する前にまずrobots.txtファイルにアクセスし、指示に従うことがあります。一部のボットには、robots.txtファイルを無視したり、このファイルを読み取って、禁止されているWebページを探そうとするものもあります。

robots.txtに従うWebクローラーボットは、robots.txtファイル内の最も具体的な一連の指示に従います。もし矛盾する指示が書かれていた場合は、より細かく指定された方の指示に従います。

注意すべき重要な点は、すべてのサブドメインに独自のrobots.txtファイルが必要なことです。たとえば、www.cloudflare.comには独自のファイルがありますが、すべてのCloudflareサブドメイン(blog.cloudflare.com、community.cloudflare.comなど)にも独自のファイルが必要です。

robots.txtファイルで使用されているプロトコルは何か?

ネットワークでは、プロトコルは命令またはコマンドを提供するための形式です。robots.txtファイルは、いくつかの異なるプロトコルを使用します。主なプロトコルは、ロボット排除プロトコルと呼ばれます。これは、ボットに回避すべきWebページとリソースを伝える方法です。このプロトコル用にフォーマットされた手順は、robots.txtファイルに含まれています。

robots.txtファイルに使用される他のプロトコルは、サイトマッププロトコルです。これは、ロボット包含プロトコルと見なすことができます。サイトマップは、ウェブクローラーがどのページをクロールできるかを示します。これにより、クローラーボットが重要なページを見逃さないようにすることができます。

robots.txtファイルの例

以下は、www.cloudflare.comで以前使用していた古いバージョンのrobots.txtファイルです:

robots.txtファイルの例

以下で、これが何を意味するかを説明します。

ユーザーエージェントとは?「ユーザーエージェント:*」とは何を意味するのか?

インターネット上でアクティブな人またはプログラムには、「ユーザーエージェント」、つまり割り当てられた名前があります。人間のユーザーの場合、これにはブラウザーの種類やオペレーティングシステムのバージョンなどの情報が含まれますが、個人情報は含まれません。 Webサイトがユーザーのシステムと互換性のあるコンテンツを表示するのに役立ちます。ボットの場合、ユーザーエージェントは(理論的に)Webサイト管理者がサイトをクロールしているボットの種類を知るのに役立ちます。

robots.txtファイルでは、Webサイト管理者は、ボットユーザーエージェントに対して異なる指示を記述することにより、特定のボットに特定の指示を提供できます。たとえば、ある管理者が、特定のページをGoogleの検索結果に表示させたいが、Bingの検索結果には表示させたくないとします。この場合、robots.txtファイル内に2組のコマンドを含めることができます。「ユーザーエージェント:Bingbot」で始める1組と、「ユーザーエージェント:Googlebot」です。

上記の例では、Cloudflareはrobots.txtファイルに「User-agent: *」と記述していました。アスタリスクは「ワイルドカード」ユーザーエージェントを表し、特定のボットだけではなく、すべてのボットに指示が適用されることを意味します。

一般的な検索エンジンのボットのユーザーエージェント名には以下があげられます。

Google:

  • Googlebot
  • Googlebot-Image (画像用)
  • Googlebot-News (ニュース用)
  • Googlebot-Video (動画用)

Bing

  • Bingbot
  • MSNBot-Media (画像および動画用)

Baidu

  • Baiduspider

robots.txtファイルで「Disallow」コマンドはどのように機能するのか?

Disallowコマンドは、ロボット除外プロトコルで最も一般的です。コマンドの後に来るWebページまたはWebページのセットにアクセスしないようにボットに指示します。許可されていないページは必ずしも「隠されて」いるわけではありません。GoogleやBingの平均的なユーザーにとっては役に立たないため、表示されません。ほとんどの場合、Webサイトのユーザーは、それらの場所を知っていれば、これらのページに移動できます。

Disallowコマンドはさまざまな方法で使用でき、上記の例ではそのいくつかを示しています。

1つのファイル(つまり、1つの特定のWebページ)をブロックします

例として、Cloudflareがボットに「ボットとは?」という記事をクロールされるのをブロックしたい場合、そのようなコマンドは次のように記述されます。

Disallow: /learning/bots/what-is-a-bot/

「disallow」コマンドの後に、ホームページの後に続くWebページのURLの部分(この場合は「www.cloudflare.com」)という記述があります。このコマンドが書かれていると、robots.txtの指示に従うボットは「https://www.cloudflare.com/ja-jp/learning/bots/what-is-a-bot/」にアクセスしなくなり、そのページはおそらく検索エンジンの結果に表示されなくなります。

1つのディレクトリをブロック

すべてのページを個別にリストするのではなく、複数のページを一度にブロックする方が効率的な場合があります。それらがすべてWebサイトの同じセクションにある場合、robots.txtファイルはそれらを含むディレクトリをブロックするだけでいいのです。

上記の例:

Disallow: /__mesa/

これは、__mesaディレクトリ内に含まれるページはすべてクロールしてはならないことを意味します。

フルアクセスを許可

このようなコマンドは次のようになります。

Disallow:

これはボットにWebサイト全体を閲覧できることを伝えます。何も禁止されていないためです。

ボットからWebサイト全体を隠します

Disallow: /

ここで「/」は、Webサイトの階層の「ルート」、つまり他のすべてのページの分岐元となるページを示します。つまり、ホームページとそこからリンクされたすべてのページを含んでいます。このコマンドを使用すると、検索エンジンボットはWebサイトをまったくクロールしなくなります。

Robots Exclusion Protocolに含まれる他のコマンドとは?

Allow: 名前のとおり、「Allow」コマンドは、特定のWebページまたはディレクトリへのアクセスを許可していることをボットに伝えます。このコマンドは、Webサイトがボットに特定のWebページへのアクセスを許可する一方で、残りのWebページにはアクセスさせたくないという考えを示すものです。すべての検索エンジンがこのコマンドを認識するわけではありません。

Crawl-delay: クロール遅延コマンドは、検索エンジンのスパイダーボットによるサーバーへの過負荷を防ぐためのものです。これにより、管理者は各リクエスト間でボットが待機する時間をミリ秒単位で指定できます。8ミリ秒待機するクロール遅延コマンドの例を次に示します。

Crawl-delay: 8

Googleはこのコマンドを認識しませんが、他の検索エンジンは多くの場合認識します。Googleの場合、管理者はGoogle Search ConsoleでWebサイトのクロール頻度を変更できます。

サイトマッププロトコルとは?これがrobots.txtに含まれている理由とは?

サイトマッププロトコルは、ボットがWebサイトのクロールに何を含めるべきかを知るのに役立ちます。

サイトマップは、次のようなXMLファイルです。

サイトマップの例

これは、Webサイト上のすべてのページの機械可読リストです。サイトマッププロトコルを介して、これらのサイトマップへのリンクをrobots.txtファイルに含めることができます。形式は「Sitemaps:」の後にXMLファイルのWebアドレスが続きます。上記のCloudflare robots.txtファイルでいくつかの例を見ることがでます。

サイトマッププロトコルは、WebスパイダーボットがWebサイトをクロールするときに何かを見逃さないようにするのに役立ちますが、ボットは引き続き通常のクロールプロセスに従います。サイトマップは、クローラーボットにWebページの優先順位を強制することはありません。

robots.txtはボット管理とどのように関連するか?

ボット管理は、Webサイトまたはアプリケーションの稼働を維持するために不可欠です。これは、正当なボットアクティビティでさえ、配信元サーバーに負荷をかけ、Webプロパティの速度低下または停止につながる可能性があるためです。適切に構成されたrobots.txtファイルは、WebサイトをSEOに最適化された状態に維持し、きちんとrobots.txtに従うボットの活動を制御します。robots.txtファイルは、悪意のあるボットの制御にはあまり効果がありません。

robots.txtは、その重要性にもかかわらず、2025年のCloudflareの調査では、上位1万件のWebサイトのうち、robots.txtファイルを配置しているサイトはわずか37%でした。これは、多くの割合、あるいは過半数のウェブサイトがこの機能を使用していないことを意味します。これらのWebサイト、特にAIの学習に自分のオリジナルコンテンツを使用されたくないと考えるWebサイトを支援するために、Cloudflareは「マネージドrobots.txt」を提供しています。これは、Webサイトの運営者の代わりにrobots.txtファイルを作成または更新して必要な設定を行うサービスです。マネージドrobots.txtの詳細については、こちらをご覧ください。

Robots.txtイースターエッグ

時に、robots.txtファイルにはイースターエッグと呼ばれる、面白い文章が含まれる場合があります。これらのファイルがめったにユーザーの目に触れないため、開発者が書き込んだものです。たとえば、 YouTube robots.txtファイルには、「90年代半ばのロボット蜂起によりすべての人間が一掃された後の遠い未来(2000年)に作成された。」と書かれています。Cloudflare robots.txtファイルは、「ロボットさん、いい子にしてね」とお願いしています。


#    .__________________________.
#    | .___________________. |==|
#    | | ................. | |  |
#    | | ::[ Dear robot ]: | |  |
#    | | ::::[ be nice ]:: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | | ,|
#    | !___________________! |(c|
#    !_______________________!__!
#   /                            \
#  /  [][][][][][][][][][][][][]  \
# /  [][][][][][][][][][][][][][]  \
#(  [][][][][____________][][][][]  )
# \ ------------------------------ /
#  \______________________________/

Googleはまた、「humans.txt」ファイルも、以下で保持しています: https://www.google.com/humans.txt

よくある質問

robots.txtファイルとは?

robots.txtファイルは、Webサイトのソースファイルにある、Webサイトがボットに対してどう行動してほしいかが記述されたファイルです。このファイルは、検索エンジンのWebクローラーのような正当なボットに、Webサイト内のアクセスしても良い部分、アクセスを控えるべき部分のガイダンスを提供します。また、トラフィックの管理やインデックス作成の制御に役立ちます。AIクローラーに対するルールも、このファイルに記述することができます。

Webクローラーとは?

「Webクローラー」は、検索に訪れたユーザーのために、自動で検索エンジンのWebページを訪問してインデックスを作成し、コンテンツを見つけやすくするボットです。

ロボット排除プロトコルとは?

「ロボット排除プロトコル(REP)」は、robots.txtファイルに記述する指示の形式です。このプロトコルを記述して、Webクローラーに、どのWebページやリソースへのアクセスやクロールを禁止するかを指示します。

robots.txtファイル内の「User-agent」の意味は?

「User-agent」には、robots.txtファイル内の指示を適用したいボットまたはボットグループを指定します。「User-agent: *」と記述した場合、すべてのボットにルールが適用されることになります。

robots.txtのDisallowコマンドとは?

Disallowコマンドでは、ボットにクロールして欲しくないWebサイト上の特定のページやディレクトリを指示します。たとえば、「Disallow: /private/」と記述した場合、ボットに「private」ディレクトリへのアクセスの禁止を指示します。

robots.txtにおけるサイトマッププロトコルとは?

「サイトマッププロトコル」とは、Webサイトの運営者がrobots.txtファイルにサイトマップのXMLファイル(sitemap.xml)へのリンクを記載することで、ロボットにクロールしてほしいページを知らせることができます。

正当なボットと悪意のあるボットとの違いとは?

正当なボットはrobots.txtの指示に従う可能性が高く、有用なサービスも提供します。たとえば、検索エンジンのWebクローラーは通常、robots.txtに記載されたルールに従いながら検索用コンテンツのインデックスを作成します。悪意のあるボットは、robots.txtを無視して、コンテンツをスクレイピングしたり、Webサイトを攻撃したり、過剰なリクエストを送信してWebサイトに負荷をかけることがあります。

robots.txt内のCrawl-delayコマンドの機能は?

Crawl-delayコマンドでは、サーバーに過負荷がかからないように、リクエストとリクエストの間で待機する時間をボットに指示します。すべてのボットがこのコマンドを尊重するわけではありません。たとえば、Googlebotはこれを無視しますが、代わりにGoogleはGoogle Search Consoleを通じてWebサイト管理者が同様のルールを設定できるようにしています。

robots.txtを設定するとSEO最適化にどのような影響がありますか?

適切に構成されたrobots.txtファイルは、検索エンジンクローラーボットにどのページをインデックスするかを指示することで、SEOを向上させることができます。これにより、不要なコンテンツや重複コンテンツがインデックスされるのを防ぐことができます。さらに、robots.txtは、WebクローラーがSitemapsを介してインデックスすべきすべてのページを見つけるのを支援します。