Признаки
- Нагрузка на сервер выросла, а посетителей в Яндекс Метрике столько же, сколько обычно.
- Сайт отвечает медленно или отдаёт ошибки 502 и 503 в одни и те же часы.
- В журнале доступа много запросов с одних адресов или из одной подсети.
- Запросы идут к поиску по сайту, фильтрам каталога, корзине или форме входа — к страницам, которые сервер собирает дольше всего.
- Хостинг пишет о превышении лимитов процессора или числа процессов.
Как проверить по журналу доступа
Журнал доступа (access log) лежит в панели хостинга в разделе «Логи» или на сервере, обычно в /var/log/nginx/access.log. Посмотрите, с каких адресов больше всего запросов:
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20И какие браузеры и программы чаще всего обращаются к сайту:
awk -F'"' '{print $6}' access.log | sort | uniq -c | sort -rn | head -20Если один адрес делает сотни запросов в минуту или запросы перебирают страницы фильтров подряд, это бот, а не человек.
Не хотите разбираться сами? Пришлём оценку в часах до начала работы, первая задача до 2 часов бесплатно.
Отправить задачуКак отличить поисковых роботов
Яндекс и Google тоже обходят сайт часто, и блокировать их нельзя: страницы пропадут из поиска. Название в user-agent ничего не доказывает, его подделывают. Проверяйте адрес обратным DNS:
host 5.255.253.1
host имя-из-ответаНастоящий робот Яндекса возвращает имя на yandex.ru, yandex.net или yandex.com, робот Google — на googlebot.com или google.com, и прямой запрос по этому имени возвращает тот же адрес. Если имя другое или не находится, это не поисковый робот.
Что сделать
- Ограничить частоту запросов. В nginx это
limit_req: например, не больше нескольких запросов в секунду с одного адреса к поиску, фильтрам и форме входа. Обычный посетитель так часто не кликает, а бот упрётся в лимит. - Закрыть тяжёлые страницы от ботов. Страницы фильтров с параметрами закройте в
robots.txt, а дубли с параметрами — тегомnoindexили каноническим адресом, если они не нужны в поиске. - Включить кеш. Страница из кеша не нагружает базу данных, и наплыв запросов переносится легче. Что включить для CMS: сайт долго грузится.
- Защитить вход в админку. Ограничьте число попыток входа, смените пароли администраторов, отключите неиспользуемые учётные записи.
- При большой атаке — CDN или сервис защиты. Они фильтруют запросы до вашего сервера. Если после подключения появились ошибки 520–522: ошибки CDN.
Ни одна мера не отсеет всех ботов, поэтому их сочетают и проверяют по журналу, что нагрузка снизилась, а поисковые роботы проходят.
Когда нужен специалист
- Нет доступа к журналам или настройкам сервера.
- Ограничение частоты нужно настроить так, чтобы не задеть покупателей и поисковых роботов.
- Сайт падает под нагрузкой несколько раз в день.
- Наряду с нагрузкой появились чужие страницы или файлы — это уже взлом: сайт взломали.
Сколько стоит решение у нас
| Задача | Время | Стоимость |
|---|---|---|
| Настройка сервера или VPS | 2–4 ч | от 7 600 ₽ |
| Настройка защиты | 1–2 ч | 3 800–7 600 ₽ |
Диапазоны ориентировочные, ставка 3 800 ₽ в час. Точную оценку присылаем до начала работ. Все цены.
Опишите проблему в форме. Пришлём оценку в часах до начала работы, первая задача до 2 часов бесплатно для новых клиентов.
Отправить задачуЧастые вопросы
Можно ли просто заблокировать все подозрительные адреса?
Можно временно закрыть самые активные адреса, но боты быстро меняют адреса. Надёжнее ограничить частоту запросов и закрыть тяжёлые страницы: это работает и против новых адресов.
Не упадут ли позиции, если ограничить ботов?
Нет, если не трогать поисковых роботов. Проверяйте их обратным DNS и не включайте настоящих роботов Яндекса и Google в блокировку.
Видно ли ботов в Метрике?
Часть ботов Метрика сама отсеивает и не показывает в отчётах. Поэтому нагрузку от ботов видно в журнале сервера, а не в Метрике: там посетителей столько же, сколько обычно.