vlip

.site

.site

vlip

Cookie-баннер по 152‑ФЗ: нужен ли и как сделать, чтобы счётчики не запускались раньше согласия

По нашим проверкам, у 53,7 % сайтов счётчики вроде Яндекс.Метрики загружаются раньше, чем посетитель успевает согласиться на cookie, а у 36,3 % баннера с согласием нет вообще. Разбираем, когда баннер действительно нужен, почему просто «плашка с кнопкой ОК» не спасает, и как настроить сайт так, чтобы счётчики ждали ответа посетителя — на своём коде и на Tilda.

· 9 мин чтения

Cookie-баннер по 152-ФЗ: нужен ли и как сделать, чтобы счётчики не запускались раньше согласия

У большинства сайтов баннер есть — но счётчики всё равно грузятся раньше согласия

По данным проверок vlip.site (14 037 сайтов, апрель–сентябрь 2026), у 36,3 % сайтов нет вообще никакого cookie-баннера с запросом согласия. У остальных он в основном есть — но у 53,7 % сайтов счётчики (Яндекс.Метрика, Google Analytics, рекламные пиксели) грузятся раньше, чем посетитель успевает нажать хоть одну кнопку.

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

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

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

Разница важна с точки зрения 152-ФЗ. Определение персональных данных в ст. 3 закона — это любая информация, относящаяся к прямо или косвенно определённому физическому лицу. Уникальный идентификатор в cookie, который позволяет узнать конкретный браузер при повторном визите, под это определение подпадает — и на профильных площадках, и в разъяснениях Роскомнадзора для бизнеса эту позицию озвучивали не раз, включая аналитические системы вроде счётчиков посещаемости.

Прямая формулировка «cookie-баннер обязателен» дословно в тексте 152-ФЗ не встречается — закон вообще не использует слово cookie. Требование выводится из общих норм: если сервис аналитики обрабатывает данные, которые закон относит к персональным, нужно основание для обработки, и для большинства сайтов таким основанием служит согласие посетителя (ст. 9 152-ФЗ).

Из этого следует практическое деление:

  • Строго технические cookie — корзина, авторизация, языковые настройки, защита от накрутки форм. Здесь можно опираться на другое основание из ст. 6 152-ФЗ — обработка нужна для исполнения договора или оказания услуги, которую сам посетитель запросил. Отдельное согласие на них обычно не берут.
  • Аналитика и реклама — Метрика, Google Analytics, пиксели соцсетей, рекламные системы. Здесь основание — согласие, и его нужно получить до того, как счётчик начал что-либо собирать.

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

Причина в том, как обычно подключают счётчики. Типичная установка Яндекс.Метрики выглядит так: в <head> страницы вставляется скрипт, который загружает tag.js и сразу инициализирует счётчик. Этот код срабатывает в момент, когда браузер разбирает HTML страницы — то есть за доли секунды до того, как на экране вообще успевает отрисоваться баннер.

Cookie _ym_uid (уникальный идентификатор посетителя) и _ym_d (дата первого визита) Метрика ставит сразу при первом обращении счётчика к серверу — согласно документации Яндекса, это происходит при самой первой загрузке страницы со счётчиком. Если баннер в это время ещё не показан или посетитель его не закрыл, запрос всё равно уходит.

Дальше в дело вступает формулировка. Многие баннеры до сих пор используют текст в духе «Мы используем cookie. Продолжая пользоваться сайтом, вы соглашаетесь с их обработкой» — без кнопок «принять» и «отклонить», просто крестик закрытия или сама плашка исчезает через несколько секунд. Это пассивное согласие: по факту оно не требует от посетителя никакого действия, кроме того, что он уже совершает — листает сайт дальше.

Часть 1 ст. 9 152-ФЗ говорит, что согласие должно быть конкретным, предметным, информированным и однозначным. Молчание или бездействие посетителя согласием не считается — эту позицию Роскомнадзор прямо формулирует в своих разъяснениях по формам согласия. Баннер, который просто информирует и не даёт выбора, а к моменту показа счётчик уже отработал, — не выполняет ни одно из этих условий одновременно: ни своевременности, ни явности.

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

Как проверить свой сайт за пять минут

Владелец магазина за прилавком проверяет свой сайт

Не нужно ничего устанавливать — только браузер.

  1. Откройте сайт в режиме инкогнито (обычный профиль браузера может уже хранить cookie с прошлых визитов и исказить картину).
  2. До того как нажимать что-либо на баннере, откройте инструменты разработчика (F12 или Cmd+Option+I на Mac) и перейдите на вкладку Network.
  3. Обновите страницу (F5) и сразу остановитесь, не трогая баннер.
  4. В списке запросов найдите строку с mc.yandex.ru (Метрика), google-analytics.com или googletagmanager.com (GA), либо адреса других счётчиков и пикселей. Если они уже есть в списке — трекер стартовал раньше согласия.
  5. Дополнительно откройте вкладку Application → Cookie (в Chrome; в Firefox — «Хранилище»), выберите домен сайта и посмотрите, появились ли _ym_uid, _ga и подобные записи до клика на баннере.

Если запросы и cookie появляются только после того, как вы явно нажали «принять» — реализация корректна. Если они есть сразу при загрузке — здесь и нарушение.

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

Как сделать правильно: логика отложенной загрузки

Правильная схема выглядит наоборот тому, что происходит на большинстве сайтов сейчас:

  1. При заходе на сайт счётчики и пиксели не загружаются вообще — ни tag.js Метрики, ни gtag.js Google Analytics, ни скрипты пикселей.
  2. Посетитель видит баннер с двумя равноценными кнопками — «принять» и «отклонить» (или «только необходимые»). Баннер должен появляться сразу, а не после прокрутки или через несколько секунд.
  3. Только по клику «принять» скрипт счётчика подключается в код страницы и начинает работать.
  4. Если посетитель отклонил или закрыл баннер, не сделав выбора, — трекеры остаются отключены до следующего визита или пока он не изменит решение.
  5. Отдельная ссылка из баннера ведёт на документ, где расписано, какие cookie используются, зачем и на какой срок, — можно оформить отдельной страницей или разделом политики обработки персональных данных.

На уровне кода для проекта с ручной разметкой (не конструктор) это обычно решается так: скрипт счётчика оборачивается в условие — не выполняется сразу, а ставится в очередь, которая запускается только после того, как в localStorage или cookie появилась отметка о согласии на аналитику. То же самое верно для GTM: контейнер можно грузить всегда, но конкретные теги внутри него — с условием на переменную согласия (у Google Tag Manager для этого есть встроенный Consent Mode).

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

Как это выглядит на Tilda и на сайте со своим кодом

Tilda. В настройках сайта есть встроенное уведомление о cookie (Настройки → SEO → Cookie), а также готовые блоки-баннеры — например, из категории «Формы → Cookie banner». Само по себе включение этого уведомления счётчик не блокирует: если код Метрики вставлен отдельным блоком в head, как обычно и делают, он продолжит грузиться независимо от баннера. По разбору такой настройки на Хабре, рабочий вариант — перенести код счётчика в head с условием на согласие: при клике «принять» сначала ставится в очередь инициализация, следом подгружается сама библиотека tag.js. Заодно стоит убрать дублирующий блок со старым кодом Метрики, если он остался, и проверить noscript-пиксель mc.yandex.ru/watch/ — в части готовых блоков он грузится независимо от согласия.

Сайт со своим кодом или на CMS. Логика та же: код счётчика не должен выполняться до отметки о согласии. Реализовать можно вручную (условие на localStorage) или через готовые библиотеки управления согласием (CMP), которые есть и для WordPress, и для самописных проектов — но в любом случае результат нужно перепроверять в DevTools, как описано выше, а не доверять на слово документации плагина.

Отдельно про трансграничную передачу

Если счётчик или пиксель отправляет данные посетителей на серверы, физически расположенные за пределами России (часть зарубежных рекламных и аналитических систем работает именно так), это может подпадать под требования о трансграничной передаче персональных данных — с отдельными основаниями и, для части случаев, уведомлением Роскомнадзора. По нашим данным, это встречается у 9,5 % проверенных сайтов. Тема отдельная и заслуживает отдельного разбора — здесь только фиксируем: одного согласия на cookie в этом случае может быть недостаточно.

Что делать прямо сейчас

Если у вас на сайте есть хотя бы один счётчик аналитики:

  1. Проверьте через DevTools, грузится ли он до согласия — пять минут, инструкция выше.
  2. Если грузится — перенесите загрузку счётчика под условие на согласие, а не просто добавьте баннер поверх.
  3. Проверьте формулировку баннера: должны быть отдельные кнопки «принять» и «отклонить», а не только текст про «продолжая пользоваться».
  4. Добавьте ссылку на документ, где написано, какие cookie используются и зачем.

Если непонятно, с чего начать на конкретном сайте, — бесплатная проверка на vlip.site покажет, что именно не так, а дальше можно бесплатно оставить заявку эксперту с описанием ситуации.

Смежные материалы: как проверить сайт на соответствие 152-ФЗ целиком — в статье «Как проверить сайт на соответствие 152-ФЗ», про корректную форму согласия на обработку персональных данных — в статье «Согласие на обработку персональных данных на сайте». Общий разбор требований 152-ФЗ к сайту — на странице /152-fz.

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

Нужен ли cookie-баннер, если сайт не собирает имя и телефон напрямую?+

Если на сайте есть счётчики вроде Яндекс.Метрики или Google Analytics, они присваивают посетителю уникальный идентификатор и cookie для отслеживания между визитами — это уже подпадает под определение персональных данных по ст. 3 152-ФЗ. Роскомнадзор на разъяснениях для бизнеса указывал, что согласие нужно и для аналитических систем. Строго технические cookie — например, для работы корзины или авторизации — обычно можно ставить без баннера, на основании исполнения договора.

У нас уже есть баннер «Мы используем cookie, продолжая пользоваться сайтом, вы соглашаетесь». Этого достаточно?+

Нет, если счётчик подключён обычным кодом со страницы Метрики. Такой код запускается в момент загрузки страницы — до того как посетитель вообще увидел баннер. Формулировка «продолжая пользоваться, вы соглашаетесь» — это пассивное согласие, которое по ст. 9 ч. 1 152-ФЗ не считается действительным: закон требует явного действия.

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

Откройте сайт в режиме инкогнито, до появления баннера нажмите F12 → вкладка Network, обновите страницу и найдите запросы к mc.yandex.ru или google-analytics.com. Если они есть до клика на баннер — трекер стартует раньше согласия.

На Tilda баннер настраивается так же, как на обычном сайте?+

Механика та же: заблокировать загрузку счётчика до согласия. У Tilda для этого есть встроенное уведомление о cookie в настройках сайта (Настройки → SEO → Cookie) плюс отдельные блоки-баннеры, но код Метрики нужно переносить в head с условием на согласие вручную — просто включить уведомление недостаточно, если счётчик подключён отдельным блоком с кодом.

Нужна ли отдельная страница «Политика cookie», если уже есть политика обработки персональных данных?+

Требования к отдельному документу именно про cookie в 152-ФЗ прямо не прописаны, но на практике так удобнее и посетителю, и вам: в одном документе — какие cookie используются, зачем, на какой срок, как отказаться. Можно оформить как раздел политики обработки персональных данных со ссылкой из баннера.

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