Логотип seo-prodvizhenie-biznesa.ru
+7 (921) 333-77-45

Защита от парсинга: когда чужой робот выкачивает ваши цены и контакты

Защита от парсинга: когда чужой робот выкачивает ваши цены и контакты
Анатолий Кузнецов
Анатолий Кузнецов
SEO-оптимизатор с 20-летним стажем. Автор блога seo-prodvizhenie-biznesa.ru о продвижении и доработке сайтов.

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

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

Зачем ваш сайт выкачивают

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

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

Важное отличие от взлома: тут никто не ломает пароли и не лезет в админку. Всё, что забирают, сайт отдаёт сам — он для того и сделан, чтобы отдавать страницы всем, кто попросит. Поэтому разговор не про «закрыть наглухо», а про то, чтобы отдавать дозированно и знать, кому отдаёшь.

Как машинный обход выглядит в статистике и в логах

В счётчике аналитики вы этого чаще всего не увидите: счётчик работает скриптом в браузере, а простой сборщик страниц скрипты не выполняет. Зато всё видно в логах веб-сервера — там на каждый запрос записаны адрес, время, страница, код ответа, User-Agent и реферер. Доступ к логам есть в любой панели хостинга, обычно в разделе «Журналы».

Второе место — графики нагрузки в той же панели: процессорное время, число процессов, исходящий трафик. Ровные ночные всплески почти всегда означают машину: люди не ходят по каталогу в 3:40 с интервалом ровно в две секунды. Что ещё вытаскивается из журналов сервера, разобрано отдельно: логи сервера: что в них видит робот и чего не видите вы.

Что видите в логах или в панели Что это, скорее всего Что делать
Один адрес, сотни запросов в минуту, только карточки товаров, реферер пустой Обход каталога машиной Ограничить частоту запросов для этого адреса на стороне сервера
User-Agent содержит YandexBot, но обратный DNS не даёт имя в зоне Яндекса Чужой сборщик представился поисковым роботом Включить автоматическую проверку по DNS, а не доверять названию
Ровные всплески по ночам с одинаковым интервалом Обход по расписанию Ограничение частоты; смотреть, не растёт ли объём с каждым разом
Тысячи запросов к страницам фильтров и внутреннего поиска Перебор комбинаций фильтров Закрыть служебные параметры от индексации, ограничить частоту
Резко выросло число ответов 503 и 504 у обычных посетителей Сервер не справляется с суммарной нагрузкой Отдавать машинному трафику 429, разбираться с лимитами хостинга
Исходящий трафик вырос в разы, а посещаемость не изменилась Кто-то забирает картинки или файлы каталога Проверить, не подключил ли кто ваши изображения к себе напрямую

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

Чем поисковый робот отличается от чужого сборщика

Здесь владельцы совершают самую дорогую ошибку. Увидев в логах активного робота, человек блокирует всё, что похоже на робота, — по названию User-Agent, по стране, по признаку «нет браузера». Через неделю в панели вебмастера падает число обойдённых страниц, потом из поиска начинают пропадать разделы, и восстанавливается это месяцами.

Причина в том, что User-Agent — просто строка, которую отправитель пишет сам. Любой сборщик может назваться хоть YandexBot, хоть браузером на телефоне. Верить ей нельзя ни в ту, ни в другую сторону: ни блокировать по ней, ни пропускать.

Правильная проверка описана в справке Яндекса и состоит из двух шагов. Сначала по IP-адресу из логов делается обратный DNS-запрос — он возвращает доменное имя. Имена всех роботов Яндекса оканчиваются на yandex.ru, yandex.net или yandex.com. Затем по этому имени делается прямой DNS-запрос, и полученный адрес должен совпасть с исходным. Совпало — перед вами настоящий робот, не совпало — кто-то под него маскируется. Справка отдельно предупреждает, что список адресов роботов не публикуется и часто меняется, поэтому «белые списки IP», которые гуляют по форумам, использовать нельзя: проверка принадлежности робота Яндексу. В самом Вебмастере для разовой проверки есть инструмент «Проверка IP-адреса».

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

Что делать в первый час, когда нагрузка уже пошла

Первое — открыть панель хостинга и посмотреть, что упёрлось в лимит: процессорное время, число процессов, память или канал. Перебор страниц грузит процессор и базу, выкачивание файлов — канал.

Второе — взять лог за последний час и посчитать запросы по адресам. Картина почти всегда одинаковая: два-три адреса дают больше запросов, чем все остальные вместе.

Третье — проверить эти адреса по DNS, как описано выше. Если это настоящий робот Яндекса и он обходит сайт слишком бодро, скорость обхода регулируется в Вебмастере, в разделе индексирования: директива Crawl-delay в robots.txt Яндексом больше не учитывается с февраля 2018 года, её заменил этот инструмент.

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

Пятое — не трогать robots.txt в панике. Этот файл — просьба, а не забор: поисковые системы его соблюдают, чужой сборщик — по желанию. Строчкой Disallow: /catalog/ вы уберёте каталог из поиска, а выкачивать его будут ровно так же.

Что действительно снижает выкачивание

Ограничение частоты запросов

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

Проверки на стороне сервера, а не в браузере

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

Защита форм и того, что за ними

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

Мониторинг вместо разовой уборки

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

Что не помогает и чем можно навредить

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

Вывод цен картинкой. Цена перестаёт быть текстом — её не видит и поиск, и в сниппет она не попадает. Вы теряете больше, чем отбираете у конкурента, который картинку при желании распознает.

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

Глобальные зарубежные «щиты» перед сайтом. Прослойка встаёт и перед поисковым роботом тоже, и проверочную страницу он видит вместо вашего контента. Что из этого выходит в Рунете, разобрано отдельно: почему глобальный щит перед сайтом бьёт по позициям.

Капча на каждой странице. Убивает конверсию сильнее, чем любой конкурент с прайсом. Капча уместна на отправке формы, а не на входе в каталог.

План на неделю без программиста

День Что сделать Готово, если
1 Найти в панели хостинга логи и графики нагрузки, сохранить лог за сутки Файл у вас на компьютере, вы понимаете, где смотреть в следующий раз
2 Посчитать запросы по адресам за сутки, выписать первую десятку Видно, кто даёт больше всего запросов и к каким разделам
3 Проверить эти адреса обратным и прямым DNS-запросом Каждый адрес помечен: поисковый робот, известный сервис или неизвестный гость
4 Написать в поддержку хостинга заявку на ограничение частоты запросов Правило включено, порог записан, при превышении отдаётся 429
5 Проверить, не подключил ли кто ваши картинки к себе напрямую В логах нет запросов к изображениям с чужих доменов
6 Настроить оповещение о выходе нагрузки за обычный коридор Письмо приходит вам, а не остаётся в панели
7 Проверить позиции и обход в Вебмастере после всех правок Число обойдённых страниц не упало, ошибок доступа нет

Седьмой день обязательный. Любая защита — это новые правила отказа, и главный риск в том, что под них попадёт поисковый робот. Проверять надо не «открывается ли сайт у меня», а статистику обхода в панели вебмастера.

Юридическая сторона: тексты, фото и каталог

Чтение общедоступных страниц само по себе законом не запрещено. Вопросы возникают к тому, что с забранным делают дальше.

Ваши тексты и фотографии — объекты авторского права с момента создания, регистрировать их нигде не нужно. Если их опубликовали без разрешения, правообладатель вправе требовать компенсацию вместо убытков: по статье 1301 Гражданского кодекса в действующей редакции это от десяти тысяч до десяти миллионов рублей по усмотрению суда либо двукратная стоимость права использования. На верхнюю границу рассчитывать не стоит, но и десять тысяч за каждую фотографию складываются в ощутимую сумму.

Вторая, малоизвестная норма — про каталог как базу данных. Статья 1334 Кодекса даёт изготовителю базы данных, создание которой потребовало существенных затрат, исключительное право извлекать из неё материалы; под извлечением понимается перенос всего содержания или существенной части материалов на другой носитель любыми техническими средствами. И здесь работает презумпция: при отсутствии доказательств иного такой базой признаётся база, содержащая не менее десяти тысяч самостоятельных информационных элементов — статья 1334 ГК РФ. Для магазина с большим каталогом это значит, что разговор можно вести на языке права.

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

Когда меры не сработают и когда нужен человек

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

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

Отдельный случай, где точно нужен человек со стороны: сайт уже потерял позиции после того, как кто-то включил «защиту». Симптомы — упало число обойдённых страниц, появились ошибки доступа, из поиска пропали разделы. Разбор требует одновременно логов, настроек сервера и истории индексирования, и цена ошибки выше стоимости разбора. Если непонятно, с чего начать, посмотрите на состояние сайта целиком — бесплатный аудит сайта покажет, в доступности дело или в другом. Когда правки нужно ещё и внести, это доработка сайта по конкретному списку.

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

Можно ли понять, кто именно выкачивает каталог?

Иногда да. Обратный DNS-запрос чаще возвращает имя дата-центра, а не заказчика, но совпадение по времени с появлением ваших описаний на конкретном сайте — косвенное подтверждение. Юридически значимым доказательством это станет только после фиксации, и этим занимается юрист.

Поможет ли закрыть сайт от всех роботов, кроме Яндекса?

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

Стоит ли ставить капчу на весь каталог?

Нет. Капча перед контентом бьёт по живым посетителям и по обходу поиском: робот её не проходит и видит вместо товара проверочную страницу. Место капчи — отправка формы и вход в личный кабинет.

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

Через статистику обхода в панели вебмастера: там видно число загруженных страниц по дням и коды ответов, которые получил робот. Просело число страниц и выросло число ошибок — правило задевает робота. Проверять стоит через два-три дня после правки, а не в тот же час.

Коротко

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

Название User-Agent ничего не доказывает — его пишет сам отправитель. Принадлежность робота Яндексу проверяется обратным и прямым DNS-запросом, имена оканчиваются на yandex.ru, yandex.net или yandex.com, а списки IP-адресов из интернета использовать нельзя.

Рабочая мера — ограничение частоты запросов на сервере с ответом 429 при превышении. Живого посетителя оно не задевает, машинный обход делает бессмысленно долгим, и справка Яндекса сама рекомендует этот код при перегрузке.

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

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

Увеличьте позиции и продажи вашего сайта

Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:

Анатолий Кузнецов — SEO-оптимизатор

Остались вопросы по продвижению?

Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.

Связаться со мной →

Комментарии

Сергей

У меня магазин сантехники, 6 тысяч позиций. Конкурент открылся полгода назад и стабильно стоит на 2-3% ниже по всему прайсу. Логи посмотрел — действительно есть адрес, который каждую ночь в 2:15 проходит весь каталог. Хостинг ограничение поставил, но через неделю он вернулся с другого адреса. Дальше что?

Анатолий Кузнецов автор

Дальше меняется постановка задачи: не «заблокировать этот адрес», а «сделать выкачивание дорогим». Попросите хостинг поставить правило не по конкретному адресу, а по частоте для всех: столько-то запросов в минуту с одного адреса, дальше 429. Тогда каждый новый адрес упирается в тот же потолок автоматически, и обход всего каталога растягивается с двадцати минут на несколько часов. Параллельно сохраните выгрузку своего каталога с датой и несколько описаний, которые писали сами, — это ваша доказательная база, если дойдёт до претензии. И третье: раз позиции сами по себе у вас в порядке, а проигрываете только по цене, то это уже не техническая задача, а вопрос ассортимента и того, за что клиент платит кроме цены.

Светлана

Спасибо за таблицу, забрала. Один момент непонятен: у меня в логах половина запросов вообще без User-Agent. Это плохо?

Тимур

Не согласен с пунктом про правую кнопку. У меня фотостудия, я поставил запрет на выделение и копирование, и воровство фотографий прекратилось. Работает же.

Анатолий Кузнецов автор

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

Тамара

А как вообще сделать обратный DNS-запрос, если я не программист? В панели хостинга я такого не нашла.

Фёдор

Тамара, в Вебмастере есть готовый инструмент проверки IP-адреса, вставляете адрес из лога и получаете ответ, робот это Яндекса или нет. Для разовой проверки хватает за глаза, мне так техподдержку и объяснили.

Эдуард

Вопрос про 429. Мой хостинг говорит, что при превышении лимита они отдают 503, и менять это не будут. Насколько это хуже?

Анатолий Кузнецов автор

Принципиально ситуация не катастрофическая, но разница есть. 429 — это адресный сигнал «вы лично шлёте слишком часто», он относится к конкретному отправителю. 503 — сигнал «сервер сейчас не обслуживает никого», и его получают все подряд, включая живых посетителей и поискового робота. Если 503 отдаётся только превысившему лимит — жить можно. Если он начинает прилетать всем при каждом всплеске, это уже про мощность тарифа, и разговор с хостингом должен быть не про коды, а про лимиты. Уточните у них, кому именно уходит этот ответ.

Юрий

Проверил исходящий трафик — за месяц 400 гигабайт при посещаемости 3 тысячи человек. Полез в логи, нашёл чужой домен, который тянет мои фотографии товаров напрямую. Как это закрывают?

Ярослав

Наткнулся на сайт, где мои описания товаров стоят слово в слово. Написал им — молчат. Идти в суд из-за трёхсот карточек не хочется, это дороже выйдет. Есть что-то промежуточное?

Анатолий Кузнецов автор

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

Станислав

У нас после установки защиты от ботов просел обход: было 4 тысячи страниц в сутки, стало 300. Связано?

Элина

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

Филипп

Меня смущает сама постановка вопроса. Цены и так публичные, конкурент может посмотреть их вручную. Стоит ли вообще тратить силы на всё это?

Анатолий Кузнецов автор

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

Тихон

Полезно про презумпцию в десять тысяч элементов, не знал. У меня в каталоге 40 тысяч позиций, каждая с характеристиками. Сохраняю теперь выгрузки помесячно.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 Нажимая «оставить комментарий» вы принимаетеправила конфиденциальности 

Прокрутить вверх