robots.txtとは?書き方のルール・設定方法を解説
「robots.txt」とは検索エンジンのクローラーがページをクロールするのを管理するためのファイルです。「どのような場面で使用するのか?」「どのように設定するのか?」「noindexタグとの違いは何か」など、疑問に感じている方も多いのではないでしょうか?本記事では、robots.txtの意味や使い方について詳しく解説します。
robots.txtとは
robots.txtは、検索エンジンのクローラーが自社のWEBサイトを読み込む際にアクセスするページを制御するためのテキストファイルで、「ロボッツ・テキスト」と読みます。
主に、WEBサイトの管理者が検索エンジンに対して特定のページや、ディレクトリグループへのクロールを拒否することを指示するために使用されます。
Googleのクローラーは、インターネットを通じて世界中のWEBページをクロールしてページの情報を集めています。
クローラーは、ページにアクセスしたら最初にrobots.txtファイルにアクセスしてクロールが許可されているかを確認するため、クロールしてほしくないページがある場合は、robots.txtファイルに記述してクロールを拒否することが出来ます。
robots.txtを使うケース
通常robots.txtを使う場面は多くはありませんが、以下に該当するケースではrobots.txtを使ってクロールを制限します。
- クロールバジェットに悪影響が出ている場合
- クローラーのアクセスがサーバーの負荷になっている場合
尚、一部のサイトではrobots.txtはインデックスを防ぐために使用すると紹介されていますが、それは誤りです。
robots.txtでクロールを拒否しても外部サイトのリンクなどからインデックスされる可能性があるため、インデックスを完全に拒否したい場合はnoindexタグを使うか、WEBページにパスをかける必要があります。
クロールバジェットに悪影響が出ている場合
クロールバジェットとは、Googleのクローラーが1つのWEBサイトをクロールできる上限を指します。Googleの検索エンジンもリソースには限りがあり、世界中で日々増加するWEBページを全てクロールすることはできません。
小規模なサイトではクロールバジェットを特に心配する必要はありませんが、100万ページを超えるような大規模なサイトでは、クロールバジェットの制限によりクローラーが新しいページを巡回しない可能性があります。
そのため、クロールバジェットに悪影響を与えないように、検索結果に表示する必要がないページはrobots.txtを使って拒否し、重要なページを優先的にクロールしてインデックスさせる対策を行います。
クローラーのアクセスがサーバーの過負荷になる場合
robots.txtの使用は、検索エンジンのクローラーによるアクセスがサーバーに過負荷をもたらしている場合に有効です。
通常、Googleのクローラーがサーバーに高い負荷をかけることは少ないですが、稀に大量のアクセスが発生することがあります。(大規模サイトのSEO担当者の方はサーバーログなどで確認しているはず)
そのような状況を防ぐため、robots.txtを利用して不要なページのクローリングを禁止し、サーバーへの負担を事前に軽減させることができます。
robots.txtの書き方
robots.txtの書き方は、テキストエディタを開き、「User-agent: 」でクローラーを指定し、「Disallow:」でアクセス禁止するパスを設定します。ファイル名を「robots.txt」で保存し、WEBサイトのルートディレクトリにアップロードして完了です。
具体的には、下記の流れで作成からアップロードまで行います。
- robots.txtという名前のファイルを作成する
「メモ帳」や「Crescent Eve」などのテキストエディタで、ファイル名をrobots.txtにしたファイルを作成します。 - ファイル内にクローラーに対する指示を書く
作成したrobots.txtファイルにクローラーのアクセスを拒否・許可する指示を書きます。 - サイトのルートにrobots.txtファイルをアップロードします
FTPソフトや、コントロールパネルを使用して、サーバーからWEBサイトのルートディレクトリ(最上位のディレクトリ)にアップロードします。 - 正しく設定されているかテストをします
robots.txtテスターを使って正しく設定されているかを確認します。
robots.txtファイル内に記載するルールの書き方
robots.txtを設定する流れを理解したら、実際に作成したファイル内に記載するルールについて解説します。
robots.txtファイル内に記載するクローラーに対しての指示(ルール)は、
- 「User-Agent」
- 「Disallow」
- 「Sitemap」
の3つの要素で構成されています。
robots.txtファイル内の記入例は以下になります。
User-agent: *
Disallow: /
Sitemap: http://www.○○.com/sitemap.xml
それぞれの要素についての意味と書き方について解説します。
User-agent
「User-agent」は、制御するクローラーを指定する項目でrobots.txtの最初の行に必ず記述する必要があります。
基本の形は以下になります。
User-agent: ●●bot
User-agent:の後ろに指定するクローラー名を記述します。尚、User-agentの行では、大文字と小文字の区別はされません。
■ 全てのクローラーに対する指示
全てのクローラーに対して指示を出す場合は、「*」アスタリスクを記述します。
User-agent: *
■ 特定のクローラーに対する指示
特定のクローラーに対して指示を出す場合は、User-agent:の後にクローラー名を記載します。
以下の例では、Googleのクローラー「Googlebot」にのみ適用する記述方法です。
User-agent: Googlebot
Googlebotの代わりに別のクローラーの名前を使用すれば、そのクローラーに特化したルールを設定できます。
■ 複数のクローラーに対する指示
複数のクローラー(検索エンジンのロボット)を対象とする場合、robots.txtファイル内でそれぞれのクローラーに対して異なる指示を出すことが可能です。
・User-agent: Googlebot
# ここにGooglebotに対する指示を書く
・User-agent: Bingbot
# ここにBingbotに対する指示を書く
Disallow
【Disallow】は、クロールを拒否するページを指定する項目です。特定のページだけでなく、範囲を指定して拒否することもできます。Disallow:に記載したディレクトリやファイルはクロールされません。
Disallow:の後に何も記述しない場合は、そのUser-agentに対して何も禁止しないことを意味するため全てのページがクロールされます。尚、Disallowに記述するかどうかは任意です。
■ サイト全体をクロールから除外する場合
クローラーがサイト内の全てのページへのアクセスを禁止するように指示する場合は、以下のように記述します。
Disallow: /
■ 特定のディレクトリをクロールから除外する場合
特定のディレクトリ全体をクロールから除外する場合は、/の後にディレクトリ名を記述します。
例えば、/seo/のディレクトリをクロールから除外する場合は以下のように記載します。
Disallow: /seo/
■ 特定のファイルをクロールから除外する
特定のファイルをクロールから除外する場合は、/の後にファイル名を記述します。
例えば、/directory/file.htmlをクロールから除外する場合は以下のように記載します。
Disallow: /directory/file.html
allow
【Allow】は、クロールを許可するページを指定する項目です。記述するかどうかは任意です。前提としてクローラーはすべてのページをクロールするため、クロールを許可したいページのすべてを【Allow】で許可する必要はありません。
前述した【Disallow】で拒否した範囲の中で、特定のページのクロールを許可したい場合に【Allow】で指定します。
【Allowの記述例】
User-agent: *
Disallow: /(ディレクトリ名)/
Allow: /(ディレクトリ名)/(ページURL)
Sitemap
【Sitemap】は、クローラーにXMLサイトマップ(sitemap.xml)の場所を伝えるために記述します。ただし、robots.txtファイルにSitemapを記述するかどうかは任意のため、sitemap.xmlファイルを作成していない場合は未設定でも問題ありません。
Sitemapを指定するには、下記のように「Sitemap:」の後ろにサイトマップのファイル名を記載します。
Sitemap: http://www.○○.com/sitemap.xml
■ 複数のサイトマップを指定する場合
複数のサイトマップを持っている場合は、下記のように「Sitemap: 」を複数記述することでサイトマップを指定できます。
- Sitemap: http://www.○○.com/sitemap1.xml
- Sitemap: http://www.○○.com/sitemap2.xml
XMLサイトマップはGoogleサーチコンソールから送信していればクローラーに認識してもらえますが、他の検索エンジンのクローラーに対しては、robots.txtに記述することでXMLサイトマップの存在を知らせることができます。
robots.txtの確認方法
robots.txtファイルをサーバーにアップロードしたら、記述ミスが無いかを確認しましょう。robots.txtが正しく設定できているかどうかは「サーチコンソール」の「robots.txtレポート」で動作確認を行います。
※ 以前はrobots.txtテスターから動作確認を行うことが出来ましたが、2023/12/12で廃止となっています。
確認方法は、サーチコンソールログイン→設定→robots.txtをクリックしてステータスを確認します。正しく設定されている場合は、取得ステータス に「取得済み」のステータスが表示されます。
「未取得 - 見つかりませんでした(404)」や「未取得 - その他の理由」が表示された場合は、正しい場所にアップロード出来ていない可能性があります。
robots.txtレポートについての詳細は、Googleサーチコンソールの公式ヘルプをご確認ください。
robots.txtの注意点
robots.txtを作成・設置する際に注意することは以下の5点です。
- インデックスを拒否することはできない
- ユーザーはページを見る事ができる
- robots.txtの内容は外部に見られる
- robots.txtを設定してもSEO効果はない
- robots.txtは全ての検索エンジンに対して強制力があるわけではない
インデックスを拒否することはできない
robots.txtは、クローラーがページをインデックスするのを拒否するために設置するファイルではありません。特定のページのクロールを拒否する指示をrobots.txtで指定しても、外部サイトにURLが貼られている場合、クローラーがリンクを辿ってページをクロールし、インデックスする可能性があります。
特定のページをインデックスしたくない場合は、robots.txtではなくnoindexタグを設置しましょう。
ユーザーはページを見る事ができる
robots.txtを使って特定のページのクロールを拒否しても、ユーザーはそのページを閲覧できます。robots.txtはクローラーのページクロールを拒否するだけで、ユーザーのページアクセスを直接防ぐことはできません。
そのため、ユーザーによるページの閲覧を完全に防ぎたい場合は、ページを削除するか、サイト全体または特定のページにパスワードを設定し、アクセスを許可されたユーザーのみが閲覧できるようにしてください。
robots.txtの内容は外部に見られる
サイトに設置しているrobots.txtにどのような内容が記述されているかは、下記のようにサイトのURLの末尾に「robots.txt」を付け加え、ブラウザのアドレスバーに入力することで、サイトの運営者だけでなく誰からでも確認することができます。
【例】
https://○△■.com/robots.txt
robots.txtを設定してもSEO効果はない
robots.txtを設定したからといって、SEO効果が高まることはありません。なぜならrobots.txtはクローラーが巡回する効率を高めるためのものであり、ページの品質を高めるものではないからです。
SEO効果を高めるためには高品質なコンテンツの作成、適切なキーワードの使用、サイトのパフォーマンスの最適化、被リンクの獲得など、多方面にわたる取り組みが必要です。
robots.txtは全ての検索エンジンに対して強制力があるわけではない
robots.txtは検索エンジンのクローラーに対するクロールの指示を提供するものであり、全ての検索エンジンに対して強制力を持つわけではありません。Google等の一般的な検索エンジンは指示に従いますが、悪意のあるボットやクローラーがrobots.txtを無視する場合があります。
そういった悪意を持った検索エンジンのクロールを拒否するには、.htaccessを使って制限する必要があります。
robots.txtとnoindexタグの違い
robots.txtとnoindexタグの違いは、そもそもの役割が異なります。
robots.txtはクロール自体を制限するファイルなのに対して、noindexタグはHTMLタグに記載するメタタグで、クロールを制御するものではなく、インデックス自体を拒否するために使用します。
【robots.txtとnoindexの違い】
robots.txt | noindexタグ | |
---|---|---|
役割の違い | クロールを拒否する | インデックスを拒否する |
インデックスの有無 | インデックスされる可能性がある | インデックスされない |
クロールの有無 | クロールを拒否できる | クロールされる |
尚、Googleのクローラーはページを読み込む前にrobots.txtを確認してクロールの拒否許可を確認します。そのため、noindexタグを設定してもrobots.txtでクロールを拒否している場合、クローラーがnoindexを読み込むことが出来ないためインデックスされます。
ぺージを検索結果に表示させたくない場合は、robots.txtではなくnoindexタグを使用しましょう。
まとめ
今回は、robots.txtの概要からSEO効果、設置する目的、作成・記述方法について解説しました。
ページをrobots.txtでクロール拒否しておくことで、クロールが効率化します。また、画像や動画など100万ページを超えるような大規模なサイトではクローラーの負担が大きくなるため、必要のないデータ量が大きいファイルを多数設置しているサイトでも効果的です。
一方、ページ数が少ないサイトでは、robots.txtの設置が必須なわけではありません。
また、robots.txtに記述ミスがあると、ページのインデックスが遅れたり、アクセス数が低下する恐れもあります。robots.txtを設置する必要があるかを確認し、適切な方法で作成・設置しましょう。
ぜひ、読んで欲しい記事
- SEO対策構造化データとは?SEO効果とメリット・書き方を解説2024/11/27
2024/11/27
- SEO対策被リンクとは?SEO効果の高いリンクをわかりやすく解説2024/11/27
2024/11/27
- SEO対策SEO外部対策とは?やり方と注意点を徹底解説2024/11/25
2024/11/25
- SEO対策内部リンクとは?貼り方とSEO効果について解説2024/11/25
2024/11/25
- SEO対策更新頻度とSEOの関係は?最適なコンテンツの管理方法を解説2024/10/28
2024/10/28
- SEO対策ブラックハットSEOとは?ホワイトハットSEOとの違いと手法一覧2024/10/17
2024/10/17