Блокировка ботов через .htaccess

Большинство ботов, сканирующих сайты, не приносят пользы. Некоторые хостеры рекомендуют блокировать чрезмерно активных ботов если на вашем сайте более 100 страниц, а также если ваш аккаунт уже превышал допустимые нормы нагрузки.

Правила блокировки состоят из двух блоков — перечисление User-Agent ботов и непосредственно сама блокировка.

User-Agent бота можно добавлять по отдельности:

SetEnvIfNoCase User-Agent "^UserName_of_bot" bad_bot

или сразу несколько в виде массива «First_Name|Second_name»:
Например:

SetEnvIfNoCase User-Agent "BLEXBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|SeznamBot|ZoominfoBot|MegaIndex.ru|Exabot|VelenPublicWebCrawler" bad_bot

В этом списке указаны наиболее активные роботы различных систем и сервисов в рунете.
На специализированных сайтах вы можете найти более обширные списки ботов, но стоит помнить, что эти списки составляются зарубежными вебмастерами и в них часто попадают поисковые боты yandex и mail.ru, блокировка которых крайне нежелательна.

В конце файла .htaccess необходимо добавить следующее:

<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Limit>

После этого все указанные боты не смогут получить доступ к сайту вне зависимости от правил в файле robots.txt

Полный список правил будет выглядеть следующим образом:

SetEnvIfNoCase User-Agent "BLEXBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|SeznamBot|ZoominfoBot|MegaIndex.ru|Exabot|VelenPublicWebCrawler" bad_bot

<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Limit>

Если сайт перестал открываться после внесения изменений в htaccess(ошибка 500 или белый экран), скорее всего была допущена синтаксическая ошибка при добавлении правил блокировки. Текст ошибки можно увидеть в логе ошибок(/logs/domain.ru.error.log)