robots.txtは、ウェブサイトのルートディレクトリに置かれるテキストファイルで、検索エンジンのクローラー(ロボット)に対して、ウェブサイトのどの部分をクロールしてインデックスするかを指示するためのものです。
今回の記事では、robots.txtの役割と書き方について解説していきたいと思います。
目次
robots.txtの役割
robots.tstは、ルートディレクトリに設置します。
弊社のサイトであれば、以下の通りです。
https://www.semlaboratory.jp/robots.txt
ルートディレクトリとは、「indexファイル」が設置されるディレクトリです。
サーバーのディレクトリは、ブラウザからは表示することが出来ない階層とブラウザで表示することが出来る階層があります。
/test/www/root/index.html
例えば、上記のディレクトリがあった場合、rootまではブラウザに表示されませんが、index.htmlからブラウザに表示される階層だった場合、この時のルートディレクトリは、rootになります。
このディレクトリについては、サーバーの仕様によって異なりますので、ご自身の環境にあわせて理解するようにしてください。
で、上記のディレクトリ階層にrobots.txtを置く場合、以下のような配置で設置することになります。
/test/www/root/robots.txt
で、設置したrobots.txtの役割は大きくは以下の通りです。
- 検索エンジンのクローラーにアクセスされたくないページやディレクトリを伝えること
- XMLサイトマップのURLを伝えること
- 画像、動画、音声ファイルを検索結果に表示させないようにクローラーに伝えること
- クローラビリティを向上させること
一つ一つ深掘りをしていきたいと思います。
検索エンジンのクローラーにアクセスされたくないページやディレクトリを伝えること
当サイトのrobots.txtにも記載されていますが、管理画面のURLにアクセスされる意味はありませんよね。
他にもアクセスされたくないページは多々ありますよね。
そういうページやディレクトリに検索エンジンのクローラーがクロールしないように指示するための役割を持っています。
当サイトのrobots.txtに記載がありますので、是非ご覧ください。
検索エンジンのクローラーは世にあるCMSの階層などは学習済みであることと、予測クローリングも実施するようで、隠しているつもりのページやディレクトリも実のところ、クローリングされている可能性もあります。
そういった時のために、あらかじめ”クローリングしないでね”と伝えておくという仕事を果たしてくれています。
robots.txtの設置が固定的なのも、Googleがあらかじめ先に調べることで無駄なクローリングを減らす役目があるということなんですね。
XMLサイトマップのURLを伝えること
xmlサイトマップのURLを伝えることが出来ます。
これは、見られたくないページを見られないようにすることとは反対の意味を持ち、逆に”これらのページが重要だよ”ということを事前に伝えることが出来るようにもなっているんですね。
sitemap.xmlは、xmlでマークアップされた構造化データの一種です。
ここでは、細かな説明は割愛させていただきますが、重要なデータであり、wordpressのようなCMSを運用するならば手軽に配信することが出来ますので、まだ配信されてない方は是非sitemap.xmlを配信するようにしてください。
当サイトのrobots.txtに記載がありますので、是非ご覧ください。
また、当サイトのsitemap.xmlもあわせてご覧ください。
画像、動画、音声ファイルを検索結果に表示させないようにクローラーに伝えること
htmlでマークアップ出来るページであればページの中にクローラーへの指示が書き込めますが、画像や動画や音声ファイルに、クローラーへの指示を書くことは出来ません。
ですので、そんな時には、robots.txtに指示を書き込み、検索エンジンに表示されないように指示することが出来るようになっています。
著作物であったり、クローズドな環境でしか表示する予定のない画像データ、動画データ、音声データがある時には、robots.txtをご活用いただくこと必須かなと思います。
クローラビリティを向上させること
”検索結果ページ”のような大量にページが生成されるようなシステムページには、メタタグでnoindexタグが埋められたりしていることがとても多くなりました。
wordpressを代表とされるようなCMSでは、今では当たり前のようにnoindexタグが使われていたりします。
これは、検索結果に表示される見込みのないページをわざわざ評価されないようにする意図があるわけですが、これと同じように、そもそもGoogleの検索結果に出てくることがないだろうページをあらかじめ指定して、クローラーが巡回することをコントロールするような役割を持っています。
総じて、クローラビリティを向上させるという役割を持っています。
robots.txtの記述方法と役割
当サイトのrobots.txt
さて、そんなrobots.txtの記述方法について、以下、サンプルを記載してまいります。
当サイトのrobots.txtへの記述内容は以下の通りです。
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://www.semlaboratory.jp/sitemap.xml
Sitemap: https://www.semlaboratory.jp/sitemap.rss
「Allow」は”クローラーの巡回を許可する”という意味を持ちます。
ですので、「/wp-admin/admin-ajax.php」へのアクセスは許可されています。
「Disallow」は”クローラーの巡回を許可しない”という意味を持ちます。
ですので、「/wp-admin/」へのアクセスは許可されていません。
上記の通り、アクセスを許可しない領域でも、ファイルを指定して個別にアクセスを許可することが出来ます。
また、その下にある、「Sitemap」の表記はそのまんまですね。
***.xmlや、***.rssを配信されている場合は、robots.txtに記載するようにしましょう。
ユーザーエージェント
ユーザーエージェントには、以下の種類が主に存在しています。
記述例
- User-Agent:* / 全てのクローラーへの指示
- User-Agent:Googlebot / Googleのクローラー
- User-Agent:Googlebot-Image / Googleの画像のクローラー
- User-Agent:Googlebot-News / Googleのニュースのクローラー
- User-Agent:Googlebot-Video / Googleの動画のクローラー
- User-Agent:Bingbot / Bingのクローラー
- User-Agent:MSNBot-Media / Bingのファイル全般のクローラー
画像ファイルや動画ファイルをクローリングしないでおきたい場合、ユーザーエージェントを正しく設置しないと意図しない動作をしますので注意してください。
パラメーターを含んだページのコントロール
パラメーターを含めページについては以下のような形でアクセスをコントロールします。
Disallow: /*?
例えば、以下のような形で類似したページがある際に、アクセスをしないでもらうための仕組みです。
- https://www.semlaboratory.jp/?aaa
- https://www.semlaboratory.jp/?bbb
- https://www.semlaboratory.jp/?ccc
- https://www.semlaboratory.jp/?ddd
ECサイトであれば、商品のカラーやサイズなどの分類によって重複ページがたくさん出る時があります。
そんな時は、ちゃんとコントロールをした方がいいですね・・・という内容です。
本家サイトで詳細を確認してください
細かい記述やルールは本家サイトに掲載されていますので、こちらもご確認いただきながら記述を進めていただければと思います。
robots.txtの確認について
細かい内容はたくさんあるんですが、ひとまずは上記を知っておくことで多くの問題は解決できると思います。
で、最後は以下のツールを使い、入力内容に間違いがないか確認をするようにしてください。
せっかく丁寧にrobots.txtを記述しても間違えた記述になりますと、いつまで経っても検索結果にページは表示されませんし、消したいファイルを消すことも出来ません。
致命的なミスになりかねませんので、十分にテストをしていただき実装してくださいね。
締め
robots.txtについて以上です。
いかがでしたでしょうか?
少し複雑な感じもしますが、慣れればそんなこともありませんので、いろんなサイトで確認してみてくださいね。
例えば、YouTubeさんとかでも配信してるくらいですので、そんな珍しいモノでもないのかなと思います。
- https://www.google.co.jp/robots.txt
- https://www.youtube.com/robots.txt
- https://x.com/robots.txt
- https://www.instagram.com/robots.txt
こうやってみてますと、どのメディアもやはりGoogleは無視出来ないんだろうなぁと感じます(笑)
とはいえ、小規模なページ数しか持たないサイトでしたら特に気にする必要はないのかもしれません。
指示してもしなくても集客の結果が変わらない・・・というようでしたら、ひとまずは、ページ数やコンテンツを増やす努力から始めるべきなのかもしれません。
そんなことを考えています。
ただ、いつまで経っても、Googleの検索結果にページが表示されない時は、robots.txtを確認するようにしてください。
コメント