Что изменилось 2026-09-19: добавлены пошаговый порядок действий (6 шагов), пограничные случаи (поисковики, агрегаторы, резидентные прокси) и раздел «Чего не делать».
Парсинг сайта - это автоматический сбор данных роботом. Поисковые системы работают именно так, и это нормально. Проблема начинается там, где конкурент выгружает ваши контакты и прайс, чтобы позвонить вашим же клиентам раньше вас. В этой статье - конкретные шаги: что именно смотреть в логах, как закрыть самые уязвимые места и чего точно не делать.
Что именно собирают у бизнеса
Контакты со страниц - телефоны менеджеров, корпоративная почта, ссылки на мессенджеры. Особенно ценны прямые номера: по ним конкурент строит вашу оргструктуру и выходит на конкретных сотрудников.
Каталог и цены - чтобы демпинговать там, где вы зарабатываете. Если цены у вас меняются раз в неделю, сборщик снимает их так же часто.
Формы захвата - конкурент видит, как устроена ваша воронка: какие поля, какой оффер, куда ведёт форма. Структуру копируют.
Данные о посетителях - если у вашего сайта есть открытые endpoint-ы с аналитикой или незащищённые API, через них можно понять, кто к вам заходит и откуда.
Снять данные с чужого сайта намного дешевле и быстрее, чем набирать собственную базу годами. Именно поэтому конкуренты делают это, а не только специализированные агрегаторы.
Если не знаете, что именно открыто у вас прямо сейчас, - проверьте, что видит робот на вашем сайте. Разбор бесплатный.
Как понять, что вас парсят
Стопроцентного признака нет, но есть косвенные сигналы - их нужно смотреть вместе.
В логах веб-сервера ищите:
- Десятки или сотни запросов с одного IP за минуту. Реальный человек так не ходит.
- Трафик из диапазонов IP облачных провайдеров: Amazon AWS, Google Cloud, Hetzner, DigitalOcean. Реальный клиент не заходит с серверного адреса.
- Последовательный обход каталога за секунды: /catalog/1, /catalog/2, /catalog/3 подряд. Человек так не читает.
- Заголовок User-Agent с шаблонными строками: "python-requests/2.31", "curl/7.88", "Go-http-client/2.0" или полное его отсутствие.
В метриках трафика смотрите на:
- Сессии длиной 0-3 секунды с глубиной просмотра 10+ страниц. Физически невозможно для человека.
- Резкий рост числа визитов при стабильном или падающем числе заявок.
В реальной жизни сигналы такие:
- Менеджеры начали получать звонки о трудоустройстве от незнакомых компаний - личные номера уже в чужой базе.
- На корпоративные почты приходит спам, хотя адреса нигде явно не публиковались.
Три-четыре признака одновременно - повод разобраться предметно, а не ждать.
Порядок действий: с чего начать
Шесть шагов от подозрения до реально закрытых уязвимостей.
Шаг 1. Скачайте access.log за 7-14 дней и просмотрите его
Смотрите три вещи: сколько раз обратился каждый IP за сутки (500+ запросов с одного адреса - не человек), какой User-Agent у этих запросов (строки без браузерного идентификатора - сигнал), в какое время шли всплески (ночные пики с 2 до 5 утра типичны для автоматических сборщиков).
Шаг 2. Проверьте, что отдаёте в открытой HTML-разметке
Откройте любую страницу с контактами с отключённым JavaScript - в DevTools браузера это «Disable JavaScript». Видны телефоны и почты в тексте страницы? Их видит любой робот без труда. Это первое, что нужно убрать из статичной разметки.
Шаг 3. Настройте лимиты частоты запросов
На уровне nginx: не более 10-15 запросов в секунду с одного IP к страницам каталога и контактов. Превышение - ответ 429 Too Many Requests, а не 403. Код 403 сигнализирует, что что-то спрятано, и провоцирует дальнейший поиск. Код 429 выглядит как перегрузка - сборщик переключается на другой источник.
Шаг 4. Отсеките трафик из дата-центров для чувствительных страниц
Публичные списки IP-диапазонов облачных провайдеров обновляются ежемесячно: AWS публикует свой список по адресу ip-ranges.amazonaws.com в JSON-формате, аналогичные есть у GCP и Azure. Блокировать их для страниц с ценами и контактами разумно: живые клиенты с серверных адресов не приходят.
Шаг 5. Разведите номера по каналам
Если уже используете коллтрекинг (Calltouch, CoMagic, Roistat) - динамическая подстановка уже работает: робот видит один номер в HTML, живой посетитель видит другой. Без коллтрекинга минимум - подставлять телефон через JavaScript после загрузки страницы, а не хранить в статичном HTML.
Шаг 6. Настройте регулярный мониторинг
Защита - это не разовая настройка. Новые способы сбора появляются каждый месяц; то, что вы закрыли полгода назад, через новый инструмент могут обойти. Смотрите аномалии в логах раз в неделю - это занимает 10-15 минут при наличии нормальной фильтрации.
Если хотите понять конкретно ваши векторы - запросите разбор данных своего сайта. Покажем, что именно видит робот у вас.
Пограничные случаи
Поисковики vs. сборщики конкурентов
Googlebot и Яндекс-бот тоже парсят ваш сайт - это нормально. Их диапазоны IP известны и опубликованы, они соблюдают robots.txt и Crawl-Delay. Агрессивный сборщик конкурента robots.txt игнорирует, идёт с нераспознанных адресов и не делает паузы между запросами. По этим признакам их можно разделить, не блокируя поисковую индексацию.
Агрегаторы цен
Яндекс.Маркет и крупные отраслевые площадки - их присутствие в логах нормально, если вы сами подключились к площадке или разрешили индексацию. Проблема начинается, когда агрегатор конкурента снимает ваш прайс без договорённости. Здесь помогает токенизация: в каждую выдачу цены вставляете уникальный токен, по которому видно, кто и когда снял данные.
Резидентные прокси
Трафик идёт с IP реальных домашних пользователей - это купленные прокси-сети. Ни блокировка дата-центров, ни фильтр по User-Agent не помогут. Здесь работают поведенческие признаки: слишком правильная последовательность обхода страниц, нулевое время на каждой из них, отсутствие нормального браузерного fingerprint (разрешение экрана, список шрифтов, JS-переменные).
Открытые API и лишние endpoint-ы
Закрывать API полностью нельзя, если он нужен партнёрам или интеграциям. Закрывайте избыточные поля: часто через API отдаётся больше данных, чем видно на сайте. Добавьте rate limiting и авторизацию по токену хотя бы для ресурсоёмких endpoint-ов - это закрывает самый очевидный путь для массового сбора.
Чего не делать
Не полагайтесь на robots.txt как на защиту
Файл robots.txt - это просьба, а не запрет. Поисковые боты его соблюдают. Агрессивный сборщик конкурента - нет. Robots.txt не скроет ни один контакт и не остановит целенаправленный сбор.
Не закрывайте целые страны
Geo-блокировка по стране часто отсекает реальных клиентов: менеджеры конкурента могут работать из того же города, что и ваши покупатели. Блокируйте конкретные сети дата-центров, а не целые географические зоны.
Не ставьте CAPTCHA на каждую страницу
CAPTCHA убивает конверсию и раздражает живых клиентов. Ставьте её только там, где реально нужна защита: формы заявок, страницы с ценами при аномальной нагрузке. На главную и информационные страницы ставить её не нужно.
Не храните прямые номера сотрудников в статичном HTML
Телефон в разметке страницы виден любому роботу без JavaScript. Если менеджер начал получать звонки о трудоустройстве от незнакомых - его номер уже в чужой базе. Решение: динамическая подстановка через скрипт или коллтрекинг.
Не считайте закрытие разовым делом
Закрыли один способ сбора - через месяц появится другой. Сборщики обновляются быстрее, чем большинство компаний проверяют свои логи. Мониторинг нужен постоянно, а не «один раз настроили и забыли».
Если хотите посмотреть, что именно открыто у вас прямо сейчас, - узнайте, как закрывают данные в вашей нише.
