【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が正しく作成しているか確認するには、以下のテスター使うと確認できます。
- Googlerobots.txtテスター
- Bingの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 |
ニュース用Googlebot | Googlebot-News |
画像用Googlebot | Googlebot-Image |
動画用Googlebot | Googlebot-Video |
Google Adsense | Mediapartners-Google |
Google AdsBot(パソコンのWebページの広告品質をチェックします) | AdsBot-Google |
Googleモバイル | Googlebot |
モバイルウェブAndroid用AdsBot(AndroidのWebページの広告品質をチェック します) | AdsBot-Google-Mobile |
モバイルウェブ用AdsBot(iPhone のウェブページの広告品質をチェックします) | AdsBot-Google-Mobile |
bingbot | Bing検索 |
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注意点
- robots.txtで指定してもユーザーのコンテンツ閲覧は可
- インデックス済みページは検索エンジンに残ってしまう
- robots.txtを無視するUser-Agentも存在する
- robots.txtの内容が反映されるまでに1~2週間かかる
- ページ数が少ないサイトは気にしない。
ユーザーの目に触れてはいけないような非公開コンテンツなどは、「noindex」タグを使用して検索エンジンから削除しましょう。robots.txtをインデックス制御のために使用しない。