Боты и защита

Защита сайта от парсинга

Полностью защитить открытый сайт от копирования нельзя — всё, что видит человек, может увидеть и программа. Но можно сделать парсинг дорогим и медленным. Рассказываем, как.

Обновлено 11 ноября 20263 мин чтенияКоманда nbots

Содержание
  1. Кто и зачем парсит сайты
  2. Чем вредит парсинг
  3. Способы защиты
  4. Что не работает или вредит
  5. Как не задеть поисковики
  6. Частые вопросы

Коротко

  • Всё, что видит человек, может прочитать программа — цель в том, чтобы сделать парсинг дорогим.
  • Лимиты запросов и проверка браузера останавливают большинство парсеров.
  • Поисковых роботов проверяйте по DNS, а не по User-Agent.

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

  • Конкуренты — следят за ценами и ассортиментом.
  • Агрегаторы и дорвеи — копируют тексты и каталоги.
  • Сборщики контактов — телефоны и почты для рассылок.
  • Нейросетевые краулеры — собирают тексты для обучения моделей.

Чем вредит парсинг

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

Способы защиты

  1. Лимит запросов. Ограничение числа запросов с одного IP в секунду и минуту на уровне nginx или хостинга. Главная защита от грубого парсинга.
  2. robots.txt для честных краулеров. Многие SEO- и AI-краулеры его соблюдают. Правила можно собрать в генераторе блокировки ботов.
  3. Блокировка дата-центров и прокси. Живые покупатели редко приходят с серверов хостингов. Но аккуратно: с серверов приходят и поисковые роботы.
  4. Антибот с проверкой браузера. Посетителю без признаков живого браузера показывается проверка. Простые парсеры на HTTP-запросах её не проходят, а безголовые браузеры выдают себя признаками автоматизации.
  5. Отдача важных данных после проверки. Например, цены или телефоны подгружаются только после того, как посетитель признан человеком.
Генератор блокировки ботовСоберите правила для robots.txt, nginx и .htaccess против SEO- и AI-краулеров — без риска закрыть Яндекс и Google.Открыть

Что не работает или вредит

  • Запрет копирования текста скриптом — мешает людям, а парсер читает HTML напрямую.
  • Картинки вместо текста — портят SEO и доступность, распознаются за секунды.
  • Блокировка всех «роботов» по User-Agent — вы закроете сайт от поисковиков, а парсер просто сменит строку.
limit_req_zone $binary_remote_addr zone=perip:10m rate=5r/s;

server {
    location / {
        limit_req zone=perip burst=20 nodelay;
    }
}

Пример лимита в nginx: не больше 5 запросов в секунду с одного адреса, с запасом на всплески. Значения подбирайте под свой сайт.

Как не задеть поисковики

Любую защиту проверяйте на роботах Яндекса и Google. Отличать настоящего поискового робота нужно не по User-Agent, а по обратному и прямому DNS: адрес должен принадлежать домену Яндекса или Google. Так работает и nbots — поисковики всегда проходят без проверки и не входят в лимит визитов.

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

Можно ли полностью защитить сайт от парсинга?

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

Как защититься от парсинга цен конкурентами?

Ограничить частоту запросов, показывать проверку посетителям без признаков живого браузера и подгружать цены только после того, как посетитель признан человеком.

Не навредит ли защита от парсинга SEO?

Не навредит, если пропускать роботов Яндекса и Google, проверяя их по DNS, а не по User-Agent.

Законен ли парсинг сайтов?

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

Как понять, что сайт парсят?

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

Защитит ли от парсинга авторизация?

Да, для закрытых данных это самый надёжный способ. Но публичные страницы, которые должны индексироваться, авторизацией закрыть нельзя.

Не заблокирует ли лимит запросов живых людей?

При разумных значениях — нет: человек не открывает десятки страниц в секунду. Начинайте с мягких лимитов и смотрите журнал отказов.

Читайте также