knowledge

robots.txtとは? ~書き方や注意点などを紹介~

robots.txtとは? ~書き方や注意点などを紹介~

今回はサイトのクロール制御を行う為に作成するrobots.txt(ロボットドットテキスト)について説明します。初心者でも理解できるように分かりやすく記載するように心がけますのでrobots.txtを作成する際の参考にしてください。

内容はrobots.txtの記述方法や設置場所、命令の確認方法などを説明します。この記事を読むことで、あなたもrobots.txtを作成し、編集・設置・テストできるようになると思います。

 

1. robots.txt(ロボットドットテキスト)とは?

robots.txtは、Googlebotを始めとしたクローラーに対して、特定のディレクトリやページへのクロールを制御するテキストファイルです。

robots.txtの用途は大きく分けて以下の2つあります。

(1) 特定のクローラーが指定したディレクトリ・URLにクロールしないようにする。

(2) クローラーにsitemap.xmlの場所を教えてクロールの促進をする。

 

上記の2つを行うことで、余計なページがクロールされるのを防ぎ、サイト内のクロール効率を向上させるのがrobots.txtを活用する目的です。

 

余談ですが、robots.txtの誤った利用目的にインデックスの削除重複コンテンツの正規化があります。これらにrobots.txtを利用するのは誤りですので、別の正しい方法で正規化してください。

 

2. robots.txtの書き方(作り方)

robots.txtを作成するのに特別なツールは必要なく、誰でもメモ帳で作成できます。記載内容は、主に「User-agent」「Disallow」「Allow」「Sitemap」の4つあり順に説明します。User-agentだけは必須で記入しなければなりません。

▼robots.txtに記入する項目の説明

命令 記入は必須か? 説明
User-agent 必須 命令を与えるユーザーエージェントの名称を記入します。
Disallow 無くても良い クロールをブロックするディレクトリやページを記入します。
Allow 無くても良い クロールを許可するディレクトリやページを記入します。
Sitemap 無くても良い sitemap.xmlのURLを記入します。※複数ある場合は複数記入可

2-1 user-agent

User-agentは、制御したいクローラーの名称を記入する個所です。全てのクローラーを指定したい場合は「*」(アスタリスク)を入れます。

 

▼User-agentの記入例

User-agent : *                    ※全てのクローラーが対象
User-agent : Googlebot        ※Googlebotのみ対象
User-agent : Baiduspider     ※百度(バイドゥ)のみ対象

クローラーの名称が分からない場合は、ネット検索やアクセスログで確認してください。

 

2-2 DisallowとAllow

Disallowは、クロールをブロックしたいディレクトリやページを記入する個所です。逆にAllowはクロールを許可するディレクトリやページを記入する個所です。クローラーは、Allowを書かなくてもDisallowでブロックしていなければクロールするため、基本的に記載しなくて良いです。Allowを利用するのは、Disallowでブロックしているディレクトリ内の一部のページだけクロールさせたい場合などです。

 

▼DisallowとAllowの記入例

Disallow : /                                   ※サイト内の全てのページをブロック(/はTOP配下全てを表す)
Disallow :                                     ※ブロックなし
Disallow : /directory1/page1.html    ※ページ(/directory1/page1.html)のみブロック
Disallow : /directory2/                    ※ディレクトリ(/directory2/)配下全てのページをブロック
Allow : /directory2/page1.html        ※ページ(/directory2/page1.html)のみクロール許可

 

2-2-1 robots.txtの正規表現

robots.txtでは正規表現を利用して、ディレクトリやページを指定することができます。利用できる正規表現は2種類あり、(*)アスタリスクと($)ドルマークです。

例えば、以下のような使い方ができます。

 

(*)アスタリスクは0個以上の文字列を表す記号で、複数のディレクトリやページを指定する際に役立ちます。

Disallow: /directory*/page1.html と記入した場合、以下を全て記載した事と同じになります。

/directory/page1.html
/directory1/page1.html
/directory123/page1.html
/directory1/directory2/page1.html

 

($)ドルマークはURL の末尾に設置する記事でURLを完全一致にすることができます。

 

Disallow: /directory/$ と記入した場合、以下のようになります。

/directory/                        ※/directory/と完全一致の為ブロック
/directory                         ※ブロックなし(末尾の/がなく同じではない)
/directory/page1.html        ※ブロックなし
/directory123/                  ※ブロックなし
/directoryindex/                ※ブロックなし

 

小規模サイトではあまり利用しませんが、動的にページを生成している大規模サイトでは良く利用するので、覚えておくと良いです。

 

2-3 sitemap

sitemapは、sitemap.xmlの格納先を記入する個所です。記入することでクローラーがsitemap.xmlにアクセスしやすくなり、サイトのクローラビリティの向上に繋がります。記入する場合はURLを絶対パスで記入してください。

 

▼sitemapの記入例

Sitemap : https://croja.jp/sitemap.xml
Sitemap : http://example.com/index_sitemap1.xml

※sitemap.xmlのファイル名は「sitemap.xml」以外でも機能します。

 

3. robots.txtのサンプル集

「2. robots.txtの書き方(作り方)」で説明した4項目を組み合わせることでrobots.txtを作成できます。実物を見た方が分かりやすいと思いますので、robots.txtのサンプルをいくつか紹介します。

 

▼全てのクローラーを対象に全てのページをブロックする。

User-agent : *
Disallow : /

※「/」はサイト配下全てを表し、上の例はサイト配下全てをブロック(Disallow)するという命令です。

 

▼全てのクローラーを対象に/directory1/と/directory2/配下のページをブロックする。

User-agent : *
Disallow : /directory1/
Disallow : /directory2/

 

▼Googlebotを対象にsitemap.xmlのURLだけ教える。 ※ブロックは無し。

User-agent : Googlebot
Disallow :
Sitemap : https://example.com/sitemapA.xml
Sitemap : https://example.com/sitemapB.xml

※sitemap.xmlが複数ある場合は、上の例のように複数行に分けて記載します。

 

▼GooglebotとBaiduspiderとで異なるディレクトリをブロックする。

User-agent: Googlebot
Disallow: /directory1/

 

User-agent: Baiduspider
Disallow: /directory2/

 

robots.txtの書き方がイメージできましたでしょうか。自信がなければ、自分の作ったrobots.txtの記述に誤りがないか確認する方法を後程紹介するので、参考にしてください。

 

4. robots.txtの設置場所

robots.txtの設置場所はサイトのルートディレクトリ(トップフォルダ)と決まっています。また、ファイル名も「robots.txt」にしなければなりません。※robots.txtの「s」を忘れないでください。

 

どのサイトもドメインの後ろにrobots.txtと入力すると、robots.txtにアクセスできます。例えば、このようなURLです。

 

▼例:robots.txtの格納先

https://www.crossfinity.co.jp/robots.txt
https://ja-jp.facebook.com/robots.txt

入力してアクセスできない場合は、robots.txtが無かったり、格納先やファイル名を誤っている可能性があります。

▼サイトのルートディレクトリに格納しているrobots.txt

 

4-1・WordPress(ワードプレス)の場合

WordPressの場合、プラグインを利用することで簡単にrobots.txtを編集できます。robots.txtに関するプラグインは様々ありますので用途に合ったものを探してください。

 

5. robots.txtの確認方法

robots.txtが正しい場所に格納できているかは、先述したURLを入力してアクセスする方法で確認できます。記載内容の正誤やテストを行いたい場合は、Google Search Console(GSC:グーグルサーチコンソール ※旧名:Googleウェブマスターツール)の「robots.txtテスター」機能を利用してください。

 

5-1 robots.txtテスターの利用方法

GSCのrobots.txtテスターにrobots.txtの命令を記入すると、指定したURLがブロックされるかどうかテストすることができます。

※この機能でrobots.txtを編集しても本物のrobots.txtは更新されません。

 

▼robots.txtテスターの画面

 

▼GSCのrobots.txtテスターの画面(判定結果)

robots.txtテスターでテストしたrobots.txtの命令に問題がなければ、実際にアップロードしましょう。また、GSCはGoogleのツールのため、選択できるクローラーはGoogleが関係するものだけで、それ以外のクローラーはチェックできません。

 

6. よくある間違い、注意点

robots.txtを誤った目的や使い方をしているサイト運営者もいらっしゃいます。使い方を誤るとサイトがGoogleの検索結果で表示されなくなるなどのリスクもあるため、取り扱いには注意してください。

 

6-1 robots.txtはインデックスを削除するわけではない

robots.txtでクロールをブロックしてもインデックスは残ります。場合によっては数年間も表示され続け、検索結果のスニペット (サイトの説明文)に「このページの情報はありません。」と表示されます。

▼robots.txtでブロックしたサイトの「このページの情報はありません。」のメッセージ

インデックスを削除したい場合は、ページの削除やソースコードにnoindexのタグを入れる、緊急であればGSCの「URL の削除」機能を利用するなど、別の正しい方法で対応してください。

 

6-2 全てのクローラーがrobots.txtを守るとは限らない

robots.txtを無視してブロックしているページにクロールするクローラーも存在します。そのため、robots.txtに強制力はありません。そのようなクローラーには.htaccessなどの別の方法でブロックしてください。

 

6-3 robots.txtで人間のアクセスはブロックできない

robots.txtはクローラーに対する命令で、ユーザーのアクセスをブロックすることはできません。ユーザーからのアクセスをブロックするには、パスワードを付けるなど別の対策を取ってください。

 

6-4 robots.txtのファイル名はrobot.txtではない

ファイル名はrobot.txtではなく、robots.txtで「s」が付きます。またRobots.txtでもダメです。

 

6-5 ブロックしたいページが無くてもrobots.txtを作るべきか?

結論はどちらでも良く意見が分かれる事ですが、筆者はブロックしたいページが無くてもrobots.txtを作成するのが理想だと考えています。理由は、ブロックするページが無くてもクローラーにsitemap.xmlのURLを教えることができ、またブロックするページがないという事をクローラーやユーザーに伝えることができるためです。

 

ちなみに、Googleは「全てのページをクロールさせる場合、robots.txtは必要ない」と言っています。

参照:Search Console ヘルプ ≪Google クローラ≫
“サイトのページをすべてクロールさせたい場合は、robots.txt ファイルを作成する必要はありません。”

 

6-6 重複コンテンツの正規化に利用しない

重複コンテンツが発生している場合、robots.txtで片方のコンテンツページをブロックすれば重複コンテンツを正規化できると考える方がいますが、それは正しい方法ではありません。重複コンテンツの場合は、canonicalや301リダイレクト、文章のリライトなど正しい方法で正規化すべきです。

 

7. まとめ

robots.txtは簡単に作成できますがとても強力なものです。その分、誤った使い方や設定を行うとサイトに与える悪影響も強くなります。サイトの問題を解決する手段が本当にrobots.txtで良いのか見極めて正しい知識でrobots.txtを作成しましょう。

この記事のライター

CroJa 編集部

おすすめの記事

WEB担当者必見!!

実務に役立つ情報をメルマガで無料配信しています。

メルマガ登録はこちらから
メルマガ登録はこちらから

関連する記事