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 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
さらに追記:
thesis-research-botの行儀がとても悪い
100.21.24.205 ec2-100-21-24-205.us-west-2.compute.amazonaws.com
44.230.252.91 ec2-44-230-252-91.us-west-2.compute.amazonaws.com
52.25.208.208 ec2-52-25-208-208.us-west-2.compute.amazonaws.com
thesis-research-bot はIPで403にするのが良い
nginxなら deny 100.21.24.205; とか
amazonbotの行儀が悪い
23.22.35.162 23-22-35-162.crawl.amazonbot.amazon
3.224.220.101 3-224-220-101.crawl.amazonbot.amazon
52.70.240.171 52-70-240-171.crawl.amazonbot.amazon
https://developer.amazon.com/ja/support/amazonbot
User-agent: Amazonbot
Disallow: /
Alexaとかに使っているよう