robots.txt
中身が文字だけのファイルだよ
検索エンジンのクローラさんへの指示書だよ
簡単に書くよ
robots.txtとは
GoogleやYahoo!のような検索エンジン
(キーワードを入力すると条件に合うホームページを探してくれるホームページ)のクローラさん
(検索エンジンの手下)に指示を出すためのファイル
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「検索エンジン」と「クローラ」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
検索エンジンは「検索キーワードを入力すると、入力されたキーワードに関連するホームページを教えてくれるホームページ」です。
とはいえ、難しく考える必要は ありません。
GoogleとかYahoo!のことです。
クローラは「検索エンジンさんの手下のプログラム」です。
クローラさんは、日夜、ホームページの情報を集めています。
集めた情報は元締めの検索エンジンさんに報告します。
検索エンジンさんが新聞社だとすれば、クローラさんは記者のイメージです。
以上を踏まえて、本題に入ります。
クローラさんは日夜インターネットの世界を徘徊し、集めた情報を検索エンジンさんに送っています。
もし、あなたがホームページやブログを運営しているとしたら、きっとそこにもクローラさんは訪れているはずです。
そんな検索エンジンの手下のクローラさんですが、基本的にはリンクを辿って情報を集めていきます。
遠慮なく集めていきます。
好き勝手に集めていきます。
ですが、好き勝手に情報を漁るのは勘弁して欲しい場合もありますよね。
「おい!このページは見るんじゃねぇ!」とクローラさんに物申したいときもあるはずです。
そんなときは、とあるファイルに「おい!クローラ!このページは見るんじゃねぇ!」と書いておくと、品行方正なクローラさんはその指示に従ってくれるのです。
その「とあるファイル」言い方を変えると
クローラさんに対する指示書
が「robots.txt」です。
robots.txtは、そのまんま「robots.txt」という名前でルート直下に置きます。
「ルート直下」がよく分からなければ
http://あなたのホームページのドメイン名/robots.txt
もしくは
https://あなたのホームページのドメイン名/robots.txt
のURLにアクセスしたときに表示される場所に置けば良いと考えてください。
例えば、わわわIT用語辞典のrobots.txtは「https://wa3.i-3-i.info/robots.txt」として置いてあります。
これが「robots.txtとはなんぞや?」の説明です。
「検索エンジンのクローラさんに対する指示書」が「robots.txt」です。
それでは次に、robots.txtの書き方を書いていきます。
結構長ったらしいので「別に書き方は知らなくて良いよ」な人は読み飛ばしてください。
robots.txtの中身は例えば以下のように書きます。
User-agent: *
Disallow: /miruna/
Allow: /miruna/miteyo
Sitemap: https://example.com/sitemap.xml
Crawl-delay: 10
「User-agent:」の部分は「誰宛か」の指定です。
「*」は「なんでもいーよ」を意味する特別な指定なので
User-agent: *
の意味するところは「すべてのクローラさん宛」になります。
この「User-agent:」の部分に個別の名前を指定することで、どの検索エンジンのクローラさんに対する指示かを名指しで指定することも できます。
例えば
User-agent: Googlebot
Disallow: /miruna/
と書いた場合「Disallow: /miruna/」という指示はGoogleのクローラさん宛になります。
Google以外のクローラさんは気にしません。
対象となるクローラさんを個別指定するときの名前は、例えば以下のように書きます。
| 検索エンジン | ユーザエージェント |
|---|---|
| Googlebot | |
| Yahoo! | Slurp |
| Bing | msnbot |
| Baidu | Baiduspider |
これ以外のクローラさんについては適当に調べてください。
個人的には、個別にクローラを指定すること自体、あまり必要性を感じないですけどね。
ちなみに複数の検索エンジンさん宛の指示を1つのrobots.txtで指定することも可能です。
複数指定したい場合は
User-agent: Googlebot
Disallow: /miruna/
User-agent: Slurp
Disallow: /miruna2/
のように、クローラを指定するごとに間を1行ずつ空けて書いてください。
さて、これでどの検索エンジンさんに対する指示かは指定できるようになりました。
次はどんな指示を出すかです。
忘れちゃった人のために、もう一度サンプルを載せておきますね。
User-agent: *
Disallow: /miruna/
Allow: /miruna/miteyo
Sitemap: https://example.com/sitemap.xml
Crawl-delay: 10
です。
次は
Disallow: /miruna/
Allow: /miruna/miteyo
の部分を見てください。
この部分で「おい!クローラ!このページは見るんじゃねぇ!」を指示しています。
実際には「Disallow:」が「おい!クローラ!このページは見るんじゃねぇ!」の指示で「Allow:」は「おい!クローラ!このページは見てもいーぞ!」の指示ですけどね。
そして「Disallow:」の指示より「Allow:」の指示の方が優先されます。
つまり
Disallow: /miruna/
Allow: /miruna/miteyo
の指示は、URLが
https://example.com/miruna/ほげほげ
ってなってるところは見るな!ただし
https://example.com/miruna/miteyoほげほげ
ってなってるところは見ていーぞ!という指示になるのです。
実際のURLを例に挙げると
https://example.com/miruna/
https://example.com/miruna/hoge.html
https://example.com/miruna/mirunayo/hoge.html
は見てはダメですし、
https://example.com/miruna/miteyo
https://example.com/miruna/miteyo.html
https://example.com/miruna/miteyo/hoge.html
は見て良いことになります。
これが「おい!クローラ!このページは見るんじゃねぇ!」の指定です。
「おい!クローラ!このページは見るんじゃねぇ!」の指定では……に限らずですが、robots.txtでは特別な文字「*(アスタリスク)」と「$(ドルマーク)」が使えます。
「User-agent: *」でも登場した「*(アスタリスク)」は「何でも良いよ」の意味を持つ文字です。
小難しい言い方をすると「任意の0文字以上」と言ったりします。
例えば
Disallow: /hoge*.html
と指定した場合は
/hoge.html
/hoge1.html
/hoge12.html
/hoge12.htmlaaa
/hoge/abc.html
のように「/hoge」で始まって「.html」を含むディレクトリやファイルがすべて対象になります。
「$(ドルマーク)」の方は「~~で終わる」の意味です。
「Disallow:」「Allow:」の指定は前方一致(最初が合っていればOK)なので、例えば
Disallow: /hoge.html
と書いた場合、
/hoge.html
/hoge.htmlaaa
/hoge.html/abc.csv
等も理屈上は含まれてしまいます。
これを避けるために
Disallow: /hoge.html$
のように書くことで、ピンポイントで「/hoge.html」(「/hoge.html」で始まって、そこで終わる)を指定できるのです。
繰り返しになりますが、大事なことなので、もう一度 書いておきます。
「Disallow:」「Allow:」の指定は前方一致です。
ご注意くださいね。
Disallow: /hoge
は
Disallow: /hoge*
を指定したのと同じ扱いになりますよ。
ここまでがrobots.txtの書き方のメインです。
あとは軽く読み流してください。
Sitemap: https://example.com/sitemap.xml
の部分で「このホームページのsitemap.xmlはどこですよ~」というのを指定しています。
「Sitemap:」に続けて、自分のホームページのsitemap.xmlのURLを指定してください。
Crawl-delay: 10
は巡回頻度です。
「これ以上間隔を空けて来い!」の指示になります。
「あんま何回も来るな!鬱陶しいから!」なときに指定します……が、気休め程度にお考えください。
実際のところ、ここに指定した数字の単位が「秒」なのか「分」なのか、あるいはそれ以外なのかは検索エンジンによって違うようですしね。
最後にまとめると
User-agent: *
Disallow: /miruna/
Allow: /miruna/miteyo
Sitemap: https://example.com/sitemap.xml
Crawl-delay: 10
というrobots.txtを置いた場合、検索エンジンのクローラに対して
User-agent: *
すべてのクローラに告ぐ!
Disallow: /miruna/
URLが『https://example.com/miruna/ほげほげ』になるところは見るな!
Allow: /miruna/miteyo
ただしURLが「https://example.com/miruna/miteyoほげほげ」になるところは見て良いぞ!
Sitemap: https://example.com/sitemap.xml
サイトマップが欲しければ「https://example.com/sitemap.xml」を見よ!
Crawl-delay: 10
我がサイトへのアクセスは10(秒)以上、間を空けてやりたまえ!
な指示をしたことになります。
これがrobots.txtの書き方です。
あっ、そうそう。
robots.txtに関する大事な注意事項を書き忘れていました。
robots.txtの指示は必ず守られるわけでは ありません。
有名どころの検索エンジンのクローラさんは守ってくれるようですが、お行儀の悪いクローラさんは平気で無視しやがります。
玄関の前に「セールスお断り」の張り紙をしていても平気でピンポン鳴らしてくる営業さんがいるのと同じですね。
「えっ?これを見られると結構困るんだけど……」な場合は、robots.txtに頼らず、その他の方法(例えばベーシック認証とか)で対処してください。
一言でまとめるよ
まぁ「robots.txt」って単語が出てきたら「検索エンジン
(GoogleとかYahoo!のような、キーワードを入力すると条件に合うホームページを探してくれるホームページ)のクローラさん
(検索エンジンの手下)への指示書なんだな~」と お考えください。
おまけ
■訳してみるよ
「robots(ロボッツ)」は「robot(ロボット)」の複数形です。
「robot(ロボット)」はカタカナで「ロボット」で分かりますかね。
「txt」は多分「text(テキスト)」の略です。
「text(テキスト)」の意味は「文章」とか「本文」とか「原文」とかです。
何となく くっつけると
ロボット.文章
となります。






