【SEO対策】重要ではないサイトクロールを防ぐrobots.txtの書き方

最終更新日

重要ではないコンテンツのクロールを制御し、クロール範囲を狭めることで重要なコンテンツへのクロールを高く制御するrobots.txtについて解説しています。優先度や重要性が高いコンテンツが優先的にクロールされるためサイト全体のSEOにも効果があります。

商品カートやログイン画面、ログアウト画面、問い合わせフォーム等もクロールされインデックスされてしまう。クロールしても無駄だからしないでほしいなぁ・・・

検索エンジンは機械的に収取するため、不要なコンテンツもインデックスしてしまうので、そんな時、robots.txtで検索エンジンクローラーの巡回制御しnoindexでの検索エンジンへのインデックス拒否をしておきます。

検索エンジンは機械的に収取するため、不要なコンテンツもインデックスしてしまうので、そんな時、robots.txtで検索エンジンクローラーの巡回制御しnoindexでの検索エンジンへのインデックス拒否をしておきます。

クローリングとは

検索エンジンがサイトを巡回してホームページ内の情報を収集するロボットのことです。自動で収集するプログラムのことです。また、クローラーは複数回に分けて繰り返しクローリングします。

robots.txtの設置場所

robots.txtはルートドメインにアップロードします。

  • OK>https://mysite/robots.txt
  • NG>https://mysite/page/robots.txt
#Apacheの場合は、以下のようになる。
[centos@i-vhost mysite]$ pwd
/var/www/html/mysite

robots.txtテスター

robots.txtが正しく作成しているか確認するには、以下のテスター使うと確認できます。

robots.txt基本的な書き方

robots.txtとは、クローラーの動きを制御できるファイルです。また非常に強い指定のため、誤った記述をするとWebサイト全体に重大な問題を引き起こす危険性があります。

主に「User-agent」「Disallow」「Allow」「Sitemap」の4つあります。また、User-agentだけは必須で記入する必要があります。

User-agent: 
Disallow:
Allow:
Sitemap:
項目意味
User-agent:ユーザーエージェントを指定します。
Disallow:ブロックしたいページを指定します。
Allow:クロールさせたいページを指定します。
Sitemap:クローラー用のサイトマップの場所を指定します。

User-agent:書き方

User-agentはクローラのユーザーエージェントを指定します。「*」を使用した場合は、すべての検索エンジンロボットを指定することができます。

クローラーユーザーエージェント
Googlebot(Googleウェブ検索)Googlebot
ニュース用GooglebotGooglebot-News
画像用GooglebotGooglebot-Image
動画用GooglebotGooglebot-Video
Google AdsenseMediapartners-Google
Google AdsBot(パソコンのWebページの広告品質をチェックします)AdsBot-Google
GoogleモバイルGooglebot
モバイルウェブAndroid用AdsBot(AndroidのWebページの広告品質をチェック
します)
AdsBot-Google-Mobile
モバイルウェブ用AdsBot(iPhone のウェブページの広告品質をチェックします)AdsBot-Google-Mobile
bingbotBing検索
Baiduspider百度(バイドゥ)
 

User-agent : * //すべてのクローラー
User-agent : Googlebot //Googlebotのクローラー
User-agent : bingbot  //Bing検索のクローラー

Disallow:の書き方

Disallowは、クローラーをアクセス拒否する場合に使用します。指定方法は、Disallow:の後に拒否したいディレクトリまたは、ファイル名を指定します。

サイト全体の場合、スラッシュ(/)を使用します。Disallow:/
ディレクトリとその中のコンテンツをブロックする場合は、
ディレクトリ名とスラッシュを続けます。
Disallow: /login/
ページをブロックしたい場合、そのページのリストを記述します。Disallow: /memeber_file.html
Google画像検索で特定の画像をブロックする場合:User-agent: Googlebot-image
Disallow: /images/memeber.jpg
Google画像検索でサイトのすべての画像をブロックUser-agent: Googlebot-image
Disallow: /
特定のファイル形式のファイルをブロックする場合(.png、.gif、.jpg等)Disallow: /*.gif$
特定の文字列をブロックする場合、文字列のあとにアスタリスク(*)を
使用します。右の場合は「private」を含むURLへアクセスブロックします。
Disallow:/private*/
疑問符(?)を含むすべてのURLに対するアクセスをブロックするには、
次のように記述します。
Disallow: /*?
クエリパラメータ付きURLに対するアクセス拒否Disallow:/?example=*
特定の終わり方をするURLをブロックする場合、$を使用します。
右の例では、.pdfで終わるすべてのURLがブロックされます。
Disallow: /*.pdf$

ディレクティブでは大文字と小文字が区別されます。

Googlebotでは空白とrobots.txt内の不明なディレクティブは無視されます。

Allow:の書き方

Allowは指定しない場合、クローラーは自動で拾っていくのであまり使いません。

ディレクトリ全体をDisallowでクロール拒否しつつ、その中の一部のファイルだけクロールさせるという時に使います。

Disallow: /mysite/
Allow: /mysite/page1/

Disallowで/mysite/全体を拒否して、Allowで/mysite/page1/のクロールを指定しています。

DisallowよりもAllowが優先度が高い。

Sitemap:の書き方

sitemap.xmlの場所をrobots.txtに記載することをGoogleは推奨しています。

設定例

全クローラーを受け入れる場合

User-agent: *
Allow: /

一部のクローラーだけ受け入れたくない場合

User-agent: クローラーのユーザーエージェント
Disallow: /

特定のディレクトリ以外をクロールさせる

Disallowに「/mysite」が指定されているため、Googleは「/mysite」をクロールしません。「/mysite/xxxxx/」などの下層ページもクロールしません。

User-agent: *
Disallow: /mysite/

親のディレクトリはクロールさせたくないが、その下層ディレクトリの一部のコンテンツをクロールさせたい

/mysite/はクロールされないものの、Allowで指定した/mypage/sample/はクロールされます。

User-agent: *
Disallow: /mysite/
Allow: /mypage/sample/

robots.txt注意点

  1. robots.txtで指定してもユーザーのコンテンツ閲覧は可
  2. インデックス済みページは検索エンジンに残ってしまう
  3. robots.txtを無視するUser-Agentも存在する
  4. robots.txtの内容が反映されるまでに1~2週間かかる
  5. ページ数が少ないサイトは気にしない。

ユーザーの目に触れてはいけないような非公開コンテンツなどは、「noindex」タグを使用して検索エンジンから削除しましょう。robots.txtをインデックス制御のために使用しない。