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

У большинства сайтов баннер есть — но счётчики всё равно грузятся раньше согласия
По данным проверок vlip.site (14 037 сайтов, апрель–сентябрь 2026), у 36,3 % сайтов нет вообще никакого cookie-баннера с запросом согласия. У остальных он в основном есть — но у 53,7 % сайтов счётчики (Яндекс.Метрика, Google Analytics, рекламные пиксели) грузятся раньше, чем посетитель успевает нажать хоть одну кнопку.
Это значит, что баннер на большинстве сайтов не выполняет свою единственную задачу: получить согласие ДО того, как сайт начнёт собирать данные о посетителе.
Разбираем по порядку: когда баннер обязателен, почему просто «плашка снизу» не решает вопрос, как проверить свой сайт за пару минут и что сделать, чтобы счётчики действительно ждали ответа.
Когда cookie-баннер нужен, а когда можно обойтись без него
Cookie — это данные, которые сайт сохраняет в браузере посетителя. Часть из них — технические: они помогают сайту работать (запомнить товары в корзине, сохранить сессию входа в личный кабинет). Часть — аналитические и рекламные: они присваивают посетителю уникальный идентификатор и позволяют отличать его от других людей между визитами и даже между сайтами.
Разница важна с точки зрения 152-ФЗ. Определение персональных данных в ст. 3 закона — это любая информация, относящаяся к прямо или косвенно определённому физическому лицу. Уникальный идентификатор в cookie, который позволяет узнать конкретный браузер при повторном визите, под это определение подпадает — и на профильных площадках, и в разъяснениях Роскомнадзора для бизнеса эту позицию озвучивали не раз, включая аналитические системы вроде счётчиков посещаемости.
Прямая формулировка «cookie-баннер обязателен» дословно в тексте 152-ФЗ не встречается — закон вообще не использует слово cookie. Требование выводится из общих норм: если сервис аналитики обрабатывает данные, которые закон относит к персональным, нужно основание для обработки, и для большинства сайтов таким основанием служит согласие посетителя (ст. 9 152-ФЗ).
Из этого следует практическое деление:
- Строго технические cookie — корзина, авторизация, языковые настройки, защита от накрутки форм. Здесь можно опираться на другое основание из ст. 6 152-ФЗ — обработка нужна для исполнения договора или оказания услуги, которую сам посетитель запросил. Отдельное согласие на них обычно не берут.
- Аналитика и реклама — Метрика, Google Analytics, пиксели соцсетей, рекламные системы. Здесь основание — согласие, и его нужно получить до того, как счётчик начал что-либо собирать.
Если на сайте стоит только техническая cookie корзины — баннер, строго говоря, не обязателен. Но у подавляющего большинства сайтов, которые мы видим в проверках, есть хотя бы один счётчик аналитики — и тогда вопрос не «нужен ли баннер», а «работает ли он».
Почему баннер «Мы используем cookie [ОК]» не спасает
Причина в том, как обычно подключают счётчики. Типичная установка Яндекс.Метрики выглядит так: в <head> страницы вставляется скрипт, который загружает tag.js и сразу инициализирует счётчик. Этот код срабатывает в момент, когда браузер разбирает HTML страницы — то есть за доли секунды до того, как на экране вообще успевает отрисоваться баннер.
Cookie _ym_uid (уникальный идентификатор посетителя) и _ym_d (дата первого визита) Метрика ставит сразу при первом обращении счётчика к серверу — согласно документации Яндекса, это происходит при самой первой загрузке страницы со счётчиком. Если баннер в это время ещё не показан или посетитель его не закрыл, запрос всё равно уходит.
Дальше в дело вступает формулировка. Многие баннеры до сих пор используют текст в духе «Мы используем cookie. Продолжая пользоваться сайтом, вы соглашаетесь с их обработкой» — без кнопок «принять» и «отклонить», просто крестик закрытия или сама плашка исчезает через несколько секунд. Это пассивное согласие: по факту оно не требует от посетителя никакого действия, кроме того, что он уже совершает — листает сайт дальше.
Часть 1 ст. 9 152-ФЗ говорит, что согласие должно быть конкретным, предметным, информированным и однозначным. Молчание или бездействие посетителя согласием не считается — эту позицию Роскомнадзор прямо формулирует в своих разъяснениях по формам согласия. Баннер, который просто информирует и не даёт выбора, а к моменту показа счётчик уже отработал, — не выполняет ни одно из этих условий одновременно: ни своевременности, ни явности.
Сайт формально может показать проверяющему баннер на экране. Но счётчик к этому моменту уже собрал данные о посетителе без согласия — и в наших проверках нарушением считается именно это, а не отсутствие плашки как элемента дизайна.
Как проверить свой сайт за пять минут

Не нужно ничего устанавливать — только браузер.
- Откройте сайт в режиме инкогнито (обычный профиль браузера может уже хранить cookie с прошлых визитов и исказить картину).
- До того как нажимать что-либо на баннере, откройте инструменты разработчика (F12 или Cmd+Option+I на Mac) и перейдите на вкладку Network.
- Обновите страницу (F5) и сразу остановитесь, не трогая баннер.
- В списке запросов найдите строку с
mc.yandex.ru(Метрика),google-analytics.comилиgoogletagmanager.com(GA), либо адреса других счётчиков и пикселей. Если они уже есть в списке — трекер стартовал раньше согласия. - Дополнительно откройте вкладку Application → Cookie (в Chrome; в Firefox — «Хранилище»), выберите домен сайта и посмотрите, появились ли
_ym_uid,_gaи подобные записи до клика на баннере.
Если запросы и cookie появляются только после того, как вы явно нажали «принять» — реализация корректна. Если они есть сразу при загрузке — здесь и нарушение.
Проверить сайт можно и без ручной проверки в браузере — бесплатная проверка на главной vlip.site как раз идёт по этому же принципу: заходит на сайт и смотрит, что успевает загрузиться до того, как посетитель на что-то согласился, вместе с остальными пунктами по 152-ФЗ и другим законам. По итогу — отчёт с найденными нарушениями и вилками штрафов; если нужна помощь с исправлением, дальше можно бесплатно оставить заявку эксперту.
Как сделать правильно: логика отложенной загрузки
Правильная схема выглядит наоборот тому, что происходит на большинстве сайтов сейчас:
- При заходе на сайт счётчики и пиксели не загружаются вообще — ни
tag.jsМетрики, ниgtag.jsGoogle Analytics, ни скрипты пикселей. - Посетитель видит баннер с двумя равноценными кнопками — «принять» и «отклонить» (или «только необходимые»). Баннер должен появляться сразу, а не после прокрутки или через несколько секунд.
- Только по клику «принять» скрипт счётчика подключается в код страницы и начинает работать.
- Если посетитель отклонил или закрыл баннер, не сделав выбора, — трекеры остаются отключены до следующего визита или пока он не изменит решение.
- Отдельная ссылка из баннера ведёт на документ, где расписано, какие 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 в этом случае может быть недостаточно.
Что делать прямо сейчас
Если у вас на сайте есть хотя бы один счётчик аналитики:
- Проверьте через DevTools, грузится ли он до согласия — пять минут, инструкция выше.
- Если грузится — перенесите загрузку счётчика под условие на согласие, а не просто добавьте баннер поверх.
- Проверьте формулировку баннера: должны быть отдельные кнопки «принять» и «отклонить», а не только текст про «продолжая пользоваться».
- Добавьте ссылку на документ, где написано, какие 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 используются, зачем, на какой срок, как отказаться. Можно оформить как раздел политики обработки персональных данных со ссылкой из баннера.