Как заблокировать бота Amazonbot

Материал из support.qbpro.ru

Блокировка Amazonbot: пошаговая инструкция Итак, пусть на странице Amazonbot утверждается, что он следует директивам из файла robots.txt, но мне директива Disallow не помогла. Бот продолжал создавать колоссальную нагрузку на сервер.

CloudFlare также не помогает против Amazonbot, так как не считает его вредным ботом. Соответственно, бот будет спокойно продолжать гулять по сайту. Плагины против ботов также не сработали, так как они реагируют только на специфичное поведение ботов, так что я нашёл только один способ заблокировать Amazonbot.

Я запретил для Amazonbot посещение сайта на уровне сервера через файл .htaccess. Сделать это можно с помощью такого кода:

SetEnvIfNoCase User-Agent "Amazonbot" blocked_bot
<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=blocked_bot
</Limit>

Этот код не позволит Amazonbot посетить сайт, при каждом входе Amazonbot будет получать ответ сервера 403 (Доступ запрещён).

403 Forbidden для Amazonbot

Конечно, это не уберёт нагрузку на сервер полностью, но выданная боту практически пустая страница, заметно сокращает нагрузку.

Это решение наиболее адекватное, по крайней мере, лучше, чем не делать ничего. Конечно, можно блокировать отдельные IP-адреса Amazonbot, но так как он идентифицирует себя, то это лишнее. Проще блокировать предложенным выше образом.

Также рекомендую прочитать статьи о блокировке ботов и краулеров, а также список вредных и полезных ботов. Там вы узнаете больше про ботов, которые следует заблокировать. А также про тех, которых блокировать не следует.

Если у вас хостинг на базе веб-сервера nginx, то могут возникнуть сложности, так как пользователи хостинга не могут получать доступ к конфигурации nginx. Но если у вас VDS или VPS, то проблем нет.

В папке /etc/nginx вам нужно создать файл. Например, badbot.conf. Назвать можете как угодно, главное, чтобы название было уникальным, а также сами не забыли, как он называется.

Теперь в этот файл добавьте строку:

if ($http_user_agent ~* "Amazonbot"){ return 403; }

Таким образом, всем ботам с user_agent “Amazonbot” мы будем возвращать ответ сервера 403.

Следующим шагом нужно добавить в блок server директиву:

include /etc/nginx/badbot.conf;

После перезапустите nginx командой:

service nginx restart

или

service nginx reload

Команды выполняются от root, не забывайте этого.