robots.txt」タグアーカイブ

.htaccessで特定ボットのアクセスを拒否する書き方

最近、「SemrushBot」「Linespider」「BLEXBot」あたりのボットが活発に活動しているようで、Webサーバーに大量のログが残っていました。検索エンジン関係であればボットのアクセスも必要経費と見なせますが、SEO系ボットによるアクセスはサーバーの負荷になるだけなので、余り嬉しくありません。

ということで、特定のボットによるアクセスを拒否したい場合は.htaccessに以下の内容を追加してみると良いと思います。注)

SetEnvIf User-agent "SemrushBot" BadBot
SetEnvIf User-agent "Linespider" BadBot
SetEnvIf User-agent "BLEXBot" BadBot
Deny from env=BadBot

robots.txt

User-agent: SemrushBot
Disallow: /

User-agent: Linespider
Disallow: /

User-agent: BLEXBot
Disallow: /

のようにする方法もありますが、robots.txtを見ないボットもあり一々調べるのも面倒ですから、.htaccessが使えるサーバーであれあば.htaccessで拒否する方が望ましいと思います。


注) SemrushBot、Linespiderなどの文字列はアクセスログからユーザーエージェントを調べてください。(ユーザーエージェントの一部に該当文字列が含まれていれば拒否する設定になっています。)

Bingbotのクローリングを抑制してもらう設定

Webサイトのログを見ていると、Bingbotが短時間に大量のアクセスをしていることが分かり、サーバーの負荷になっているようだったのでrotbots.txtで対策してみました。

robots.txtに追加した設定は以下のような感じです。

User-agent: Bingbot
Crawl-delay: 30

Crawl-delayを追加すると、指定した秒数を空けてアクセスしてくれるようになるみたいです。今回の場合は30秒に1回以下の頻度でアクセスされることになります。(設定できる値は1から30まで)


.htaccessDenyしたくはないけれど、大量のアクセスは気になるという場合に便利なCrawl-delayですが、現状ではBingbot以外ではほぼ使えない状態みたいです。