プラカンブログSTAFF BLOG

2018.05.11

robots.txtの作り方と設置方法

GoogleやYahooなどの検索エンジンは日々リンクを辿ってサイトをクロールしています。WEBサイトを運用していると、検索エンジンに登録してほしいページとそうでないページが存在する事があります。
検索エンジンにクロールしてほしくないページとは例えば「プロフィールページを掲載しているが検索では引っかかってほしくない」とか、「会員限定のコンテンツはインデックスしてほしくない」とか、「システム的に自動生成されたページで、重複したページが存在する」といった場合です。

そんな時、検索エンジンにページをクロールさせないようにすることができるのが「robots.txt」であり、今回はrobots.txtの作り方と設置方法について解説したいと思います。

robots.txtの作り方と設置場所

robots.txtを作る時はまずテキストファイルで作成します。文字コードを「UTF-8」にして、ファイル名を「robots.txt」として保存します。

作成したファイルは、必ずサイトの「ルートディレクトリ(一番上の階層)」に設置する必要があります。下層ディレクトリに設置しても認識されないので注意が必要です。

robots.txtの書き方の例

robots.txtの書き方としては以下のような記述が一般的で、この記述例を元にそれぞれの意味を解説していきたいと思います。

User-Agent: *
Disallow:/member/
Allow:/member/howto.html

Sitemap:http://test.co.jp/sitemap.xml

クローラー名を指定する「User-Agent」

User-agent: *

これはアクセスを制限したいクローラーを指定する項目です。「*(アスタリスク)」を入れると、全てのクローラーという指定になります。クロールは一般的には検索エンジンが行うのが知られていますが、情報を集めてまとめるサイトなどの独自のクローラーも多数存在します。Googleだけでもウェブ検索や画像検索、ニュース用や、AdoSenseなど複数のクローラーを動かしています。

Googleのクローラーを紹介する公式ページ

このようなクローラーを、個別に指定する場合は以下のようにクローラー名を記述する事になります。

User-agent: Googlebot

ブロックするディレクトリやファイルを指定する「Disallow」

次にブロックしたいディレクトリやファイル名などを指定するの項目が「Disallow」です。指定方法は、ディレクトリやファイル名を指定するだけです。以下の例は、会員専用ページが存在する「member」というディレクトリ以下全ファイルをブロックするという例です。

Disallow:/member/

クロールを許可する「Allow」

「Allow」はクロールを許可する指定です。ただ「Disallow」を指定してブロックしなければ、基本的に全てのページは許可されている状態です。では、どういう時に「Allow」を使うかというと、特定のディレクトリを「Disallow」でブロックした時に、そのディレクトリの中で、特定のファイルやさらに下層のディレクトリだけは、ブロックを解除したいといった時に使用します。

例えば会員限定コンテンツの「member」ディレクトリはブロックしたいけど、その使い方を説明する「howto.html」はブロックを解除したいといった場合でしょうか。

このように「AllowとDisallow」の両方が記述されていている場合、どちらが適用されるかというとGoogleの公式ページの説明では「より限定的に書いてあるもの」が優先される事になります。

「限定的」とはどういう意味かというと、例えば以下の例で説明します。

Allow: /member/howto.html
Disallow: /member/

Disallowでmemberディレクトリ全体を指定しているのに対して、Allowではmemberディレクトリの中のhowto.htmlファイルは許可するといったように、より限定的に指定してあります。この場合「/member/howto.htmlファイル」に関しては、Allowが優先され「クロールを許可する」という結果になります。

あくまで限定的な記述が優先されるのであって「下に記述してあるから優先される」わけではないので、ご注意下さい。

サイトマップの位置を指定する「Sitemap」

最後にサイト内のファイルがどこにあるかを記述して、クローラーがクロールしやすくするためのファイルであるsitemapファイルの保存場所を指定するのが「Sitemap」です。単純に以下のように、ファイルの位置を記述するだけでOKです。

Sitemap:http://test.co.jp/sitemap.xml

まとめ

このようにrobots.txtを使って、無駄なページのクロールを制限する作業は、より重要なコンテンツへのクロールを優先させる事にもつながります。サイト内にあるすべてのファイルをクロールできる状態に野放しするのではなく、クロール不要なページを洗い出して、サイトを最適化しましょう!

+dc(ひ)

この記事は、HISADA が書きました。