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

はじめに

robots.txt ファイルはサイトのルートに配置されています。したがって、www.example.com のサイトでは、robots.txt ファイルの URL は www.example.com/robots.txt になります。robots.txt は、Robots Exclusion Standard に準拠するプレーン テキスト ファイルです。robots.txt ファイルは、1 つまたは複数のルールで構成されます。各ルールは、特定のクローラに対して、対象ウェブサイト内の特定のファイルパスへのアクセスをブロック(または許可)します。

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

# Group 1
User-agent: Googlebot
Disallow: /nogooglebot/

# Group 2
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 ファイルの作成には、ほぼあらゆるテキスト エディタを使用できます。ただし、テキスト エディタは、標準の 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 ファイルは、UTF-8 でエンコードされたテキスト ファイルにする必要があります(ASCII を含む)。他の文字セットは使用できません。
  • robots.txt ファイルは 1 つまたは複数のグループで構成されます。
  • グループは複数のルールつまりディレクティブ(命令)で構成されます。1 行につき 1 つのディレクティブを指定できます。
  • グループには次の情報を指定します。
    • グループを適用する対象(ユーザー エージェント
    • そのエージェントによるアクセスを許可するディレクトリやファイル
    • そのエージェントによるアクセスを許可しないディレクトリやファイル
  • グループは上から下に順番に処理され、各ユーザー エージェントには 1 つのルールセットだけが適用されます。そのルールセットとは、ユーザー エージェントに適合する最初の最も明確なルールです。
  • デフォルトの想定では、ユーザー エージェントは「Disallow:」ルールでブロックされないすべてのページまたはディレクトリをクロールできます。
  • ルールでは大文字と小文字が区別されます。たとえば、Disallow: /file.asphttp://www.example.com/file.asp に適用されますが、http://www.example.com/FILE.asp には適用されません。
  • コメントは # 記号の後に記述します。

robots.txt ファイル内で使用されるディレクティブは次のとおりです。

  • User-agent: [必須。グループごとに 1 つまたは複数] 検索エンジン クローラとして知られている、ルールの適用対象となる自動クライアントの名前を指定したディレクティブ。これが、すべてのルールの最初の行になります。Google のユーザー エージェントの名前は Google のユーザー エージェント一覧に掲載されています。下記の例のアスタリスク(*)は、各種の AdsBot クローラを除くすべてのクローラに一致します。AdsBot クローラは明示的に指定する必要があります。例:
    # Example 1: Block only Googlebot
    User-agent: Googlebot
    Disallow: /
    
    # Example 2: Block Googlebot and Adsbot
    User-agent: Googlebot
    User-agent: AdsBot-Google
    Disallow: /
    
    # Example 3: Block all but AdsBot crawlers
    User-agent: *
    Disallow: /
  • Disallow: [ルールごとに Disallow または Allow のいずれかが少なくとも 1 つ必要] ユーザー エージェントによるクロールを禁止するディレクトリまたはページ(ルートドメインの相対 URL)。ページの場合は、ブラウザで表示される完全なページ名にする必要があります。ディレクトリの場合は、末尾を「/」にする必要があります。
  • Allow: [ルールごとに Disallow または Allow のいずれかが少なくとも 1 つ必要]指定されたユーザー エージェントによるクロールを許可するディレクトリまたはページ(ルートドメインの相対 URL)。Allow を使用すると、Disallow ディレクティブをオーバーライドして、Disallow が指定されたディレクトリ内のサブディレクトリまたはページのクロールを許可できます。単一ページの場合は、ブラウザで表示される完全なページ名を指定する必要があります。ディレクトリの場合は、ルールの末尾を「/」にする必要があります。
  • Sitemap: [省略可。ファイルごとにゼロ個以上] 対象ウェブサイトのサイトマップがある場所。完全修飾 URL であることが必要です。Google は代替 URL(http か https か、www があるかないか)を考慮またはチェックしません。Sitemap は、Google にクロールを許可するコンテンツや許可しないコンテンツではなく、Google でクロールする必要のあるコンテンツを指定するのに適した手段です。サイトマップの詳細についてご確認ください。 例:
    Sitemap: https://example.com/sitemap.xml
    Sitemap: http://www.example.com/sitemap.xml

sitemap を除くすべてのディレクティブでは、パスのプレフィックス、サフィックス、または文字列全体について、* ワイルドカードを使用できます。

上記のディレクティブに一致しない行は無視されます。

他のファイル例

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

# Block googlebot from example.com/directory1/... and example.com/directory2/...
# but allow access to directory2/subdirectory1/...
# All other directories on the site are allowed by default.
User-agent: googlebot
Disallow: /directory1/
Disallow: /directory2/
Allow: /directory2/subdirectory1/

# Block the entire site from anothercrawler.
User-agent: anothercrawler
Disallow: /

robots.txt の完全な構文

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

実用的な robots.txt のルール

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

ルール
ウェブサイト全体でクロールを禁止する - ただし、場合によっては、クロールされていなくてもウェブサイトの URL がインデックスに登録されることがあります。

User-agent: *
Disallow: /
ディレクトリとそのコンテンツのクロールを禁止する - ディレクトリ名の後にスラッシュを付けます。非公開コンテンツへのアクセスのブロックには robots.txt を使用しないでください。代わりに、適切な認証を使用します。URL は、robots.txt ファイルで不許可にしていても、クロールされないままインデックスに登録される場合があります。さらに robots.txt ファイルは誰でも閲覧できるので、非公開コンテンツの場所が公開同然となる可能性があります。

User-agent: *
Disallow: /calendar/
Disallow: /junk/
単一のクローラに対してアクセスを許可する

User-agent: Googlebot-news
Allow: /

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

User-agent: Unnecessarybot
Disallow: /

User-agent: *
Allow: /

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


User-agent: *
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$