robots.txtとは?概要と見方を解説

robots.txtの概要と見方を解説します。

robots.txtとは

webサイトの管理者が、クローラー(webサイトの情報を自動で収集するためのプログラム。要するにbot)に対して「どのページをクロールして良いか/ダメか」を伝えるためのテキストファイルで、多くのwebサイトでドメイン直下に配置されています。


これには法的な拘束力はなくあくまでもお願い文なのですが、やっぱりより良いインターネット社会を構築するためにもこういったことには準拠して行った方が良いんじゃないかなーと思います。


robots.txtの見方

robots.txtの例を見て見ましょう

robots.txt

robots.txtは、主にUser-agentと、Disallowと、Allow の3つから構成されます。


最初の3行に注目してみます

まずUser-agentは、制限対象のクローラーを指定します。1行目では、「User-agent: *」となっていますが、「*」は正規表現でワイルドカード(全て)を指す記号なので、 「User-agent: *」以下の項目は全てのクローラーに対して適用されるということになります。


Disallowは、アクセスを禁止するディレクトリを指定します。ですので、2行目の「Disallow: /foo」は、1行目と合わせて、全てのクローラーは/foo以下にアクセスしてはいけないということになります。


Allowは、名前の通り許可するディレクトリを指定する訳ですが、そもそもDisallowが適用されていないディレクトリは全て許可されている扱いになります。

ですので、Allowは、Disallowが適用されたディレクトリの一部を例外として許可する時に使います。従って、3行目は全てのクローラーは/foo以下へのアクセスが禁止されているが、例外的に/foo/bar以下へのアクセスは許可するという意味になります。


以上のように、1行目は多くの場合、「User-agent: *」で全てのクローラーに対する指示が記載されていますが、その項目以降は、5行目の「User-agent: ClaudeBot」や、8行目の「User-agent: Copilot」のように、個別のクローラーに対する処理が記載されます。


次の2行を見てみます

個別のクローラに書かれた処理は、「User-agent: *」の処理が1行目にあったとしても、個別の指示の方が優先されます。
すなわち例では、ClaudeBotは、「/」以下のディレクトリ、すなわち全てのディレクトリに対してアクセス禁止になります。


最後の3行も同様に、こちらの指示が優先されます。

Copilotは、/image以下以外の全てのディレクトリに対してアクセス禁止ということになります

まとめ

robots.txtの概要と、見方について解説しました。


紹介したもの以外にも、SEOに配慮した詳しい書き方とか、掘り下げたら色々あるので、機会があれば記事にしてみようと思います。


本当は、別の記事でクローラーを作る時にrobots.txtについてまとめる必要があって、急遽この記事を書いたという感じです。

なんかざっくりした感じになってしまい申し訳ありません


クローラー(と言えるほどのものかは別として)を作ってみた記事はこちらになります。興味あればぜひご覧ください