Bingbotのアクセスがパネェ!そんな時はBing Webマスターツールで調整を
- トラブル
- 投稿者:WEB上手 | 2016年11月28日
この記事を簡単に書くと…
- 503エラーによりサイトが表示されないと訪問や販売機会を逃してしまうことも
- サーバーのスペックをあげるとコストが増えてしまうので、なるべく抑えたいところ
- クローラーの制御や排除でアクセス数を抑えて少しでも503エラーを回避
ホームページ(WEBサイト)やブログが表示されないことがある。。。
読み込みに時間がかかる。。。
503エラーになってしまう。。。
そんな時はアクセスが集中して、サーバーで制限がかけられている可能性があります。
共用のレンタルサーバーでは、複数のユーザーで一つのサーバーを一緒に使っているので、万が一アクセスが集中してサーバーが落ちてしまうと、全ユーザーのWEBサイトが閲覧できない状態になってしまいます。
その為、サーバーの運営側は、アクセスがある程度集中してもサーバーが落ちないように、ユーザー毎に同時アクセス数の制限をしています。運営側としては、サービスの質を保つために制限をかけているので、表示されなくなっても仕方のないところですね。
なるべくコストを抑えて503エラーを防ぎたいところ
とはいえ、WEBサイトの運営側としては、503エラーなどでサイトが表示されなくなってしまっては、せっかくの訪問者を逃してしまったり、販売をしているサイトの場合には、売り上げの機会を逃してしまうことにも繋がりかねません。
その為、なるべく503エラーなどで表示されなくなることを防がなければなりませんね。
ある程度のアクセス数が見込まれる場合には、それなりのアクセスをさばけるサーバーを利用するのも一つの手ではあるのですが、その分月額料金が高くなります。まずはなるべくコストを抑えた中で、運用したいものです。
運営側でできる方法の一つに、余計なアクセスを制限する方法があります。
今回、私の使っているサーバーでも、503エラーがたびたび起きてしまっていたので、アクセスログを見てみたところ、BingbotとGooglebotのアクセス数がすごいことになっています!
クローラーによるアクセス数の増加を制限
BingbotとGooglebotは、検索サイトで有名なBingやGoogleのクローラーと呼ばれるものになります。それぞれのサービスの検索結果に反映させる為に、色々なWEBサイトでデータを収集して周っているのです。その他にも、色々なbotが巡回しにやってきます。
これらのアクセスも、アクセスの一部としてカウントされてしまう為、例えWEBサイトの訪問者が少なくても、botが集中して訪問してしまうと、503エラーを起こしてしまうこともあるのです。その為、これらのクローラーを制御することで、現在の水準のサーバーでも503エラーを回避することが出来る可能性もあります。
ただ、検索エンジンとしては、Googleの利用者がBingに比べても断然に多いので、Googlebotはとりあえず制限せずに、Bingbotのアクセスを少し制限してみたいと思います。
Bingbotはrobot.txtで制限をかけることもできますが、たまに無視をされてしまうこともあるようです。。。 その為、確実な方法として、Bing Webマスターツールでbotのクロール速度や時間帯の制御をしましょう。
Bing Webマスターツールでの制御
以下のアドレスから、Bing Webマスターツールにアクセスします。
・Bing Webマスターツール
http://www.bing.com/toolbox/webmaster/?cc=jp
マイクロソフトのアカウント(Bingはマイクロソフトの運営する検索サイト)を持っていれば、そのアカウントでログインすることが可能です。持っていなければ、新規でアカウントを作成する必要があります。
ログインしたら、画面上部にある「サイトの追加」に、クローラーの制限をしたいWEBサイトのアドレスを入力します。
次の画面で、WEBサイトのサイトマップ(XML)があれば、入力して次へ進みます。WEBサイトのサイトマップがあった方が、クローラーが隅々まで巡回しやすくなります。
その後、サイトの所有者の確認の為に、「BingSiteAuth.xml」をダウンロードして、FTPでルート直下にファイルをアップロードします。最後にページ下部の「確認」ボタンを押せば、所有権の認証が取れて、登録の完了です。
その他の方法としては、ヘッダ部分に記述をするか、DNSにCNAMEレコードを追加する方法もありますが、XMLファイルのアップロードが一番手っ取り早いのではないでしょうか。
サイトの登録が完了したら、左メニューの「自分のサイトの設定」をクリックします。その中に「クロール制御」という項目があるので、さらにクリックします。すると以下のような画面で、クローラーの時間毎の割合を制御することができます。
それぞれのWEBサイトによって、訪問者が多い時間帯が異なるので、一概にどのようなレートが良いとは言えません。私の場合は、Bingはそこまで重要ではないので、訪問者の少ない深夜の時間帯はクローラーのレートを早くし、昼間はかなりレートを遅くなるようにしました。
これにより、昼間の時間帯はBingのクローラーが、そこまで頻繁にはクロールしないようになるはずです。注意する点としては、その分Bingのクローラーが、サイトの隅々まで情報を取得しづらくなったり、情報の反映が遅くなったりする可能性があります。そこは、サーバーのコストを重視するか、Bingのクローラーを重視するかによって、判断しましょう。
その他の海外の必要のなさそうなbotの制限
その他にも海外のbotが頻繁にアクセスしてきたりします。
以下の「mj12bot」のアクセスログを見てください。
約4~5秒の間隔で、アクセスしています。
これは全て「mj12bot」のアクセスになります。深夜の3時とはいえ、このような巡回してきてもあまりメリットのない不要なbotによって、無駄にサーバーの負担をかけてしまいます。その為、サーバーの負担を減らす為にも、とりあえず「.htaccess」に以下の記述をして、botのアクセスを拒否することにしました。
SetEnvIf User-Agent “AhrefsBot” shutout
SetEnvIf User-Agent “Baiduspider” shutout
SetEnvIf User-Agent “Baiduspider+” shutout
SetEnvIf User-Agent “BaiduMobaider” shutout
SetEnvIf User-Agent “DeuSu” shutout
SetEnvIf User-Agent “Dataprovider” shutout
SetEnvIf User-Agent “HaosouSpider” shutout
SetEnvIf User-Agent “MJ12bot” shutout
SetEnvIf User-Agent “proximic” shutout
SetEnvIf User-Agent “SeznamBot” shutout
SetEnvIf User-Agent “YandexBot” shutout
order Allow,Deny
Allow from all
Deny from env=shutout
その他にも、botは巡回していると思いますので、必要に応じて「SetEnvIf User-Agent “〇〇〇” shutout」を追加して、アクセスの制限をしてみてください。これにより、不要なアクセスを排除することができます。
まとめ
これらの制御は、ほんの気持ち程度かもしれませんが、少しでも出来ることはやっておきたいですよね。何でも積み重ねが大切だと思います。他にもWordPressを使っている場合には、「xmlrpc.php」に対する不正なアクセスが多くなってしまいます。
その為、以下のような記述も.htaccessにしておきましょう!
RewriteRule ^xmlrpc\.php$ “http\:\/\/0\.0\.0\.0\/” [R=301,L]
こちらは以下のサイトを参考にさせていただきました。
・xmlrpc.phpにDoS攻撃を受けた時の対処法
http://rfs.jp/sb/wordpress/wp-lab/xmlrpc-php-ddos.html
少しでも同時アクセス数の制限にかからないようにして、サーバーのコストを抑えたいところですね!503エラーを防ぐことで機会損失も減らすことができます(^^)
コメントする