SEO内部対策!クローラーを制御するためのrobots.txtの書き方(2/3ページ)

robots.txtの記載内容

robots.txtの記載する内容は以下のようになっています。

User-Agent:*
Disallow:/aaa/
Allow:/aaa/index.html
Sitemap:http://example.com/sitemap.xml

それぞれの項目の詳しい説明は以下のようになります。

User-Agent

User-Agentはクローラーの種類を指定して、そのクローラーのみにその内容を伝えることができます。

User-AgentのGoogleとBingの例を以下に記載しておきます。YahooはGoogleと同じなのでGoogleのユーザーエージェントで大丈夫です。

*全てのクローラー
GooglebotGoogle検索
Googlebot-ImageGoogle画像検索
Googlebot-MobileGoogleモバイル検索
bingbotBing検索

以上のようになります。具体例としていくつか挙げておきます。なお、User-Agent以外の項目はすべて同じとして、それらの意味については後述しますので、ここではUser-Agentのみに注目してください。

全てのクローラーを制御
User-Agent:*
Disallow:/aaa/
Allow:/aaa/index.html
Sitemap:http://example.com/sitemap.xml
Bingのクローラーのみを制御
User-Agent:bingbot
Disallow:/aaa/
Allow:/aaa/index.html
Sitemap:http://example.com/sitemap.xml
GoogleとBingのみを制御

この場合は以下のようにUser-Agentの行を増やします。

User-Agent:Googlebot
User-Agent:bingbot
Disallow:/aaa/
Allow:/aaa/index.html
Sitemap:http://example.com/sitemap.xml

Googleにはhttp://examle.com/aaa.htmlをブロック、Bingにはファイルhttp://examle.com/bbb.htmlをブロック

この場合はブロックするファイルは違うので、以下のように同じファイルの中で、ユーザーエージェントごとに以下のように分けて書きます。なお、ブロックするファイルDisallowで指定しますが、この書き方については後述します。

User-Agent:Googlebot
Disallow:/aaa.html
Sitemap:http://example.com/sitemap.xml

User-Agent:bingbot
Disallow:/bbb.html
Sitemap:http://example.com/sitemap.xml

Disallow

Disallowはアクセスしてほしくないフォルダ、およびファイルを指定して、クロールさせないようにすることができます。

それぞれ、フォルダとファイルを指定する書き方は、以下のようになります。

指定しない

Disallow:

クロールをブロックしたいものがなければ、以上のようにDisallowを空にして記載します。Disallow自体を省略することはできません。

フォルダを指定

Disallow:/aaa/

これはhttp://example.com/aaa/のフォルダの中にあるすべてのファイルとフォルダをクロール禁止にします。フォルダを指定する場合には必ず最後にスラッシュを付けるようにしてください。「Disallow:/」のようにスラッシュだけ指定すると、すべてのフォルダとファイルをアクセス禁止にします。

ファイルを指定

Disallow:/aaa/index.html

このように記載すると、http://example.com/aaa/index.htmlのファイルをクロール禁止にします。間違えて最後にスラッシュを入れると、フォルダとして認識されてしまうので注意してください。

2個以上のファイルおよびフォルダを指定

Disallow:/aaa/index.html
Disallow:/aaa/bbb.html
Disallow:/aaa/abc/

このように記載すると、http://example.com/aaa/index.htmlのファイル、http://example.com/aaa/bbb.htmlのファイル、http://example.com/aaa/abcのフォルダをブロックします。このように、複数のファイルやフォルダを指定するときは、Disallowをその数だけ記載してください。

また、フォルダとファイルの指定には正規表現を使うこともできます。ここで使う正規表現は以下の通りです。

全ての文字に一致
$文字列の末尾

正規表現を使った書き方の例は以下のようになります。

Disallow:/image/*.jpg$

imageフォルダの.jpgの名前で終わるファイルをブロックします。ブロックするファイルの例は以下のようになります。

  • /image/aaa.jpg
  • /image/example.jpg
  • /image/abc.jpg
  • /image/ccc/ddd/eee.jpg

これは、*で「image/」と「.jpg」の間をすべての文字列に指定しているので、スラッシュもそれに含まれます。よって最後の/image/ccc/ddd/eee.jpgのように、フォルダが何階層でも、imageフォルダの中にあればブロックされるということに注意してください。

Disallow:/image/*.jpg

これは上記の例の最後の$を取り除いたパターンです。imageフォルダの中にある.jpgの名前が付いたファイルをブロックします。ブロックするファイルの例は以下のようになります。

  • /image/aaa.jpg
  • /image/example.jpg
  • /image/abc.jpg
  • /image/ccc/ddd/eee.jpg
  • /image/aaa.jpgabc

ここで、注意してほしいのは、末尾を表す$がないので、途中まで/image/*.jpgの表現に当てはまれば、それ以降の文字列が何であっても、そのファイルも指定されます。よって、最後の/image/aaa.jpgabcは、/image/*.jpgに途中まで当てはまるので、このファイルもブロックされてしまうことになります。

このように末尾表現をつけなければ、他のファイルも指定されてしまう場合もあるので、きちんと区別したければ$を末尾に付けるようにしましょう。特に注意なのは.htmで、末尾表現を付けなければ.htmlのファイルも指定されてしまいます。

Disallow:/image/a*

/image/aから始まるすべてのファイルとフォルダがブロックされます。

  • /image/aaa.jpg
  • /image/abc.gif
  • /image/acc/
  • /image/ahh/ggg/index.html
Disallow:/image/a*t/

image/aから始まり、t/で終わるフォルダがブロックされます。

  • /image/art/
  • /image/abct/
  • /image/agg/jjj/oot/

注意したいのは、「image/a」から「t/」までの文字は何でもよいので、最後の/image/agg/jjj/oot/のように下の階層にあるフォルダも、当てはまるものがあれば指定されるいうことです。

Allow

Allowはクロールを許可するファイルやフォルダを指定します。これは主にDisallowと一緒に書くべきで、Disallowで指定したフォルダの中にクロールさせたいものがあれば、それをAllowに指定することでクロールされるようになります。

Disallowで指定するものがない、またはDisallowで指定したものの中にクロールさせたいものがなければ、これは省略できます。

主な書き方は以下のようで、Disallowと同じように正規表現も使うことができます。

Disallow:/image/
Allow:/image/*.jpg$

このように書くと、imageフォルダの中のファイルとフォルダのクロールをブロックすることができますが、Allowによって、imageフォルダの中の.jpgで名前が終わるファイルについてはクロールを許可するようにしています。

この場合の、ブロックされるものと、されないものは以下のようになります。

ブロックされるもの
  • /image/aaa.gif
  • /image/bbb.gif
  • /image/ccc/eee.png
許可されるもの
  • /image/aaa.jpg
  • /image/bbb.jpg
  • /image/ccc/eee.jpg