Советы

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

Полностью запретить парсинг нельзя, но можно сделать его дорогим и отсечь вредных ботов. Пошаговый план без вреда для SEO.

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

Полностью защитить открытый сайт от парсинга невозможно: всё, что видит посетитель, технически можно скопировать. Но можно сделать сбор данных дорогим и медленным, отсечь большую часть вредных ботов и не дать им перегружать сервер. Для этого нужно сочетать несколько мер: анализ логов, ограничение частоты запросов, защиту на уровне CDN или хостинга, правила для форм и API и юридическую фиксацию авторства. Ниже — пошаговый план для владельца бизнеса.

Защита сайта от парсинга и вредных ботов на сервере

Кто и зачем парсит сайты

Не все боты вредны. Поисковые роботы Яндекса и Google нужны для индексации, сервисы мониторинга проверяют доступность, а агрегаторы иногда приводят клиентов. Проблемы создают другие:

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

Признаки, что сайт активно парсят

  1. Нагрузка на сервер выросла, а посещаемость в Метрике — нет.
  2. В логах сервера много запросов с одного IP-адреса или подсети за короткое время.
  3. Боты последовательно перебирают адреса: страницы каталога, пагинацию, фильтры.
  4. Ваши тексты и фото появляются на чужих сайтах вскоре после публикации.
  5. Цены конкурента меняются вслед за вашими почти мгновенно.

Если сайт начал работать медленно, а явной причины нет, проверьте трафик ботов в первую очередь: наплыв автоматических запросов — одна из частых причин торможения. Сравните отчёт о посещаемости в Метрике с нагрузкой на сервер за те же дни: расхождение между ними обычно и показывает долю роботов.

Шаг 1. Изучите логи сервера

Логи доступа — главный источник правды. В них видно IP-адрес, время, запрошенную страницу и User-Agent. На сервере с Linux быстро посмотреть самые активные адреса можно так (путь к логу зависит от настроек):

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20

Если наверху списка адреса с десятками тысяч запросов, а это не известные поисковые роботы, вы нашли кандидатов на ограничение. Помните, что User-Agent легко подделать: бот может представиться Яндексом. Настоящих поисковых роботов проверяют обратным DNS-запросом — Яндекс и Google описывают эту процедуру в своей справке.

Анализ логов сервера для защиты от парсинга

Шаг 2. Ограничьте частоту запросов

Живой человек не открывает 20 страниц в секунду. Ограничение частоты (rate limiting) — простая и эффективная мера. В nginx она настраивается директивами limit_req_zone и limit_req:

http {
    limit_req_zone $binary_remote_addr zone=perip:10m rate=5r/s;
    server {
        location / {
            limit_req zone=perip burst=20 nodelay;
        }
    }
}

Значения подбирайте под свой сайт и обязательно тестируйте: слишком жёсткий лимит может задеть обычных посетителей или поисковых роботов. Если у вас виртуальный хостинг без доступа к конфигурации, уточните у провайдера, какие средства защиты он предоставляет.

Шаг 3. Подключите защиту на уровне CDN или хостинга

Многие CDN-сервисы и хостинг-провайдеры предлагают фильтрацию ботов, проверку браузера, блокировку по странам и подсетям, защиту от DDoS. Такая защита отсекает трафик до того, как он дойдёт до вашего сервера. При выборе обращайте внимание, где физически обрабатываются данные посетителей и как это соотносится с требованиями к хранению персональных данных.

Шаг 4. Защитите формы, вход и API

  • на формы поставьте капчу или скрытое поле-ловушку; подробно — в статье как защитить формы от спама;
  • ограничьте число попыток входа в админку и смените стандартный адрес входа, если CMS это позволяет;
  • для API используйте ключи доступа и лимиты на количество запросов;
  • не отдавайте в открытом виде полные выгрузки каталога, если они вам не нужны.

Совет: не блокируйте ботов по одному признаку. Сочетание частоты запросов, поведения и проверки User-Agent даёт гораздо меньше ложных срабатываний, чем бан по одному полю.

Таблица: угроза, признак, мера защиты

Угроза Как проявляется Что делать
Парсинг цен и каталога Последовательный обход карточек и фильтров Лимит запросов, фильтрация на CDN, блок подсетей
Копирование текстов Дубли контента на чужих сайтах Фиксация авторства, жалобы хостингу и в поиск
Спам в формах Мусорные заявки Капча, поле-ловушка, проверка на сервере
Подбор паролей Много запросов к странице входа Лимит попыток, двухфакторная авторизация
Перегрузка сервера Рост нагрузки без роста посетителей Rate limiting, кэширование, защита на уровне хостинга

Шаг 5. Не навредите поисковому продвижению

Самая частая ошибка — вместе с вредными ботами заблокировать поисковых роботов. После этого страницы начинают выпадать из индекса. Проверяйте правила защиты так:

  1. Добавьте адреса проверенных роботов поисковиков в исключения (по результатам обратного DNS, а не по User-Agent).
  2. После включения защиты следите в Яндекс Вебмастере и Search Console за ошибками обхода.
  3. Не закрывайте сайт от индексации через robots.txt в попытке отпугнуть парсеры: вредные боты его просто игнорируют, а поисковики послушаются.

Если после настройки защиты страницы пропали из поиска, пройдите по инструкции почему сайт не индексируется.

Безопасность сайта: защита от ботов и копирования контента

Шаг 6. Защитите контент юридически и организационно

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

Что помогает на практике

  • водяные знаки на фотографиях товаров и работ;
  • уникальные детали в текстах: кейсы, фамилии специалистов, адреса объектов;
  • регулярный поиск копий своих текстов по характерным фразам.

Шаг 7. Наблюдайте постоянно

Боты меняют адреса и тактику, поэтому защиту нельзя настроить один раз. Настройте мониторинг нагрузки и доступности, раз в неделю просматривайте самые активные IP, корректируйте лимиты. Мы в Pear Advert включаем такой контроль в регулярное обслуживание сайтов: так проблемы видны до того, как их заметят клиенты.

Частые вопросы

Поможет ли запрет копирования текста правой кнопкой мыши?

Практически нет. Парсеры получают код страницы напрямую, а не через браузер. Такой запрет только раздражает обычных посетителей.

Можно ли запретить парсинг через robots.txt?

robots.txt — это рекомендация для добросовестных роботов. Вредные боты его игнорируют, поэтому защиты он не даёт.

Не заблокирую ли я своих клиентов?

Риск есть при слишком жёстких лимитах. Начинайте с мягких значений, анализируйте логи и ужесточайте постепенно.

Нужна ли защита небольшому сайту?

Базовая — да: лимит запросов, защита форм и входа в админку. Это недорого и снимает большую часть проблем.

Итог

Защита от парсинга — это не одна настройка, а набор мер: анализ логов, ограничение частоты, фильтрация на уровне CDN или хостинга, защита форм и входа, аккуратная работа с поисковыми роботами и постоянное наблюдение.

Надёжный хостинг с защитой от вредных ботов

Если не хотите разбираться сами — подключите поддержку сайта в Pear Advert: мы проанализируем логи, настроим защиту от ботов и будем следить, чтобы она не мешала продвижению.

Читать дальше

Статьи по теме

Начать проект

Давайте сделаем крутой проект вместе

Расскажите о задаче — мы бесплатно проанализируем нишу, предложим решение и назовём сроки со стоимостью. Без навязчивых звонков.

Телефон

8 (926) 837 76 68

Почта

info@pear-advert.ru

Офис

Москва, ул. Гиляровского, 57с1

Оставьте заявку

Ответим в течение рабочего дня

Выберите тип проекта

Данные используются только для ответа на заявку и хранятся не дольше трёх лет.