robots.txt を使用して URL をブロックする

robots.txt ファイルを作成する

はじめに

robots.txt ファイルは、1 つまたは複数のルールで構成されます。各ルールは、特定のクローラに対して、対象ウェブサイト内の特定のファイルパスへのアクセスをブロック(または許可)します。

2 つのルールで構成される簡単な robots.txt ファイルの例を以下に示します。

User-agent: Googlebot
Disallow: /nogooglebot/

User-agent: *
Allow: /

Sitemap: http://www.example.com/sitemap.xml

 

説明:

  1. 「Googlebot」クローラという名前のユーザー エージェントは、フォルダ「http://example.com/nogooglebot/」やそのサブディレクトリをクロールできません。
  2. 他のユーザー エージェントは、すべてサイト全体にアクセスできます(デフォルトでフルアクセス権限が付与されるため、このルールを省略しても結果は同じになります)。
  3. サイトのサイトマップ ファイルが http://www.example.com/sitemap.xml にあります。

詳細な例については、下記をご覧ください。

robots.txt の基本的なルール

robots.txt ファイルには、基本的なルールがいくつかあります。robots.txt テスターというツールを使用して、ご自分のサイトを対象に robots.txt ファイルの作成や編集を行ってみてください。このツールを使用すると、サイトに対して構文と動作をテストできます。その後で、robots.txt ファイルの完全な構文についてご確認ください(robots.txt の構文は、見た目から受ける印象よりも少々複雑です)。

ファイル形式と場所

robots.txt ファイルの作成には、ほぼあらゆるテキスト エディタを使用できます。ただし、使用するテキスト エディタは、標準の ASCII または UTF-8 のテキスト ファイルを作成できるものでなければなりません。ワープロは使用しないでください(ワープロは、固有の形式でファイルを保存することが多く、カーリー クォートなど想定外の文字が追加されることもあるため、クローラの動作に問題が生じる可能性があります)。

ファイル形式と場所に関するルール:

  • robots.txt は、ASCII または UTF-8 のテキスト ファイルです。他の文字は使用できません。
  • ファイルの名前は「robots.txt」でなければなりません。
  • 各サイトに含めることができる robots.txt ファイルは 1 つだけに限られます。
  • robots.txt ファイルは、適用するウェブサイト ホストのルートに配置する必要があります。たとえば、http://www.example.com/ の下にあるすべての URL に対するクロールを制御するには、robots.txt ファイルの場所を「http://www.example.com/robots.txt」にする必要があります。サブディレクトリ(例: http://example.com/pages/robots.txt)には配置できません。ウェブサイトのルートへのアクセス方法が不明な場合や、アクセスするための権限が必要な場合は、ご利用のウェブ ホスティング サービス プロバイダにお問い合わせください。ウェブサイトのルートにアクセスできない場合は、メタタグなど、別のブロック方法を使用してください。
  • robots.txt ファイルは、サブドメイン(例: http://website.example.com/robots.txt)や、標準以外のポート(例: http://example.com:8181/robots.txt)に適用することもできます。

構文

  • robots.txt ファイルは、1 つまたは複数のルールセットで構成されます。
  • 各ルールは、1 つまたは複数のユーザー エージェントを指定して、そのエージェントによるアクセスを許可する(または許可しない)ディレクトリやファイルを指定します。
  • ルールは上から下に順番に処理され、各ユーザー エージェントにはルールセットが 1 つだけ適用されます(そのユーザー エージェントが適合する最初の最も限定的なルールが適用されます)。
  • デフォルト設定では、ユーザー エージェントは「Disallow:」ルールでブロックされていないページやディレクトリをクロールできます。
  • ルールでは大文字と小文字が区別されます。たとえば、「Disallow: /file.asp」は、http://www.example.com/file.asp には適用されますが、http://www.example.com/File.asp には適用されません。

robots.txt ファイル内で使用されるキーワードは次のとおりです。

  • User-agent: (必須。ルールごとに 1 つまたは複数)ルールの適用対象となる検索エンジン ロボット(ウェブクローラ ソフトウェア)の名前。大半のユーザー エージェント名は、Web Robots DatabaseGoogle のユーザー エージェント一覧に掲載されています。パスのプレフィックスやサフィックス、文字列全体に対してワイルドカード(*)を使用できます。下記の例のようにアスタリスク(*)を使用すると、各種 AdsBot クローラを除くすべてのクローラに適用されます。AdsBot クローラは明示的に指定する必要があります(Google クローラ名のリストをご覧ください)。
    # AdsBot クローラを除くすべてのクローラをブロック
    User-agent: *
  • Disallow: (ルールごとに Disallow または Allow のいずれかが少なくとも 1 つ必要)ユーザー エージェントによるクロールを許可しないディレクトリやページ(ルートドメインに対する相対 URL)。ページの場合は、ブラウザで表示される完全なページ名にする必要があります。ディレクトリの場合は、末尾を「/」にする必要があります。パスのプレフィックスやサフィックス、文字列全体に対してワイルドカード(*)を使用できます。
  • Allow: (ルールごとに Disallow または Allow のいずれかが少なくとも 1 つ必要)ユーザー エージェントによるクロールを許可するディレクトリやページ(ルートドメインに対する相対 URL)。Allow を使用すると、Disallow をオーバーライドして、許可されていないディレクトリ内のサブディレクトリやページのクロールを許可できます。ページの場合は、ブラウザで表示される完全なページ名にする必要があります。ディレクトリの場合は、末尾を「/」にする必要があります。パスのプレフィックスやサフィックス、文字列全体に対してワイルドカード(*)を使用できます。
  • Sitemap: (省略可。複数可。ファイル単位で指定)対象ウェブサイトのサイトマップがある場所。この行は省略可能です。また、複数のサイトマップを指定することもできます。1 つの行に 1 つのサイトマップを指定します。サイトマップは、Google によるクロールを許可するコンテンツや許可しないコンテンツを指定するのではなく、Google でクロールする必要のあるコンテンツを指定するのに適した手段です。サイトマップの詳細についてご確認ください。

不明なキーワードは無視されます。

他のファイル例

robots.txt ファイルは、1 つまたは複数のルールセットで構成されます。各ルールセットは User-agent 行で始まり、この行でルールの適用対象を指定します。2 つのルールで構成されるファイルの例を以下に示します。インライン コメントは各ルールを説明しています。

# 「example.com/directory1/...」と「example.com/directory2/...」を googlebot からブロック
# ただし、「directory2/subdirectory1/...」へのアクセスは許可
# サイト内の他のディレクトリはすべてデフォルトで許可されています。
User-agent: googlebot
Disallow: /directory1/
Disallow: /directory2/
Allow: /directory2/subdirectory1/

# サイト全体を anothercrawler からブロック
User-agent: anothercrawler
Disallow: /

robots.txt の完全な構文

robots.txt の完全な構文については、こちらをご覧ください。robots.txt の構文には少々複雑な部分がありますので、ドキュメント全体をよく読んで、十分に理解するようにしてください。

実用的な robots.txt のルール

一般的に役に立つ robots.txt のルールは次のとおりです。

ルール
ウェブサイト全体でクロールを禁止する -  ただし、場合によっては、クロールされていなくてもウェブサイトの URL がインデックスに登録されることがあります。また、このルールは、各種 AdsBot クローラには適用されません(AdsBot クローラは、明示的に指定する必要があります)。
User-agent: *
Disallow: /
ディレクトリとそのコンテンツのクロールを禁止する - ディレクトリ名の後にスラッシュを付けます。非公開コンテンツへのアクセスをブロックする場合は、robots.txt を使用するのではなく、適切な認証方法を使用してください。robots.txt ファイルでブロックしている URL であっても、クロールされないままインデックスに登録されることがあります。また、robots.txt ファイルは誰でも見ることができるため、非公開コンテンツの場所を知られてしまう可能性があります。
User-agent: *
Disallow: /calendar/
Disallow: /junk/
単一のクローラに対してアクセスを許可する
User-agent: Googlebot-news
Allow: /

User-agent: *
Disallow: /
特定の単一クローラを除くすべてのクローラに対してアクセスを許可する
User-agent: Unnecessarybot
Disallow: /

User-agent: *
Allow: /

単一のウェブページに対するクロールを禁止する - スラッシュの後に対象ページを指定します。

Disallow: /private_file.html

特定の画像を Google 画像検索からブロックする

User-agent: Googlebot-Image
Disallow: /images/dogs.jpg

サイト上のすべての画像を Google 画像検索からブロックする

User-agent: Googlebot-Image
Disallow: /

特定のファイル形式のファイルに対するクロールを禁止する(例: .gif

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

サイト全体でクロールを禁止するが、ページ上で AdSense 広告を表示する - Mediapartners-Google 以外のすべてのウェブクローラをブロックします。これにより、対象ページは検索結果に表示されなくなりますが、Mediapartners-Google ウェブクローラは引き続きページを分析し、サイトにアクセスしたユーザーにどの広告を表示するかを判断します。

User-agent: *
Disallow: /

User-agent: Mediapartners-Google
Allow: /
特定の文字列で終わる URL を指定する - 「$」を使用します。右の例の場合、「.xls」で終わるすべての URL がブロックされます。
User-agent: Googlebot
Disallow: /*.xls$
この記事は役に立ちましたか?
改善できる点がありましたらお聞かせください。