robots.txtファイルには、アクセスできるWebページとアクセスできないWebページを伝えるボットへの指示が含まれています。robots.txtファイルは、Googleなどの検索エンジンのWebクローラーに最も関連しています。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
robots.txtファイルは、ボットのための指示のセットです。このファイルは、ほとんどのWebサイトのソースファイルに含まれています。robots.txtファイルの主な目的は、ウェブクローラーなどの正当なボットのアクティビティを管理することです。悪意のあるボットは、指示に従う可能性が低いためです。
robots.txtファイルは、ジム、バー、公民館などの壁に掲示されている「行動規範」のようなモノです。看板自体は、掲載されている規則に対して強制力を持ちませんが、「正当な」利用者は規則に従い、「悪意のある」利用者は規則に違反し、出入り禁止となる可能性があります。
ボットは、Webサイトやアプリケーションを操作する自動化されたコンピュータープログラムです。正当なボットと悪意のあるボットがあり、正当なボットの1つのタイプはWebクローラーボットと呼ばれます。これらのボットはWebページを「クロール」し、コンテンツにインデックス付けして、検索エンジンの結果に表示できるようにします。robots.txtファイルは、これらのWebクローラーのアクティビティを管理して、WebサイトをホストしているWebサーバーに過負荷をかけたり、公開表示を意図しないページをインデックスに登録したりしないようにします。
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ページを見つけるためにこれを処理します。
Webクローラーボットは、robots.txtファイル内の最も具体的な一連の指示に従います。ファイルに矛盾するコマンドがある場合、ボットはより詳細なコマンドに従います。
注意すべき重要な点は、すべてのサブドメインに独自のrobots.txtファイルが必要なことです。たとえば、www.cloudflare.comには独自のファイルがありますが、すべてのCloudflareサブドメイン(blog.cloudflare.com、community.cloudflare.comなど)にも独自のファイルが必要です。
ネットワークでは、プロトコルは命令またはコマンドを提供するための形式です。robots.txtファイルは、いくつかの異なるプロトコルを使用します。主なプロトコルは、ロボット排除プロトコルと呼ばれます。これは、ボットに回避すべきWebページとリソースを伝える方法です。このプロトコル用にフォーマットされた手順は、robots.txtファイルに含まれています。
robots.txtファイルに使用される他のプロトコルは、サイトマッププロトコルです。これは、ロボット包含プロトコルと見なすことができます。サイトマップは、ウェブクローラーがどのページをクロールできるかを示します。これにより、クローラーボットが重要なページを見逃さないようにすることができます。
www.cloudflare.comのrobots.txtファイルは次のとおりです。
以下で、これが何を意味するかを説明します。
インターネット上でアクティブな人またはプログラムには、「ユーザーエージェント」、つまり割り当てられた名前があります。人間のユーザーの場合、これにはブラウザーの種類やオペレーティングシステムのバージョンなどの情報が含まれますが、個人情報は含まれません。 Webサイトがユーザーのシステムと互換性のあるコンテンツを表示するのに役立ちます。ボットの場合、ユーザーエージェントは(理論的に)Webサイト管理者がサイトをクロールしているボットの種類を知るのに役立ちます。
robots.txtファイルでは、Webサイト管理者は、ボットユーザーエージェントに対して異なる指示を記述することにより、特定のボットに特定の指示を提供できます。たとえば、ある管理者が、特定のページをGoogleの検索結果に表示させたいが、Bingの検索結果には表示させたくないとします。この場合、robots.txtファイル内に2組のコマンドを含めることができます。「ユーザーエージェント:Bingbot」で始める1組と、「ユーザーエージェント:Googlebot」です。
上記の例では、Cloudflareはrobots.txtファイルに「ユーザーエージェント:*」を含めています。アスタリスクは「ワイルドカード」ユーザーエージェントを表し、特定のボットではなく、すべてのボットに指示が適用されることを意味します。
一般的な検索エンジンのボットのユーザーエージェント名には以下があげられます。
Google:
Bing
Baidu
Disallowコマンドは、ロボット除外プロトコルで最も一般的です。コマンドの後に来るWebページまたはWebページのセットにアクセスしないようにボットに指示します。許可されていないページは必ずしも「隠されて」いるわけではありません。GoogleやBingの平均的なユーザーにとっては役に立たないため、表示されません。ほとんどの場合、Webサイトのユーザーは、それらの場所を知っていれば、これらのページに移動できます。
Disallowコマンドはさまざまな方法で使用でき、上記の例ではそのいくつかを示しています。
例として、Cloudflareがボットに「ボットとは?」という記事をクロールされるのをブロックしたい場合、そのようなコマンドは次のように記述されます。
Disallow: /learning/bots/what-is-a-bot/
「disallow」コマンドの後に、ホームページの後に続くWebページのURLの部分(この場合は「www.cloudflare.com」)が含まれます。このコマンドがあると、正当なボットはhttps://www.cloudflare.com/learning/bots/what-is-a-bot/にアクセスしなくなり、ページが検索エンジンの結果に表示されなくなります。
すべてのページを個別にリストするのではなく、複数のページを一度にブロックする方が効率的な場合があります。それらがすべてWebサイトの同じセクションにある場合、robots.txtファイルはそれらを含むディレクトリをブロックするだけでいいのです。
上記の例:
Disallow: /__mesa/
これは、__mesaディレクトリ内に含まれるページはすべてクロールしてはならないことを意味します。
このようなコマンドは次のようになります。
Disallow:
これはボットにWebサイト全体を閲覧できることを伝えます。何も禁止されていないためです。
Disallow: /
ここで「/」は、Webサイトの階層の「ルート」、つまり他のすべてのページの分岐元となるページを示します。つまり、ホームページとそこからリンクされたすべてのページを含んでいます。このコマンドを使用すると、検索エンジンボットはWebサイトをまったくクロールできません。
つまり、1つのスラッシュで検索可能なインターネットからWebサイト全体を削除できるのです。
Allow: 予想どおり、「Allow」コマンドは、特定のWebページまたはディレクトリへのアクセスを許可されていることをボットに伝えます。このコマンドにより、ボットは特定のWebページにアクセスできるようになりますが、ファイル内のその他のWebページは許可されなくなります。すべての検索エンジンがこのコマンドを認識するわけではありません。
Crawl-delay: クロール遅延コマンドは、検索エンジンのスパイダーボットによるサーバーへの過負荷を防ぐためのものです。これにより、管理者は各リクエスト間でボットが待機する時間をミリ秒単位で指定できます。8ミリ秒待機するクロール遅延コマンドの例を次に示します。
Crawl-delay: 8
Googleはこのコマンドを認識しませんが、他の検索エンジンは認識します。 Googleの場合、管理者はGoogle Search ConsoleでWebサイトのクロール頻度を変更できます。
サイトマッププロトコルは、ボットがWebサイトのクロールに何を含めるべきかを知るのに役立ちます。
サイトマップは、次のようなXMLファイルです。
これは、Webサイト上のすべてのページの機械可読リストです。サイトマッププロトコルを介して、これらのサイトマップへのリンクをrobots.txtファイルに含めることができます。形式は「Sitemaps:」の後にXMLファイルのWebアドレスが続きます。上記のCloudflare robots.txtファイルでいくつかの例を見ることがでます。
サイトマッププロトコルは、WebスパイダーボットがWebサイトをクロールするときに何かを見逃さないようにするのに役立ちますが、ボットは引き続き通常のクロールプロセスに従います。サイトマップは、クローラーボットにWebページの優先順位を強制することはありません。
ボット管理は、Webサイトまたはアプリケーションの稼働を維持するために不可欠です。これは、正当なボットアクティビティでさえ、オリジンサーバーに負荷をかけ、Webプロパティの速度低下または停止につながる可能性があるためです。適切に構成されたrobots.txtファイルは、SEO向けに最適化されたWebサイトを維持し、正当なボットアクティビティを制御します。
しかし、robots.txtファイルは悪意のあるボットのトラフィック管理には、あまり効果がありません。Cloudflare Bot ManagementやSuper Bot Fight Modeなどのボット管理ソリューションは、Webクローラーなどの重要なボットに影響を与えることなく、悪意のあるボットの活動の抑制に役立てることが出来ます。
時に、robots.txtファイルにはイースターエッグと呼ばれる、面白い文章が含まれる場合があります。これらのファイルがめったにユーザーの目に触れないため、開発者が書き込んだものです。たとえば、 YouTube robots.txtファイルには、「90年代半ばのロボット蜂起によりすべての人間が一掃された後の遠い未来(2000年)に作成された。」と書かれています。Cloudflare robots.txtファイルは、「ロボットさん、いい子にしてね」とお願いしています。
# .__________________________.
# | .___________________. |==|
# | | ................. | | |
# | | ::[ Dear robot ]: | | |
# | | ::::[ be nice ]:: | | |
# | | ::::::::::::::::: | | |
# | | ::::::::::::::::: | | |
# | | ::::::::::::::::: | | |
# | | ::::::::::::::::: | | ,|
# | !___________________! |(c|
# !_______________________!__!
# / \
# / [][][][][][][][][][][][][] \
# / [][][][][][][][][][][][][][] \
#( [][][][][____________][][][][] )
# \ ------------------------------ /
# \______________________________/
Googleはまた、「humans.txt」ファイルも、以下で保持しています: https://www.google.com/humans.txt