
robots.txtって何だろう?理解した方がいいの?

現役でSEO対策の仕事をしている私がrobots.txtについて解説します。SEOを意識するなら設定は必須ですので、robots.txtの役割や作成方法を理解しておきましょう。
robots.txtとは

robots.txtとは、
検索エンジンの巡回をコントロールするためのファイルのことです。
読み方は「ロボッツ・テキスト」です。
以下のような役割を持っています。
- sitemap.xmlの設置場所を通知する。
- 巡回(クロール)してほしくないファイルを通知する。
検索エンジンのロボットは、
robots.txtのファイルにアクセスして、アクセスするべきページ、しなくてもよいページを判断しています。
ちなみに、ここで言う検索エンジンのロボットとは、Googleだけではなく、他の検索エンジンのロボットも含みます。
たとえばWebサイトに管理者だけが入れる管理者ページがあったとします。
通常、管理者ページはインデックス登録してもらう必要がないです。ですので、検索エンジンのロボットが巡回しないように、robots.txtに巡回拒否の記述をします。
robots.txtのSEO効果

SEO対策をする場合、
robots.txtの設置は必須です。
インデックスの必要がないページの巡回を制御してサイトの評価を高めたり、sitemapの場所を正しく伝えて、インデックスの促進につながったりするためです。
また、巡回を拒否するファイルがない場合であっても、robots.txtの設置は必須です。
GooglebotはWebサイトをクロールする前後に1日1回程度、robots.txtファイルを取得します。その際にHTTPステータスコード200や404が返されない場合、検索エンジンはクロールすべきでないURLをクロールしないように、クロールを延期します。これでは一向にページがインデックスされない問題が発生してしまいます。
『現場のプロから学ぶSEO技術バイブル』西山悠太郎/小林睦 マイナビ 2018年7月30日初版発行
ちなみに、robots.txtの話が出るときに、
クロールバジェットの話が出ることもありますが、関係ないと思います。
【クロールバジェット】
検索エンジンのロボットが各サイトに割り当てているクロールの限度数のこと。クロールバジェットの存在は否定されています。
robots.txt ファイルは、クローラがどのページやファイルをサイトからリクエストできるか、またはできないかを検索エンジン クローラに知らせるものです。これは主に、サイトでのリクエストのオーバーロードを避けるために使用され、Google にウェブページが表示されないようにするためのメカニズムではありません。
https://developers.google.com/search/docs/advanced/robots/intro?hl=ja
ちなみに、Google公式にはrobots.txtの役割について上記のように書いてあります。
robots.txtの設置を確認してみよう
自分のサイトにrobots.txtが設置されているかは、robots.txtファイルにアクセスすることでわかります。
Web制作の会社が設置していることもありますし、CMSによっては設置して覚えがなくても設置されていることもあります。
例)sample.com/robots.txt
ご自身のWebサイトにrobots.txtが設置されているか確認してみましょう。
robots.txtの作成方法

それではrobots.txtの作成方法をみていきましょう。
複雑なコードを書くとかはないので、
作成はメモ帳エディタとかでOKです。
アクセスを許可、または拒否する
【基本の記述】
User-agent: *
Allow: /
「Allow」=アクセスを許可するです。
※デフォルト状態はすべてのアクセスを許可するなので、実際にアップロードするファイルに関しては、あえて上記のような記述をする必要はないです。
アクセスを拒否する場合は「Disallow」を使用します。
【「/login/」配下のファイルへのアクセスを拒否する場合】
User-agent: *
Disallow: /login/
【「Allow」と「Disallow」の併用】
User-agent: *
Disallow: /login/
Allow:/login/○○.html(php)
「/login/」は基本拒否だが、
login配下の特定のファイルは許可という場合です。
「User-agent」の「*」は、
すべての検索エンジンロボットに対してという意味です。
「Googlebot」だけといった記述も可能ですが、特定の検索エンジンだけに指定するケースはあまりないと思いますので、基本は「*」でOKです。
sitemapの場所を指定する
sitemapの場所も指定しておきましょう。
Sitemap : sample.com(ご自身のサイトURL)/sitemap.xml
上記でOKです。
とくに拒否したいファイルなどがない場合には、最低限sitemapの記述だけしてアップしておけばOKです。
robots.txtの注意点

robots.txtにはいくつか注意点がありますのであわせて記載します。
robots.txtの一番の注意点ですが、
robots.txtには強制力がないという点です。
あくまでも「お願い」であって、
「命令」ではありません。
ですから、「robots.txtで設定したのになんで?」となっても、「いや、強制力ないから仕方ないよ」という話になってしまいます。
覚えておきましょう。
ページを非表示にするためには使えない
robots.txtについて最も誤解しやすい点が、robots.txtに巡回拒否の記述をしたからといって、ページが非表示されるわけではない点です。
ふつうに表示されますし、場合によってはインデックスされます。
ですので、一般ユーザーに見られたらまずいファイルをrobots.txtでブロックするのは間違いです。
インデックスされたくない、
あるいは見られたくない場合には、他の方法を検討する必要があります。
パスワード制限
一般ユーザーに公開したくないページがある場合には、パスワード制限をかけるのが基本です。
ベーシック認証などを利用すれば簡単にパスワードがかけられます。
パスワード制限をかければ、
一般ユーザーは見れませんし、クローラーもアクセスできなくなるため、インデックス登録もされません。
noindex
検索エンジンにインデックス登録されたくない場合に使用する方法としては、「noindex」が一般的です。
「noindex」とはページのソースコード内に「noindex」という記述をすることで、検索エンジンへの登録を拒否する方法です。
JavaScriptやCSSをブロックしない
そのほかのrobots.txtの注意点ですが、
JavaScriptやCSSをブロックしない点も重要です。
robots.txtのファイルを作成するときに、「JavaScriptやCSSファイルはブロックしてもいいのかな?」と悩むかもしれません。
私自身、過去にJavaScriptやCSSファイルをブロックしていたこともありますが、ブロックしないが正解です。
インデックスやレンダリングに問題が起きる可能性があります。
場合によってはセキュリティを優先
robots.txtでブロックする際に悩ましいのが、管理者ログインページをブロックするかどうかです。
robots.txtの役割は、
巡回の必要がないファイルの除外なので、管理者ログインページは除外するべきです。
しかし、robots.txtは誰でも見ることができるファイルのため、robots.txtに管理者ログインページのURLを記述することで、ログインページのURLが公開されてしまいます。
IDやパスワードがバレるわけではないので、私は問題ないと思っていますが、場合によっては記述しない選択も必要です。
まとめ
robots.txtは少しとっつきにくいものですが、基本はシンプルなのでぜひ覚えておきましょう。
最低限、「アクセスしてほしくないファイルを設定する」と「検索エンジンのロボットはrobots.txtを見にくるから設置は必須」という点を覚えておけば大丈夫です。
もしもご自身の管理するWebサイトにrobots.txtの設置がなかったら、最低限sitemapの記述だけでもOKなので、設置してみてくださいね。