その他
    ホーム 技術発信 DoRuby クローラー対策 ロボットテキスト (robots txt)

    クローラー対策 ロボットテキスト (robots txt)

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    こんにちはカツオです。

    今日はrobots.txtの書き方について説明します。

    というのも

    webサーバーでmongrelを使ったrailsアプリで、mongrelがよく落ちるのですが、

    クローラーのアクセス数が多いので、

    googleのクローラーをIPで制限してみたら、

    mongrelの落ちる回数が、極端に減りました。

    対策の一つとして、robots.txtを書く機会があったので、ご紹介です。  

    ■robots.txtとは?

    クローラーや、スパイダー、検索ロボットといわれる
    検索エンジンのインデックスを取得するために、web上を巡回しているソフトがあります。

    もちろんそれらにアクセスされると、
    検索エンジンのインデックスに登録される可能性があります。

    しかし、サイトを運営していれば
    インデックスされたくないページ等もあるでしょう。

    そういったページ等をアクセスさせないよう命令するのが
    robots.txtです。

    ■robots.txtの書き方
    基本的にはrobotsテキストでは2つの命令がかけます。

    1.アクセス制限
    2.アクセス間隔の調整

    上記2つです。

    まずアクセス制限から説明します。

    クローラーのアクセスを制限する場合
    2種類の記述が必要です。

    User-Agent:    命令の対象となるロボット
    Disallow:    制限するページまたはディレクトリ

    例)全てのロボットに、全てのページをインデックスさせない場合
    User-Agent: *
    Disallow: /

    例)googleのクローラーから、testというディレクトリを制限する場合
    User-Agent: Googlebot
    Disallow: /test

    例)yahooのクローラーから、「/test/index.html」というページを制限する場合
    User-Agent: Slurp
    Disallow: /test/(もしくは/test/index.html)

    このような形で表記します。

    例)複数のクローラーを制御する場合
    1行あけて次のUser-Agentを書いてください。

    User-Agent: Googlebot
    Disallow: /test

    User-Agent: Slurp
    Disallow: /test/

    例)複数の制限したいディレクトリがある場合
    Disallowを行をあけずに書いてください。

    User-Agent: *
    Disallow: /test
    Disallow: /demo

    また、クローラーのアクセス間隔を指定する場合ですが
    一度アクセスがあったら、次のアクセスまでに30秒間隔をあける場合は

    ○百度のクローラ
    User-Agent:baiduspider
    Crawl-Delay: 30

    ○yahooのクローラー
    User-Agent:Slurp
    Crawl-Delay:0.5
    ※yahooに関しては、単位が”分”らしいです。

    ○googleのクローラー
    Crawl-Delayのコマンドにgoogleは対応していないので、
    googleウェブマスターツールで
    アカウント登録して、クローラーのアクセス頻度を下げるしかないようです。

    ■robots.txtの設置箇所

    robots.txtの設置箇所はルートディレクトリと決められています。

    弊社のURLの場合(http://www.kbmj.com/)

    http://www.kbmj.com/robots.txt

    このような階層に置かなければいけません。

    ※無料ブログの場合等は設置権限がない場合があります。

    ■robots.txtのファイル名

    robots.txtのファイル名は間違えず、半角小文字で書きましょう

    ○ robots.txt

    ↓これは間違いです。

    × robot.txt
    × robots.text
    × robots.txt

    ■補足
    全てのクローラーがrobots.txtを読んでくれるわけではなく、
    なかなか読んでくれないクローラーもあるようです。

    ただ、もし、クローラーのアクセスでサーバー負荷が増えてしまっていたりする場合は、
    一度試してみたら、いかがでしょう。