- オンライン
robots.txtとは?クロール拒否する方法・書き方・必要性を解説



robots.txtとは、特定のページやフォルダへのクロールを拒否できるテキストファイルのことを指す。
例えば以下のようなコードを書き、サイトのルートディレクトリにアップロードすることで実現できる。
robots.txt |
User-agent: Googlebot Disallow: /sample/ User-agent: * Allow: / Sitemap: http://www.example.com/sitemap.xml |
検索エンジンに「クロールさせないコンテンツ」を指定することで、重要なコンテンツを優先的にクロールさせることが可能になる。そのため、robots.txtには一定のSEO効果を期待できるといえるだろう。
しかし、Google公式ヘルプを確認すると、Googleは「大規模サイトや、更新頻度が高い中規模サイトでなければ、robots.txtは設置しなくても構わない」と明言している。
なぜならば、数千ページ程度のサイトならばクローラーは効率的に行われるからだ。小規模サイトの場合、無理にrobots.txtを設置しなくてもOKである。
逆に、むやみにrobots.txtを指定することで、SEOに逆効果となる可能性すらある。
robots. txtを設置すべきか判断するポイント |
❶【大前提】robots.txtは、必要なければ設置しなくてOK ❷中規模以上・更新多めなら、設置がおすすめ ❸小規模サイトや更新頻度が低いサイトは、無くてOK ❹メディアファイルをインデックス拒否したい時は設置 ❺Search Consoleでindexエラーが多い場合は設置推奨 |
この記事では、「robots.txtで何ができるのか」という基本的な情報はもちろん、「結局のところ設置した方が良いの?」「どんなページに設置すべきなの?」という疑問にしっかりと答えていこうと考えている。
robots.txtを設置しようとしている全てのコンテンツ担当者は、ぜひこの記事を読んで参考にしてほしい。
目次
1. robots.txtとは?
robots.txtとはサイトの一番上の階層に設置するテキストファイルのことである。コンテンツごとにクロールを拒否するのが主な役割となる。
1-1. robots.txtでクロールしてほしくないコンテンツを制御できる
robots.txtにはクローラーへの命令を記述でき、クロールしてほしくないコンテンツを制御できる。
例えば「このフォルダ以下はクロールを禁止する」と記述すると、特定のフォルダをクロールさせないように指示ができる。
クロールさせないコンテンツを指定するメリットは、重要度の高いコンテンツを優先的にクロールできることだ。特に大規模なサイトの場合、サイト全体のSEOに良い効果があると考えられている。
1-2. robots.txtとnoindexタグの違い
robots.txtと似ているものに「noindexタグ」があるが、役割が違うので整理しておこう。
robots.txt | noindexタグ |
クロール(巡回)をブロック するように制御するもの | インデックスをブロック するように制御するもの |
インデックスされない わけではないので注意⚠️ | インデックス済コンテンツの インデックスから削除可能 |
※インデックスとは、検索エンジンにページが登録されることを意味している。
robots.txtで指定したページやフォルダは、クローラーが巡回しなくなる。しかし、クロールされなくても、既にクロールされていたり他のページからリンクを貼られたりしていれば、インデックスされる可能性はある。
つまり、インデックスされたくない場合は、robots.txtではなくnoindexを使うべきだ。
noindexを指定する場合は、ページごとのmeta要素に記述することで制御できる。詳しくは、バズ部の別記事「noindexとは?設定方法や注意点を分かりやすく解説」を確認してほしい。
1-3. robots.txtで指定できる4つの要素
robots.txtの主な役割は「Disallowで特定のページやフォルダのクロールを禁止する」ことだが、厳密に言うと他にも役割はある。robots.txtで指定できるのは以下の4つの要素だ。
4つの要素 | 役割 |
User-Agent | どのクローラー(例:Googlebot)を制御するかを指定する |
Disallow | 主に使われる用途 特定のファイルやフォルダに対して「クロールさせない」という指示ができる |
Allow | Disallowで指定したフォルダで例外的にクロールさせたいファイルやフォルダを指定できる |
Sitemap | サイトマップ(sitemap.xml)の場所をクローラーに伝える |
❶User-Agent【記述必須】
どのクローラーの動きを制御するかを指定できる。特にこだわりが無ければ「*」としておけば、Google含むすべてのクローラーを指定できる。
// Googleのクローラーを対象にしたい場合 User-Agent:Googlebot // 全てのクローラーを対象にしたい場合 例:User-Agent:* |
❷Disallow
特定のファイルやフォルダをここに指定することで、そのファイルやフォルダをクロール(巡回)しないよう命令できる。
// サイトの直下にある「sample」というフォルダをクロール拒否にしたい場合 Disallow:/sample/ |
❸Allow
Disallowでクロールさせない設定にしているフォルダの中で、例外的にクロールさせたいファイルやフォルダを指定すると、該当するファイルのみクロールを許可できる。
// must.htmlというページだけ例外的にクロールしてもらいたい場合 Allow:/sample/must.html |
❹Sitemap
サイトマップ(sitemap.xml)の場所をクローラーに伝えることで、クロールを促せる。設定は必須ではないが、設定しておくのがおすすめ。
Sitemap:http://sample-site.jp/sitemap.xml |
2. robots.txtを設定する3つのメリット
あらためて、robots.txtを設定するとどんなメリットがあるかを解説していこう。
2-1.【SEO効果あり】重要コンテンツだけ集中的にクロールしてもらえる
Disallowを指定してクロールさせたくないページやディレクトリを指定することで、重要なコンテンツだけに集中してクロールしてもらえるようになる。
特に大規模サイトの場合、何万ページもクロールするのには時間がかかる。そこで、クロールしなくて良いコンテンツをrobots.txtで指定しておけば、重要なコンテンツを優先的にクロールしてもらえる。
結果的に、重要コンテンツのクロールが早まり、SEOが改善される効果が得られる。
2-2. 画像・動画・音声ファイルを検索結果に表示できなくできる
robots.txtを使う2つ目のメリットは、特定の画像や動画、音声ファイルを検索結果に表示できなくできることである。
HTMLファイルの場合は、metaタグで「noindex」を設定すれば検索結果に表示させないことが可能だが、画像・動画・音声ファイルにはタグを書く場所がないため「noindex」は使えない。そのため、robots.txtに記述して検索結果に表示できなくさせる方法を採るしかない。
// サイトの直下にある「images」というフォルダをクロール拒否にしたい場合 Disallow:/images/ |
ただし、既にインデックスされてしまっている場合にはこの方法は使えない。
2-3. XMLサイトマップの場所を伝えられる
サイトマップのURLを指定することで、クローラーにサイトマップの場所を教えることができる。
// 設定例 Sitemap:https://lucy.ne.jp/bazubu/sitemap.xml |
サイトマップとは、サイトの構造をリスト形式で記述したものである。クローラーにサイトマップを読ませることで、サイトの内容を理解させやすくなる。
例えば、どこからもリンクが貼っていないページがある場合、リンクを辿って新しいページを発見する検索エンジンはそのページを見つけられない。しかしサイトマップがあれば、そうしたページを把握してもらうことができる。
SEOにおいてもメリットが大きいので、robots.txt内のSitemapの設定も積極的に行おう。
3. robots.txtを設置すべきか判断するポイント
「結局のところrobots.txtは設置した方が良いの?」と疑問に思う方も多いだろう。
結論から言うと「robots.txt」の設置は必須ではなく、Google公式ヘルプでも「大規模かつ頻繁に更新されるサイト向けの方法」として紹介されているものである。
Google公式ヘルプには、「サイトの URL が数千もない場合、そのサイトのクロールはたいてい効率的に行われます」と書かれており、小規模サイトがrobotx.txtを置かないことには問題はない。
3-1.【大前提】robots.txtは設置しなくても良い
robots.txtは、何度も言うようにクロール許可をブロックするために設置するものである。クロール拒否したいコンテンツが特に無い場合は、設置しなくて全く問題ない。
参考:Google検索セントラル「robotsに関する一般的な質問」
3-2. 中規模(1万ページ)以上のサイトはrobots.txt設置がおすすめ
Google公式ヘルプによると、クロール割り当ての対象者を以下のように説明している。
クロール割り当てを推奨する対象者 |
❶大規模なサイト(100万ページ以上)で、 コンテンツの更新頻度が中程度(1週間に1回)の場合 ❷中規模以上のサイト(10,000ページ以上)で、 (日常的に)コンテンツがめまぐるしく変更される場合 ❸Search Consoleで「合計URL」の大部分が 「検出-インデックス未登録」に分類されたサイト |
参考:Google検索セントラル>大規模なサイト所有者向けのクロール割り当て管理ガイド
大規模サイト(100万ページ以上)や更新頻度が高い中規模サイト(1万ページ以上)では、Googlebotが一度にクロールできる能力を超えてしまい、正しくインデックスされない可能性がある。
あなたの運営サイトが1万ページ以上の規模のサイトなら、robots.txtを設置し、サイトのクロール効率を最大化すべきである。
どのコンテンツをクロール拒否すればいいかを決める時には、Googleヘルプに書かれている内容を参考にしよう。できるだけ重要度が低いコンテンツから順番に、robots.txtの「Disallow」でクロールを拒否する設定を行おう。
・情報が重複している無限スクロールページ ・並び方が違うだけの同一ページ ・検索上、重要でないページ |
※他サイトから参照している場合、robots.txtでクロール拒否してもクロールなしでインデックスされる可能性がある。インデックスされたくない(検索結果に表示されたくない)場合には、robots.txtではなく「noindex」を使おう。
3-3. 小規模サイトや更新頻度が低いサイトはrobots.txtがなくても良い
3-2で解説した条件に合致していない小規模サイトや更新頻度が低いサイトの場合は、robots.txtそのものを設置しなくても、クロール上の問題は起こらない。
では、SEOの観点からはどうだろうか?
robots.txtを置くことで重要なコンテンツのクロールが優先されてSEO効果を得られるのは、Googleボットのクロールが間に合わないような中~大規模サイトに限定される。
小規模サイトであればrobots.txtが無くても正しくクロールされるため、robots.txtでクロール拒否したからといって劇的なSEO効果が得られる可能性は低い。
ただし、SEO効果はなくとも、明らかにクローラーにとって意味のないページやディレクトリは、クロール拒否を指定しておいても良いだろう。
3-4. メディアファイルをインデックス拒否する時はrobots.txtを設置すべき
サイトの規模によらず、メディアファイル(画像・動画・音声ファイル)をGoogle検索結果に表示させたくない場合には、robots.txtを設置すべきである。
「2-2. 画像・動画・音声ファイルを検索結果に表示できなくできる」で述べた通り、robots.txtでしかメディアファイルをGoogle上で非表示にする方法は無いからである。
3-5. Search Consoleで多くのページがエラーになる場合もrobots.txtを設置すべき
「Search Console」で合計URLの大部分が「検出- インデックス未登録」に分類されてしまう場合には、robots.txtを設置すべきである。
クロール上の問題が起きている可能性があるため、robots.txtを設置して、クロールしてほしいコンテンツを優先的にクロールさせる必要がある。
4. robots.txtファイルの具体的な書き方
ここからは、robots.txtを設置する場合の具体的な書き方(記述方法)を解説していこう。
User-agent: Googlebot
Disallow: /sample/
User-agent: *
Allow: /
Sitemap: http://www.example.com/sitemap.xml
robots.txtはメモ帳などのテキストファイルで.txtの拡張子で保存し、そのファイルをサイトのルートディレクトリ(直下のアドレス)に配置することで設置できる。
4-1. User-Agent
どのクローラーの動きを制御するかを指定できる。続けて「Disallow」または「Allow」を設定しよう。
// Googleのクローラーを対象にして、特定のフォルダをクロール拒否したい場合 User-Agent: Googlebot Disallow: /sample/ |
特にこだわりが無ければ「*」としておけば、Google含むすべてのクローラーを指定できる。
// 全てのクローラーを対象に、特定のフォルダをクロール拒否したい場合 User-Agent: * Disallow: /sample/ |
命令文を組み合わせて、記述することもできる。
// Googleのクローラーには特定のフォルダをクロール拒否にして、その他のクローラーには全体のクロールを許可する場合 User-Agent: Googlebot Disallow: /sample/ User-Agent: * Disallow: / |
4-2. Disallow
特定のファイルやフォルダをここに指定することで、クロールしないよう命令できる。
// サイトの直下にある「sample」というフォルダをクロール拒否にしたい場合 Disallow:/sample/ |
4-3. Allow
Disallowでクロールさせない設定にしているフォルダの中で、例外的にクロールさせたいファイルやフォルダを指定すると、クロールを許可できる
// wp-adminフォルダはクロール拒否するが、例外的にクロールしてもらいたい場合 Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php |
例外的にクロールさせたいページを指定する命令文なので、クロール拒否するページがない場合には使用しなくて問題ない。
4-4. Sitemap
サイトマップ(sitemap.xml)の場所をクローラーに伝えることで、クローラーに正しくクロールしてもらうことを促せる。設定は必須ではないが、設定しておくのがおすすめである。
Sitemap:http://sample-site.jp/sitemap.xml |
他の要素と違ってサイトマップは絶対アドレスの指定が必須なので、必ず「http」や「https」を含むアドレスをここに指定しよう。
5. robots.txtを設置する方法3ステップ
テキストファイルを用意できたら、サイトにアップロードして設置を行う。
アップロード前にGoogle公式のテストツールでテストができるので、ぜひ活用してほしい。
5-1. robots.txtファイルを作成する
4章で解説した通りにテキストファイルを用意し、「robots.txt」という名前で保存しておこう。
5-2. robots.txtのマークアップをテストする
robots.txtファイルをアップロードする前に、Googleが用意している「robots.txtテスター」でファイルをテストしよう。
具体的には、Disallowで指定する「クロールをブロックさせたいページ」をブロックできる記述になっているか確認できる。
手順は以下である。
❶robots.txtテスターを起動して、プロパティ(設置するサイト)を選択する
❷入力欄が表示されるので、作成したrobots.txtの内容をコピーして貼り付ける
例 User-agent: * Disallow: /wp-admin/ Sitemap: http://sample.com/sitemap.xml |
❸クロール拒否したいページ(例の場合は「wp-admin」フォルダ)を下の入力欄に入れて、テストボタンを押す
❹「ブロック済み」と表示が変われば、正しく記述できていると確認できる
❺同様に、例外的にクロールを許可したいページ(例の場合は「wp-admin/admin-ajax.php」ファイル)が許可されていることも確認できる。
※ここで「送信」ボタンを押すと、ここからrobots.txtを更新することも可能である。
テスターで記述が合っていることを確認できてから、テキストファイルをアップロードしよう。
5-3. robots.txtファイルをルートディレクトリにアップロード
作成したrobots.txtファイルを、FTPソフトを使ってルートディレクトリにアップロードしましょう。
ルートディレクトリとは、サイトが保存されているアドレスの直下のことである。ルートディレクトリ以外に置いてしまうと正しく制御できないので注意しよう。
例えばサイトのアドレスが「http://sample.com/」の場合、以下の場所にrobots.txtファイルを置くのが正解となる。
正解:http://sample.com/robots.txt 間違い:http://sample.com/sample/robots.txt |
なお、サブディレクトリ型のサイトなど、ルートディレクトリにrobots.txtを配置できないケースでは、ページごとにメタタグによる指定が必要となるので注意しよう。
// メタタグの例(各ページのヘッダー部分に記述する) <meta name=”robots” content=”noindex”> |
アップロードできたら作業は完了となる。
6. robots.txtを設置する上での注意点4つ
最後に、robots.txtを設置する時に気を付けたい注意点を4つ解説する。使い方を間違ってしまうとSEOにおいて逆効果になることがあるため注意しよう。
6-1. SEOでマイナスにならないよう慎重に設定しよう
ここまで解説したように、robots.txtはクロールさせたくないコンテンツをクロール拒否できる便利な仕組みである。
しかしむやみやたらにクロールさせてたり間違って指定してしまったりすると、本来クロールすべきコンテンツを巡回してもらえなくなり、SEOにおいてマイナスになりかねない。
例えば、間違って以下のように設定してしまうと、全ページがクロール拒否になってしまう。
例 User-agent: * Disallow: / |
こうしたミスが起こらないよう、慎重に設定するようにしよう。
6-2. robots.txtを指定してもインデックスはされる
robots.txtの設定でクロール拒否しても、他ページから参照されていれば、クロールすることなしにインデックス登録されてしまう可能性がある。
Google検索結果に表示されないようにしたければ、robots.txtを使うのではなく、noindexタグを使うかパスワード保護など別の方法を使おう。
// noindexタグを使う場合 // インデックスさせたくないページのhead内に以下を記載する <meta name=”robots” content=”noindex” /> |
noindexについては、「noindexとは?設定方法や注意点を分かりやすく解説」の記事でさらに詳しく解説しているので参照してほしい。
6-3. 既にインデックスされているページは検索エンジンに残る
6-2の内容とも関連するが、既にインデックスされているページは、新しくrobots.txtでクロール拒否の指示を出したところで検索エンジンに残ってしまう。なぜならば、すでにインデックスされてしまっているからだ。
インデックスされてしまったページのインデックスを拒否するには、一旦robots.txtの指定を外してクロールできる状態にしてからnoindexタグを設定する必要がある。その後、インデックス削除されたことを確認してから、またrobots.txtを設定する。
インデックスされてしまったページの インデックス登録を削除する方法 |
❶robots.txtの指定を外してクロール可能にする ❷noindexタグを設定する ❸インデックス削除を確認後、robots.txt再設定 |
少し手間はかかるが、これでインデックス済みのページを検索エンジンから排除できるので覚えておこう。
6-4. robots.txtで制御できない検索エンジンもある
Googlebotなど主要なクローラーはクロール前にまずrobots.txtを確認し、ブロックされているページがあるかどうかを確認する。
しかし、Google以外の検索エンジンも全てrobots.txtに対応しているとは限らない。
そのため、全ての検索エンジンから隠したいページがあるならば、robots.txtではなく、ページをパスワードで保護するなど別の方法を利用するのがおすすめである。
まとめ
この記事では、robots.txtとは何かから、設置すべきか判断するポイント、具体的な設定方法まで詳しく解説してきた。
robots. txtを設置すべきか判断するポイント |
❶【大前提】robots.txtは、必要なければ設置しなくてOK ❷中規模以上・更新多めなら、設置がおすすめ ❸小規模サイトや更新頻度が低いサイトは、無くてOK ❹メディアファイルをインデックス拒否したい時は設置 ❺Search Consoleでindexエラーが多い場合は設置推奨 |
小規模サイトなら、robots.txtは設置しなくても良い。クロールを最適化しなくても検索エンジンは正常にクロールできるからだ。
一方、大規模サイトや更新が多い中規模サイトなら、robots.txtで適切にクロールの割り当て管理を行うのがおすすめである。
注意点に気を付けながら、今回紹介した書き方や設置方法を参考に、robots.txtを設置してみることをおすすめする。
SEOをより深く理解したい方へ。バズ部のノウハウを全て詰め込みました。
SEO SEO
無料eBook:バズ部式マーケティング
広告費を1/10にして売上を倍増させる全手法

広告に頼り切ったマーケティングの打開策としてコンテンツマーケティングについて調べているけれど、よく分からないと悩んでいませんか?
本書は弊社やクライアント様がコンテンツマーケティングに取り組み
- ・SEOのみで月間100万PV集めた方法
- ・平均6.92%のコンバージョン率が出た新規顧客獲得法
- ・CPLやCPAを大幅に改善した方法とそのからくり
など、コンテンツマーケティングの効果と、具体的な施策内容を全94ページに渡って詳細に解説しているものです。
ぜひ、貴社のWEBマーケティングにもご活用ください。