robots.txt ファイルを使用してページをブロックまたは削除する

「robots.txt ファイルを生成」ツールは廃止されます。robots.txt ファイルは、手動で作成することも、ウェブ上のさまざまな robots.txt 生成ツールを使用して作成することもできます。

robots.txt ファイルは、ウェブをクロールする検索エンジン ロボットによるサイトへのアクセスを制限するファイルです。検索エンジン ロボットは自動ロボットで、サイトのページにアクセスする際に、事前に特定のページへのアクセスをブロックする robots.txt ファイルが存在するかどうかを確認します(信頼できるロボットは robots.txt ファイルの指示に従いますが、ロボットによってはファイルの指示を別の意味に解釈する可能性もあります。いずれにしろ、robots.txt には強制力がないため、不正行為者は指示を無視する可能性があります。このため、機密情報の保護にはパスワードの使用をおすすめします)。

Google によるクロールがブロックされた URL は、ウェブマスター ツールの [クロール] セクションの [ブロックされた URL] ページで確認できます。

robots.txt ファイルが必要となるのは、サイトに検索エンジンのインデックスに登録したくないコンテンツが含まれる場合のみです。サイトのすべてのコンテンツを検索エンジンのインデックスに登録したい場合は、robots.txt ファイルは(空のものでも)必要ありません。

robots.txt でブロックされているページのコンテンツがクロールまたはインデックス登録されることはありませんが、ウェブ上の他のページに表示されている URL はインデックスに登録される可能性があります。このため、ページの URL、またサイトへのリンクのアンカー テキストや Open Directory Project(www.dmoz.org)(英語)のタイトルといった他の公開情報が Google の検索結果に表示される可能性があります。

robots.txt ファイルを使用する場合、ドメインのルートへのアクセス権限が必要です(不明な場合は、ウェブ ホスティング サービスにご確認ください)。ドメインのルートへのアクセス権限がない場合は、robots メタ タグを使用してアクセスを制限することもできます。

他のサイトからリンクされている場合であっても、ページのコンテンツが Google のウェブ インデックスに一切登録されないようにするには、noindex メタ タグまたは x-robots-tag を使用します。Googlebot はページを取得するときに、noindex メタ タグを認識してウェブ インデックスにそのページを表示しないようにします。x-robots-tag HTTP ヘッダーは、画像や他のドキュメントなど、HTML 以外のファイルに対するインデックス登録を制限する場合に特に便利です。

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

非常に単純な形式の robots.txt ファイルでは、次の 2 つのルールを使用します:

  • User-agent: 以降のルールを適用するロボット
  • Disallow: ブロックする URL

この 2 行はファイル内でまとめて 1 つのエントリと見なされます。含めるエントリの数に制限はありません。1 つのエントリに複数の Disallow 行と複数の User-agent を含めることができます。

robots.txt ファイルの各セクションは独立しており、先行のセクションには依存しません。次に例を示します:


User-agent: *
Disallow: /folder1/

User-Agent: Googlebot
Disallow: /folder2/

この例では、/folder2/ に一致する URL のみが Googlebot に対してブロックされます。

ユーザー エージェントとロボット

ユーザー エージェントとは、個々の検索エンジン ロボットのことです。ウェブ ロボット データベース(リンク先は英語)には一般的なロボットのリストが掲載されています。名前を入力して特定のロボットに適用するようエントリを設定することや、アスタリスク(*)を入力してすべてのロボットに適用するように設定することができます。すべてのロボットに適用するエントリは、次のように記述します:

User-agent: *

Google では、複数の異なるロボット(ユーザー エージェント)を使用します。Google のウェブ検索で使用するロボットは Googlebot です。Googlebot-Mobile や Googlebot-Image のような他のロボットは、Googlebot 用に設定したルールに従いますが、これらのロボット専用にルールを設定することもできます。

ユーザー エージェントのブロック

Disallow 行ではブロックするページを指定します。特定の URL またはパターンを入力できます。エントリはスラッシュ(/)で始める必要があります。

  • サイト全体をブロックするには、スラッシュを使用します。
    Disallow: /
  • 特定のディレクトリとその中身をすべてブロックするには、ディレクトリ名の後にスラッシュを入力します。
    Disallow: /junk-directory/
  • 特定のページをブロックするには、そのページを指定します。
    Disallow: /private_file.html
  • Google 画像検索から特定の画像を削除するには、次の記述を追加します:
    User-agent: Googlebot-Image
    Disallow: /images/dogs.jpg
  • Google 画像検索からサイトのすべての画像を削除するには、次のように記述します:
    User-agent: Googlebot-Image
    Disallow: /
  • 特定の種類のファイル(例: .gif ファイル)をブロックするには、次のように記述します:
    User-agent: GooglebotDisallow: /*.gif$
  • サイトのページに AdSense 広告を表示する一方で、クロールをブロックするには、Mediapartners-Google 以外のすべてのロボットを許可しないようにします。 このように設定すると、ページは検索結果に表示されなくなりますが、表示広告の決定に使用される Mediapartners-Google ロボットによるページ分析は許可されます。Mediapartners-Google ロボットが他の Google ユーザー エージェントとページを共有することはありません。次に例を示します:
    User-agent: *
    Disallow: /
    
    User-agent: Mediapartners-Google
    Allow: /

ディレクティブでは大文字と小文字が区別されます。たとえば、Disallow: /junk_file.aspは http://www.example.com/junk_file.asp をブロックしますが http://www.example.com/Junk_file.asp はブロックしません。Googlebot では、robots.txt の中の空白(特に空行)と不明なディレクティブは無視されます。

Googlebot は、robots.txt ファイルによるサイトマップ ファイルの送信をサポートしています。

パターン一致

Googlebot では、パターン一致をある程度認識します(認識しない検索エンジンもあります)。

  • 文字列に一致させるには、アスタリスク(*)を使用します。たとえば、private で始まるすべてのサブディレクトリへのアクセスをブロックするには、次のように記述します:
    User-agent: GooglebotDisallow: /private*/
  • 疑問符(?)を含むすべての URL へのアクセスをブロックするには、次のように記述します(具体的には、ドメイン名の後に文字列と疑問符が続き、その後に文字列が続く URL):
    User-agent: GooglebotDisallow: /*?
  • URL の末尾に一致させるには、$ を使用します。 たとえば、.xls で終わるすべての URL をブロックするには、次のように記述します:
    User-agent: GooglebotDisallow: /*.xls$

    このパターン一致は、Allow ディレクティブと組み合わせて使用できます。たとえば、? がセッション ID を表す場合、Googlebot が重複ページをクロールしないように、セッション ID を含むすべての URL を除外することができます。一方で、? で終わる URL が、クロールを希望するページのバージョンである場合があります。この場合は、robots.txt ファイルを次のように設定します:

    User-agent: *
    Allow: /*?$
    Disallow: /*?

    Disallow: / *? ディレクティブは ? を含む URL(具体的には、ドメイン名の後に文字列と疑問符が続き、その後に文字列が続く URL)をブロックします。

    Allow: /*?$ ディレクティブは ? で終わる URL(具体的には、ドメイン名の後に文字列が続き、? で終わる URL)を許可します。

ファイルをダウンロードするか内容をテキスト ファイルにコピーして、robots.txt ファイルとして保存します。ファイルをサイトの最上位のディレクトリに保存します。robots.txt ファイルは、必ずドメインのルートに置いて「robots.txt」という名前を付けてください。ロボットはドメインのルートにこのファイルがあるかどうかだけを確認するので、robots.txt ファイルがサブ ディレクトリにある場合は無効です。たとえば、http://www.example.com/robots.txt は有効な場所ですが、http://www.example.com/mysite/robots.txt は有効な場所ではありません。

robots.txt ファイルをテストする

robots.txt テスト ツールでは、robots.txt ファイルにより、サイトのファイルやディレクトリで誤って Googlebot をブロックしていないかどうか、ウェブ上に表示したくないファイルのクロールを Googlebot に許可していないかどうかを確認できます。テストする robots.txt ファイルのテキストを入力すると、ツールは Googlebot と同じ方法で読み取り、ファイルの効果や問題点を表示します。

サイトの robots.txt ファイルをテストする:

  1. ウェブマスター ツールのホームページで、該当するサイトをクリックします。
  2. [クロール] の [ブロックされた URL] をクリックします。
  3. まだ選択していない場合は、[robots.txt のテスト] タブをクリックします。
  4. robots.txt ファイルの内容をコピーし、最初のボックスに貼り付けます。
  5. [URL] ボックスに、テストするサイトをリストします。
  6. [User-agents] リストで、テストするユーザー エージェントを選択します。

このツールで行った変更は保存されません。変更を保存するには、その内容をコピーして robots.txt ファイルに貼り付けてください。

このツールは Googlebot などの Google ユーザー エージェントにのみ対応しています。他のロボットでは robots.txt ファイルの解釈方法が異なる場合があります。たとえば、Googlebot は robots.txt プロトコル規格の拡張定義をサポートしており、Allow: ディレクティブや、パターン一致の一部も認識します。このため、このツールで拡張定義も解釈したとして表示される行は Googlebot のみに該当するもので、サイトをクロールする他のロボットには必ずしも当てはまりません。