Webサイトやブログにおいて重要なのは、検索エンジンのクロールで評価してもらいSEO効果を高めるということです。
その結果、ユーザーにとって有益なコンテンツは検索上位を狙うことができます。
しかしコンテンツが増えることでクロールが必要ないページも出てくるかもしれません。
そんな時に使いたいのが特定のページだけをクロール拒否できるrobots.txtです。
robots.txtはコンテンツが多い大規模なサイトには無駄なクロールが省けるため有効な手段だと言えます。
しかし間違った使い方をすると自サイトに悪影響が出る可能性もあるため、正しい使い方を知ることが重要です。
そこで本記事では、robots.txtの概要やその使い方と注意点などについて解説します。
robots.txtとは?
robots.txt(ロボッツ・テキスト)とは、特定のページをクローラーに巡回させないために設定するテキストのことです。
一般的にはクローラーに巡回させた方がSEO的にいいのでは?と思うかもしれません。
しかし、会員限定サイトや通販サイトのショッピングカートなどはクロールされると逆にサイト全体のSEOに悪影響が出る可能性があるのです。
robots.txtを設定することで、無駄なコンテンツをクロールすることなく重要なコンテンツだけをクロールされるため、サイト内も最適化されます。
SEO観点でのrobots.txtの重要性
robots.txtの設定により、無駄なコンテンツのクロールを省き、効率よくクローラーが巡回することができます。
その結果、自サイトで評価してほしいページだけがクロールされるため、SEOの評価が早い段階で得られる可能性があるのです。
また、クロールさせたいページはユーザーにとっても有益だと言えるでしょう。
そのため、自サイトにとって重要で優先したいページをクロールさせて、効率よくインデックスさせることが重要です。
robots.txtとnoindexの違い
noindexは、指定したページやコンテンツが検索エンジンの結果に表示されないように指示を出すためのタグのことです。
noindexとrobots.txtはインデックスを制御する点では同じですが、それぞれの役割には違いがあります。
robots.txt | noindex | |
使用目的 | クロールをさせない | クロールはするが検索表示させない |
使用箇所 | テキストファイルを入力 | <head>タグ内に入力 |
サイト内の<head>にnoindexタグを入れることにより、ユーザーが検索してもそのページは表示されません。
一方、robots.txtはクロールされたくないページは指定できますが、すでにクロール済みのページやリンクされている場合は、ユーザーが検索すればそのサイト自体は表示されます。
robots.txtとnoindexの使い分け
robots.txtはクロール自体をさせないように制御する機能に対し、noindexはクロールはするが、検索結果に表示しないようにする機能です。
このようなことから、robots.txtとnoindexは以下のように使い分けましょう。
- robots.txt:特定のページだけをクロールさせたくない場合に設定
- noindex:特定のページだけをインデックスさせないようにする場合に設定
例えば、会員向けページやログインを必要とするサイトはそもそもクロールできないため、サーバー側でエラーが検知される可能性があります。
そのため、このようなサイトには積極的にrobots.txtを設定しましょう。
そうすることで、無駄なページをクロールすることなく効率的にサイトをクローラーが巡回してくれるため、早い段階でのSEO効果が期待できるのです。
また規模の大きなサイトを運営している場合、無駄なページや画像などをクロールさせる必要がないと判断した場合には有効な手段だと言えます。
一方、noindexはクロールはするものの、ユーザーが検索しても表示させません。
そのため、無駄なページをクロールされることや検索エンジンに評価されないということが特徴です。
ユーザーに検索してほしくないサイトやページにはnoindexを設置するようにしましょう。
robots.txtの4つの型
robots.txtのコードには以下の4つがあります。
- User-Agent
- Disallow
- Allow
- Sitemap
robots.txtの書く時には「専門的な知識が必要では?」と感じている人もいるかもしれませんが、そんなことはありません。
上記4つのコードを使い分けてクロールを拒否するページを明確にし、自サイトの最適化をはかりましょう。
ここでは、robots.txtに使う4つのコードについて解説します。
User-Agent
User-Agenは、制御するクローラーを指定するためのコードです。
基本的には「User-agent:*」のように「*(アスタリスク)」を入力して全てのクローラーを制御するように設定しますが、下記のように制御したい検索エンジンだけを指定することもできます。
- 例1:Googleのクローラーだけを制御したい場合→User-agent:Googlebot
- 例2:Yahoo!のクローラーだけを制御したい場合→User-agent:slurp
- 例3:Microsoft bingのクローラーだけを制御したい場合→User-agent:Bingbot
Disallow
Disallowは、英語で「許可しない」という意味があり、クローラーが巡回するディレクトリやページを指定するコードです。
以下に記述例を紹介します。
- 例1:「https://seosite.jp」のサイト全体をクロール拒否させる場合
→「Disallow:/」 - 例2:「https://seosite.jp」のサイトページにある「simpledir」というディレクトリだけをクロール拒否する場合
→Disallow:/simpledir/ - 例3:「https://seosite.jp/」のサイトページにある「simpledir」ディレクトリ内の特定ページである「simplepage.html」だけをクロール拒否させたい場合
→Disallow:/simpledir/simplepage.html
ちなみに、Googleでは以下のように記述することで特定のファイル形式へのクロールを拒否することが可能です。
- Googleのクロール拒否コード:Disallow:/*.pdf$
しかし、これはGoogle独自の記述のため、その他の検索エンジンには効果がありません。
そのため、すべての検索エンジンで適用させるには、クロールさせたくないページを特定のディレクトリに整理しておくなどの対策をする必要があります。
Allow
Allowは英語で「許可」の意味で、Disallowで指定しているディレクトリ配下の限られた部分(サブディレクトリ)だけをクロールさせたい場合に使用するコードです。
サブディレクトリを指定する時は末尾に「/(スラッシュ)」、特定のページを指定する時はブラウザ表示そのままのページ名で記述します。
- 例:「https://seosite.jp」サイト全てを拒否するが、「simpledir」ディレクトリ内の特定ページ「/simplepage.html」だけを許可する場合
→Allow:/simpledir/simplepage.html
ただし、robots.txtのデフォルトは全てのページをクロールする設定になっているため、Disallowコードを使わない場合には基本的に不要なコードです。
Sitemap
Sitemapはクローラーがサイト内で迷子にならず正しくクロールできるように自サイトの構造を伝えるための「地図」のようなものですが、基本的に記述しなくても問題ありません。
しかしSitemapは、検索エンジンにサイト内容を分かりやすく伝える役割があるため、記述することでクローラーが巡回しやすくなります。
そのため大規模なサイトなど、少しでも早くSEOの効果を得たい場合は積極的に記述しましょう。
- 例:Sitemap:https://seosite.jp/sitemap.xml
- 例:Sitemap:https://seosite.com/index_sitemap1.xml
robots.txtの書き方
robots.txtの基本的な書き方を以下に紹介します。
robots.txtの書き方 | 概要(指示の対象例「https://seosite.jp」) |
User-agent* | 制御するクローラーを指定 (全てのクローラーを制御する場合は*を先頭に記述) |
Disallow: | Disallow:/simpledir/ (クロールを許可しない箇所) |
Allow: | Allow:/simpledir/simplepage.html
(このページのみクロールを許可する) |
Sitemap: | Sitemap:https://seosite.jp/sitemap.xml (サイトの存在をクローラーに知らせる) |
上記をもとにして記述すると以下の通りになります。
User-agent:*
Disallow:/simpledir
Allow:/simpledir/simplepage.html
Sitemap:https://seosite.jp/sitemap.xml
また、多くのサイトやブログで使用されているWordPressでは以下のようにデフォルトでrobots.txtが設定されています。
User-agent:*
Disallow:/wp/wp-admin/
Allow:/wp/wp-admin/admin.php
Sitemap:http://www.example.co.jp/sitemap.xml
このように通常のrobots.txtとは異なるため、WordPressを使用している場合には注意が必要です。
robots.txtの設定方法
robots.txtの設定はFTPソフトを使ってrobots.txtファイルをサイトにアップロードしていきます。
FTPソフトとは、FTP(File Transfer Protocol)と呼ばれる通信上の約束事を用いて、サーバーからファイルを送受信できるツールのことです。
そして、robots.txtファイルは必ずルートドメインに設置しましょう。
ルートドメインとは、WebサイトのURLの基本となる部分で「www.」の後にくる文字列のことです。
例えば、URLが「www.seosite.com」なら「seosite.com」の部分がルートドメインになります。
もしルートドメイン以外に設置した場合、クローラーを制御できないため注意が必要です。
表示例
正→https://seosite.com/robots.txt
誤→https://seosite.com/sample/robots.txt
robots.txtの動作確認方法
せっかくrobots.txtを設置しても、間違った記述ではクローラーを制御できず、無駄なページをクロールしてしまいます。
また、重要なページがインデックスされない可能性もあるため、robotstxtの記述は必ず確認しましょう。
そこで、Googleサーチコンソールの「robots.txtテスター」というツールを利用し、記述したrobots.txtが正しく動作しているかを確認することが重要です。
robots.txtの記述確認方法は以下の3つになります。
- Googleサーチコンソールの「robots.txtテスター」を開く
- 現在公開されているrobots.txtが表示されるので、URLを入力し「テスト」をクリック(ない場合は『robots.txtが見つかりません(404)』と表示される)
- テストを送信後、Disallowで記述された部分が赤くなり「ブロック済み」となっていることで記述が正しいことが確認できる
この一連のテストはサイトやブログをアップロードする前に必ず行うようにしましょう。
robots.txtの注意点
robotstxtは上記の4つの項目を記述するだけで簡単に設定できますが、間違った使い方をするとSEOに悪影響が出る可能性もあるため注意が必要です。
ただし、以下にあげる3つの点に注意して活用することを意識しましょう。
- インデックスの拒否を目的として使わないこと
- 重複コンテンツへの施策として使わないこと
- ユーザーのアクセス拒否はできない
順に解説します。
インデックスの拒否を目的として使わないこと
robots.txtはあくまでもクロールを拒否するテキストのため、インデックス拒否を目的として使ってはいけません。
インデックス自体を拒否する場合には、robots.txtではなく「noindex」を使いましょう。
robots.txtでDisallowを入力するとクロールを制御しインデックスを制限できます。
しかし、その他のページでDisallow対象のページが設置されている場合は、内部リンクからインデックスされる可能性があります。
そのため、どうしてもインデックスされたくないページには必ず<head>内に「noindex」を使用するようにしましょう。
重複コンテンツへの対策として使わないこと
サイトを運営していくと徐々にコンテンツも増えていきますが、重複したコンテンツに対してrobots.txtを使うのはやめましょう。
仮にrobots.txtで重複したコンテンツをクロール拒否したとしても、すでにインデックスされた時点で検索エンジンはそのコンテンツを認識しているため、解決策にはなりません。
そのため、重複したコンテンツにはnoindexもしくは複数のURLを統一するなどの対策を取るようにしましょう。
ユーザーのアクセス拒否はできない
robots.txtを設定するとユーザーのアクセスもできなくなると勘違いする人がいます。
しかしrobots.txtの役割はあくまでも特定のページをクロール拒否することなので、ユーザーのアクセスを制限することはできません。
ネット上にそのページのURLが記載されている時点で、たとえクロールさせなくてもサイトへのアクセスは可能です。
そのため、非公開にしたいページにnoindexタグを使うようにしましょう。
ただし、すでにrobots.txtでクロール拒否したページはnoindexタグを設置してもインデックスを拒否できないため注意が必要です。
サイトの閲覧を拒否するためには一旦robots.txtを外し、クロールできる状態にした後でnoindexタグを設定し、再度robots.txtを設定しましょう。
robots.txtを適切に設置してSEO効果を高めよう
robots.txtは特定のページをクロール(巡回)させないための施策として有効です。
無駄なページをクロール拒否しユーザーに有益なページだけをクロールしてもらうことで、早い段階でSEO効果を得ることが期待できます。
ただし、間違った認識でrobots.txtを使わないように注意が必要です。
robots.txtはあくまでも特定のページだけをクロールさせないために設置するものであり、ページ自体をアクセスできないようにするにはnoindexを設定する必要があります。
robots.txtを適切に設置しSEO効果を高めて、自社サイトの検索上位を狙いましょう。