Как снизить нагрузку на сайт от поисковых и вредоносных ботов

Сегодня расскажем о том, как защититься от ботов и снизить нагрузку на ваш сайт и соответственно на трекер.

В начале июля Google анонсировал запуск нескольких миллионов Googlebot Smartphone и предупредил владельцев сайтов об увеличении объемов ботового трафика. Кроме того, на просторах интернета бродит много ботов, которые могут пытаться индексировать или что-то искать на вашем сайте, тем самым увеличивая нагрузку и “обваливая” сайт. А недоступность сайта в свою очередь — это потеря трафика и денег.

Поисковые боты

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

Нам необходимо настроить задержку индексирования, т.е. разрешить поисковым ботам Baidu, Bing, Mail, Яндекс и т.д. обращаться к сайту только через определенные временные интервалы. Для этого создадим файл robots.txt в корневой директории сайта с таким содержимым:

Файл должен находиться в корневой директории сайта:

Готово! Мы выставили интервал для поисковых ботов в 5 секунд, т.е. только раз в 5 секунд боты смогут проиндексировать сайт.

Тем не менее, это не панацея, т.к. некоторые боты (например Google)  игнорируют директиву Crawl-delay. Для Google задержку можно настроить в webmaster tools (подробнее — https://webmasters.stackexchange.com/a/56773) . К слову, подобные настройки для вебмастеров есть у многих поисковых систем.

Вредоносные боты: запрет на уровне конфигурации сервера

Теперь поговорим про ситуацию, когда сайт упал из-за большого количества трафика и боты крупных поисковых систем здесь ни при чем.

Для начала нужно выяснить, действительно ли это были боты. Для этого нужно проверить логи сервера, на котором расположен сайт. Проверять нужно, есть ли запросы с одним и тем же user agent. Например, уже больше десяти лет в сети бродит известный многим сисадминам MauiBot. Его можно блокировать без колебаний. В этот же список попадают MJ12bot, SEMrushBot, AhrefsBot. По запросу “blocking bad bots” можно найти списки с тысячами таких ботов.

Блокировка в данном случае будет происходить через файл конфигурации nginx. Для примера заблокируем вышеуказанных ботов. Предполагаем, что на вашем сервере уже установлен Keitaro при помощи нашего установочного скрипта https://keitaro.io/install.sh. В файл конфигурации nginx /etc/nginx/conf.d/vhosts.conf:

в секцию server нужно добавить строки:

Если на сервер устанавливались SSL сертификаты, то изменения нужно вносить в файлы конфигураций каждого из доменов (для домена domain.com нужно изменять файл /etc/nginx/conf.d/domain.com.conf).

Добавить нужные строки во все файлы конфигурации можно одной командой:

После изменения конфигурационного файла нужно перезарузить nginx, чтобы сервер увидел изменения. Для этого на сервере нужно выполнить команду:

Проверить, что всё сделано правильно можно выполнив команду:

В случае, если всё настроено правильно, вы увидитев ответе:

При такой блокировке боты не попадут ни на сайт, ни в трекер, и соответственно Keitaro их не учтет в статистике.

Дополнительная информация

База Знаний Keitaro
Установка Keitaro
Канал Keitaro на YouTube