robots.txt で botの来襲を防ぐ Semrush Ahrefs MJ12 BLEX
タイトルで言っちゃってますが、robots.txt に下記のように記述します
robots.txt の記述方法
robots.txtUser-agent: SemrushBot
Disallow: /
User-agent: AhrefsBot
Disallow: /
User-agent: MJ12bot
Disallow: /
User-agent: BLEXBot
Disallow: /
後は botが読み込んで来なくなるのを待つだけ
各botの説明サイトと実際のサービスサイトを張っておきます
Semrush は無料では使えないので Disallow: / でよいと思います
Ahrefs は無料で多少使えますが、詳しく見ようと思うと有料
majestic MJ12bot は無料でさわりを見ることができ、詳しく見ようと思うと有料
webmup BLEXbot は無料でさわりを見ることができ、詳しく見ようと思うと有料
・SemrushBot https://ja.semrush.com/bot/ https://ja.semrush.com/
・AhrefsBot https://ahrefs.com/ja/robot https://ahrefs.com/ja/
・MJ12bot https://mj12bot.com/ https://majestic.com/
・BLEXbot http://webmeup-crawler.com/ https://webmeup.com/
もっとアグレッシブに防御したい場合は下記
Apache .htaccessの記述例
.htaccess で 403 forbiddenを返し、robots.txtだけ表示する場合
apache 2.2系
SetEnvIf User-Agent "SemrushBot" bot
SetEnvIf User-Agent "AhrefsBot" bot
SetEnvIf User-Agent "MJ12bot" bot
SetEnvIf User-Agent "BLEXBot" bot order Allow,Deny
Allow from all
Deny from env=bot
<Files robots.txt>
Allow from all
</Files>
apache 2.4系
SetEnvIf User-Agent "SemrushBot" bot
SetEnvIf User-Agent "AhrefsBot" bot
SetEnvIf User-Agent "MJ12bot" bot
SetEnvIf User-Agent "BLEXBot" bot <RequireAll>
Require all Granted
Require not env deny_bot
</RequireAll>
<Files robots.txt>
Require all Granted
</Files>
設置したら、実はアクセスの大半がbotでサーバが軽くなったとかあるかも!?
実際あったんですよね
しょぼいシステムだったからか、DBに負荷がかかり、調べたらbotでした
参考:
迷惑クローラーの排除・拒否方法についての解説&よくある勘違い(初心者向け)
https://qiita.com/fallout/items/ef33549e2d6b4e799874
追記:IPアドレスで拒絶する場合
petalbot: 114.119.128.0/18
semrush: 185.191.171.1/24
AhrefsBot: 51.222.253.1/24
DotBot: 216.244.66.199