bot、クローラーを放置していると、サーバーに負荷がかかる
一時期本当に行儀が悪かったのが、Semalt。これは、SEO系botのようだ。バックリンクを調べるとかそのたぐいだろうか。
Pythonで、スクレイピングもされる。
この手の、bot、クローラーを放置しているとサーバーに負荷がかかり、503エラーを頻発してしまう。あまり稼がないサイト(例えばこのサイトだ)は、スターサーバーのような安いサーバーにおいておきたいのだが、botが来るとサーバーに負荷がかかってしまい、同じサーバーの中に格納されている他のサイトさんにも迷惑をかけてしまう。
スターサーバーは言うほど高速ではないが、ドメイン代とサーバー代くらい稼げればいいやというサイトには、十分である。
>>月額138円(税込)から!WordPressも使えるクラウド型高速レンタルサーバー、スターサーバー
Google Botだけを許可するのでいいのだろうか
ホワイトリスト方式で、Google Botだけを許可するのでもいいかと思った。しかし、解析すると、bingから来る人もいれば、duckduckgoから来る人もじわっと存在する。
SEO系のbotや、クローラー、スクレイパーを排除したいのであって、Next Googleの芽を潰したいわけではない。
そうすると、ホワイトリスト方式(=基本ブロック。良いものだけをリスト化して通す)のではなく、ブラックリスト方式(=基本通す。しかし悪いものだけをリスト化してブロック)で排除していくことになる。多少面倒だが。
.htaccessにbot退散の護符を書く
元の記事が2014年。これを2021年の私がどのように処理しているのかをお見せしよう。
.htaccessに護符を貼って、悪霊ならぬbot退散である。
2014年はリファラーで排除していたが、最近ではユーザーエージェントで排除している。
User-Agentでbot退散(2021年版)
リファラーでも排除できなくはなかったのだが、限りがあり、ユーザーエージェントで排除するようになった。
●ねー!と叫びながら.htaccessに書いている次第。
使うときにはくれぐれも自己責任で。
SetEnvIfNoCase User-Agent “semalt" spammer=yes
SetEnvIfNoCase User-Agent “hao123" spammer=yes
SetEnvIfNoCase User-Agent “mj12bot" spammer=yes
SetEnvIfNoCase User-Agent “ALittle" spammer=yes
SetEnvIfNoCase User-Agent "seekport" spammer=yes
SetEnvIfNoCase User-Agent “ahrefs" spammer=yes
Order Allow,Deny
Allow from All
Deny from env=spammer
他のものと合わせてこんな感じで書いている。ALittleというのはALittle Clientと出てくるものでよくわからないのだがとても気持ち悪い。この六つは本当に邪魔で、バイドゥやYandexの比ではない。
特に行儀が悪いのが、ahrefs。これはアフィBだったかで売っていたから買っている人もいたのだろう。それがかけられたこっちは本当に迷惑千万。使わないサービスなので容赦無く排除。「あんたのところにも来るんだから、たくさんの情報を持っている」という営業活動として名前を明らかにしているのであろう。なので、積極的に排除排除。悪bot退散!
SetEnvIfNoCaseではなく、SetEnvIf でも動くが、SetEnvIfNoCaseは大文字小文字を区別しないので、SetEnvIfNoCaseの方がおすすめする。というのも、SerEnvIfで排除していたものが、大文字と小文字のミックスになって入ってきたことがある。
リファラーで排除してみた。(以下2014年のまま排除)
同じように思われた方がwordpress.orgのフォーラムにおられたようです。それを参考にして、リファラーで排除してみた。
.htaccessに以下のように書きました。
SetEnvIfNoCase Referer semalt.com spammer=yes
Order Allow,Deny
Allow from All
Deny from env=spammer
semalt.comをリファラーとするものをスパマーと定義し、スパマーはアクセス遮断、ということでしょう。
これを応用すると、例えば、中国のbaidu、韓国のNavar、ロシアのYandexなど、用のないと思われるサーチエンジンからのリファラーを遮断することもできますね。
付け足し方
最近、
jp.hao123.com/yahoo_search?query=
というリファラーがくるようになりました。
hao123.comは中国のバイドゥ系のようです。
これも評判悪いですね。ソフトをインストールする際にくっついてきてブラウザトップを乗っ取っちゃうとか。(Googleツールバーだってそんな感じでしたねえ。遠い目)
いずれにせよ、こっち来んな、見んなボケ!って感じ。未来のGoogleかもしれないけれど、排除排除。
そういうわけでこう書いています。
SetEnvIfNoCase Referer semalt.com spammer=yes
SetEnvIfNoCase Referer hao123.com spammer=yes
Order Allow,Deny
Allow from All
Deny from env=spammer
参照
Semaltのセールスマネージャー
追記
このサイトはアップされると同時にTwitterにポストされるようにしてあります。そうしたら間髪入れずにsemaltのセールスマネージャーからリプが飛んできました。
@AffiEvelyn Hello! if you want to exclude your site from Semalt database, please follow this link:http://t.co/lZGY8M2N2E
— Alex Andrianov (@AlexAndrianov1) 2014, 5月 15
どういうことかというと、「もしもSemaltのデータベースから除外して欲しければ、ここをみて。」
見てみましたよ。「データベースから除外して欲しいなら、登録しろ」というサイトでした。
SO WHAT?
フィッシング詐欺メールって昔から「登録削除して欲しければ」みたいなのありますね。あんな感じをうけました。
それと、このアレックスさん。この人はオーナーなのかな。そうじゃないなら罵声を浴びせられる仕事は大変だよね。