robots.txtの書き方・注意点を解説【サンプルDLあり】

robots.txt とはクローラー(ロボット)の挙動を制御するものです。

編集機会の少ないファイルなので、編集のしたことがない・作り方がわからない、という方も多いのではないでしょうか。

本記事では、robots.txt の作成・編集方法から構文、間違えやすいポイントなどについて重点解説します。

正しく設定してクロール効率を高めましょう。

このページの内容(目次)

robots.txt とは(役割・目的)

robots.txt とは、クローラー(ロボット)の挙動を制御するためのファイルです。

クローラーとは、検索エンジンをはじめとするウェブサービスが、サイトの情報を取得する際に自動でサイト内にあるページを巡回し取得するプログラムのことです。

人間が画面を見ながらクリックしながらリンクをたどるのに対し、クローラーはプログラムがリンクになっている部分をリストアップし、順に処理を進めるため無人で動きます。このため「ロボット」とも言われます。

robots.txt の役割は大きくわけて2つあります。

  1. クロールしてはいけないページをクローラーに伝える(制限する)
  2. XMLサイトマップのある場所をクローラーに伝える(手助けする)

上記のような制御をロボットに対して行うことで、下記の目的を果たします。

  • サーバーに過度な負担がかからないようにする
  • セキュリティの向上(管理画面など一般ユーザーに知られたくないところを隠す)
  • 重要なページが巡回漏れしないようにする

robots.txt を設置することによるSEO効果

robots.txt を設置することによって得られるSEO効果には以下のようなものがあります。

  1. 重要なページが優先的にインデックスされるようにする
  2. 重要なページがインデックスされるのを早める

ただし、上記についても個人が運営する「ブログ」レベルであれば robots.txt を設置しても、SEO的にプラスになることはまずありません

数万ページあるようなサイトになってくると、「クロールバジェット」というどのくらいクロールしてページを取得するかの割り当ての量が足りなくなる、という現象が起こります。

例えば100万ページあるサイトだと、毎日でクローラーが全てのページを取得することが困難になってきます。であれば、優先的にクロールしてほしいページを指定するなどして、重要なページから順にクロールされる(インデックスされる)ようにするのが良いためです。

robots.txt の作り方(ファイル形式)

robots.txt について概要を解説させていただきました。

次に、実際の作り方について解説していきます。

ファイル名robots.txt
設置場所/
最大サイズ500KiB(512KB)
文字コードUTF-8
BOMなし(無視される)
改行コードCR・CR+LF・LFのどれか

ファイル名に注意。sがつく。よく間違えられている

robot.txt とうっかりやってしまいがちです。正しくはrobots.txt で最後に s がつくので注意してください。

他にも下記のようなファイル名はNGです。

  • ROBOTS.TXT(全部大文字)
  • Robots.txt(先頭大文字)
  • robots.txt(全角文字)

半角小文字で正確に「robots.txt」にしてください。そんな初歩的なミスするわけない、と思い込んでいる人ほど間違えますのでご注意ください。

ファイル名が違っていると読まれることがないので効果が出ません。

最大ファイルサイズは500KiB(キビバイト)

robots.txt の最大ファイルサイズは500KiBです。

KiBは、打ち間違えではなく「キビバイト」といいます。500KiB=512KBです。

キビバイトとキロバイトはどう違うのか、といわれると、
1KiB(キビバイト)=1024B(バイト)
1KB (キロバイト)=1000B(バイト)
という違いです。
1KBを1024Bと教わった人も多いと思いますが、正確には「キロ」は10の3乗を指すので1000Bになります。
1KBを1024Bとおもっていた方は、単純にKBをKiBに置き換えて認識すればOKです。

設置場所はルートディレクトリ

robots.txt はサイトのルートディレクトリに設置します。サブディレクトリの下に置くファイルでなく、サイトの直下が設置場所です。

ファイル名同様、ルートディレクトリに設置しないと読まれないため効果が出ません。

作成はテキストエディタで作成し、FTPでアップする

robots.txt は主にテキストエディタで作成します。

また、公開する際にはFTPクライアントなど、サイトルートにファイルを設置できる方法でアップロードします。

WordPress を使っている場合はプラグインなどから編集できることもありますが、わざわざプラグインを追加したり function.php を編集するくらいならFTPクライアントでアップする方が早いです。

文字コード・改行コード

文字コードUTF-8(BOMなし)
改行コードCR+LFまたはLF

改行コードと文字コードは上記の設定にしてください。

2019年からWindows標準のテキストエディタ「メモ帳」も標準の文字コードがBOMなしUTF-8になったため、メモ帳で普通に開いて保存すればOKです。

BOMとは、バイトオーダーマーク(Byte Order Mark)の略で、このファイルはUTF-8で作っていますよ、と知らせる印のようなものです。例えばExcelだと、UTF-8(BOMなし)で作ったCSVファイルは開くと崩れますが、UTF-8(BOMあり)で作ったCSVは正常に開くことができます。プログラムが識別するためのものです。

WordPressで作成・編集する方法

WordPressは、標準状態で

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://ドメイン名/wp-sitemap.xml

のような「仮想の」 robots.txt を出力します。

管理画面のクロールを自動で排除しているんですね。

ルートディレクトリに実体ファイルが存在しなくても上記の内容を出力するようになっています。

また、<設定>→<表示設定>で「検索エンジンがインデックスしないようにする」にチェックが入ると「Sitemap」の記述が削除されて、

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

が出力されるようになります。

≫ 参考:WordPressの初期設定

自動で出力される内容を変更する場合は実体ファイルを設置するか、プラグインなどで編集する必要があります。

All in One SEO を使った編集

SEOプラグインのAll in One SEO には robots.txt を編集する機能があります。

<ツール>メニュー → <Robots.txtエディター>タブを選択すると、編集画面に入ります。

ユーザーエージェントに対象にしたいロボットを設定し、アクセスを拒否するか許可するかと対象ディレクトリ・ファイルを記載します。

複数行にしたい場合は追加ボタンを押してください。

robots.txt の書き方

続いて書き方について説明しますね。

種類User-agent
Disallow
Allow
Sitemap
Crawl-delay
開始User-agentを書いたところから
終了次のUser-agent・Sitemap・Crawl-delay があるところまで
コメント#以降行末までがコメントになる
命令1行につき1つ
大文字・小文字区別される
順序・優先度上から順に処理され、該当する1つだけが適用される

User-agent:(ユーザーエージェントの指定)

対象になるクローラーを指定する記述で、必須です。

コンテンツのクロールを拒否するのは、管理画面や会員向けのコンテンツといったものが中心です。

これらはクローラー毎に仕分けが必要になることはほぼありませんので、通常は「User-agent: *」を記述することがほとんどだ、と覚えて問題ありません。

記述例対象クローラー
User-agent: *すべてのクローラー
User-agent: GooglebotGoogleのクローラー
User-agent: bingbotBingのクローラー
User-agent: baiduバイドゥのクローラー

上記以外にもクローラーは多数あります。

Robots Database:かなり多数のクローラーの情報が記載されています。

User-agent の記述は一つしかしてはいけないというわけではありません。複数記述が可能です。

ただし、クローラー名を指定する場合は、その指定された部分しか読まれないので注意が必要です。

User-agent: *
Disallow: /ng/

User-agent: googlebot
Disallow: /google-ng/

上記の例の場合、Googlebotは、/google-ng/は巡回しないようになりますが、/ng/は巡回してしまいます(アスタリスクの方は無視する)。

アスタリスクと組み合わせて個々に指定した分だけが上書きされるわけではないという点に注意です。

アスタリスクの指定は、

  • User-agentが一つしかない場合 → 「全ロボット共通」
  • User-agentが複数ある場合 → 「指定したロボット以外」

の意味になります。

また、同じユーザーエージェントが複数の箇所に記載されている場合は一つにまとめられます。

User-agent: googlebot
Disallow: /google-ng/

User-agent: *
Disallow: /ng/

User-agent: googlebot
Disallow: /google-ng2/

とした場合、

User-agent: googlebot
Disallow: /google-ng/
Disallow: /google-ng2/

User-agent: *
Disallow: /ng/

として処理されます。

あまり推奨はしませんが、User-agentを連続して書くことも可能です。

User-agent: googlebot
User-agent: googlebot-news
Disallow: /google-ng/

推奨しない理由は後日編集した時に間違いが混じりやすくなるためです。

robots.txt はクローラーの動作を変える重要なファイル。楽をすることを優先せずに意図しない挙動が絶対起こらないけど面倒な書き方をした方が安全です。

パスの指定方法

  • ルート以降を書く(のでスラッシュから始まる。URLではない)
  • ワイルドカードを使うことができる

巡回を禁止したり許可するディレクトリやファイルのことをパスといいますが、パスの指定方法として、上記2つのルールがあります。

ワイルドカード

*(アスタリスク)有効な文字
$(ドル)末尾

複雑な正規表現はサポートされませんが、上記の2つの簡単なワイルドカードはサポートされています。

パスの書き方と意味の例

パス意味
/サイト全体
/*サイト全体
/aaa/aaaから始まるディレクトリとファイルの両方(部分一致)
/bbbaaaは一致しない
/ディレクトリ名/ディレクトリ内の全て
/*.php「.php」を含むすべてのディレクトリ・ファイル
/*.php$末尾がphpに一致するすべてのファイル
/aaa*.phpaaaから始まり.phpを含むファイル・ディレクトリ
/aaa*.phpaaaから始まり.phpで終わるファイル

Disallow:(除外するURLの指定)

User-agentに続けて除外する対象のURLを指定する記述方法です。

robots.txt を用意していない状態ではすべてのURLの巡回を許可した状態になっています(WordPressはデフォルトで管理画面へのクロールを制限しています)。

指定をすることで、そのディレクトリ以下はクロールをしないようにさせます。

記述例意味
Disallow: /全てのページのクロールを禁止する
Disallow: /hoge//hoge/以下のディレクトリの巡回を拒否する
Disallow: /hoge/fuga.html/hoge/fuga.html から始まるURLの巡回を拒否する

Allow:(許可するURLの指定)

巡回を許可するページをリストアップします。

Disallowで巡回を禁止した中に、特定のページだけは巡回対象に残しておきたいという場合に使います。

記述例意味
Disallow: /
Allow: /ok/
一旦全ファイルを除外し、続いて/ok/ ディレクトリだけを許可する
Disallow: /kaiin/
Allow: /kaiin/method.html
/kaiin/ 以下のクロールを禁止するが、method.htmlだけは巡回しても良いようにする

Crawl-delay: (巡回スピードの調整)

クロールの速度を落とすための設定です。Crawl-delay:に続けて秒数を記載すると、巡回時にその秒数待つようになります。

Crawl-delayはGooglebotはサポートしていません

まれに非常に行儀の悪いbotが発見されてサーバーのパフォーマンスを落としていることが確認された場合に指定するといいです(滅多に使われません)。

記述例意味
Crawl-delay: 55秒間隔でクロールして良い

Sitemap:(XMLサイトマップの位置の指定)

XMLサイトマップの位置を伝えるための命令です。

完全なURLで指定する必要があります。

  • プロトコル(httpとhttps)間違い
  • wwwありなし間違い
  • ポート番号指定

ではないURLを記述するようにしてください。

記述例
sitemap: https://example.com/sitemap.xml

コメントの書き方

コメントとは、プログラムを書く際に見やすくなるように人間の言葉でメモを残しておく機能です。robots.txtにもコメントをつける機能があります。

#(シャープ)を半角で記入すると、それ以降行末までがコメントになります。行の途中から始めても構いません。

# 行頭からはじめるとその行は全てコメントになります
User-agent: *
Disallow: /ng/

User-agent: googlebot #行の途中から始める場合は行末までがコメントです
Disallow: /ng/

おすすめの使い方としては、記述したものを残しておく場合です。

User-agent: *
Disallow: /ng1/
# Disallow: /ng2/
Disallow: /ng3/

上記例では「当初ng2も除外の設定にしていたが、途中で解除するようになった。ただし、また除外に戻す可能性がある」ので行頭に#を入れて無効化し、いつでも簡単に復旧できるように残しておく、というものです。

ページ単位で適用する場合はmetaタグで指定する

クローラーの挙動はページ単位でも設定可能です。

ページ単位での指定はmetaタグで設定します。

<meta name="robots" content="noindex" />
<meta name="googlebot" content="noindex" />

name属性にユーザーエージェントを指定し、noindexを指定すればインデックス対象から除外されます。

robots.txt の確認方法(テスト)

robots.txtをテストするツールをGoogleが提供しています。

記述におかしい部分がある場合は検出されるようになります。エラー数・警告数がなくなるように修正していってください。

robots.txt テスターで robots.txt をテストする

robots.txtテスターでエラーがないか確認する

robots.txt のサンプルダウンロード

いくつかのサンプルを作成してまとめました。

ダウンロードし、必要箇所を書き換えてお使いください。

robots.txt のサンプルをダウンロードする(無料:5KB)

注意点

robots.txt を書いたり修正していく上での注意点をまとめます。

注意点1:人間のアクセスは防げない

robots.txt はあくまでクローラー用のツールです。アクセスを防ぐ目的では利用できません。

注意点2:ロボットが守るとは限らない

robots.txt は挙動を指示しますが、100%守られるというわけではありません。クローラーによってはrobots.txt を参照すらしないものもあります。

注意点3:ルートパスに設置できないと適用できない

ホスティングサービスなどで、ルートパスhttps://ドメイン名/に設置できない場合は適用されません。

サブドメインなどの場合は適用可能ですが、サブディレクトリがドキュメントルートになっている場合には適用されないので注意が必要です。

注意点4:インデックス済みのページを削除するために使うわけではない

個人情報を含むサイトや管理画面などがインデックスされてしまい、削除したいという目的で使うものではありません。

インデックスを削除したい場合は以下のようにします。

  1. サーチコンソールの<削除>から削除依頼を送信します(現在インデックスされているものを削除)
  2. 削除を依頼するページのmetaタグにnoindexを設定します(今後インデックスさせない)

削除自体は比較的早めに反映されますが、即時反映ではありませんのでご注意ください。

まとめ

個人運営のブログでは robots.txt は編集機会は少なく、あまり編集の必要はないかもしれません。

WordPressを使っている場合はrobots.txtの編集はせずに、metaタグのrobotで指定する方が安全で確実です。

豆知識

robots.txt は、REPという仕様に基づきGoogleによって標準化されました。

REPはRobots Exclsion Protocol(ロボット排除プロトコル)の略です。

REP自体の歴史は古く、1994年にマーティン・コスター氏によって考案されました

本格的な検索エンジンやクローラーが普及する前にこういった仕様を考案してくれたため、ネット(bot)の発展にもきっと貢献してくれたのだと思います。

最近ではスクレイピングが個人でも手軽に行うことができるようになり、ウェブサイトの情報を簡単に引っこ抜ける時代になっています。robots.txtを無視し、過剰なアクセスを行うクローラーが増えるとネットのトラフィック全体にも影響が出かねません。自分だけが良ければ良いという行儀の悪いクローラーが減り、REPに準拠したクローラーが増えるといいなと思います。

このページの内容(目次)
閉じる