Cookie-баннер не блокирует ничего сам по себе — это окно с текстом и кнопкой. Если Яндекс.Метрика, рекламный пиксель или виджет чата загружаются при открытии страницы, данные посетителя уходят до того, как он что-то нажал, и согласие оказывается фиктивным: по статье 9 152-ФЗ оно должно быть предварительным, а не оформленным задним числом. Правильная схема одна: до согласия на странице работает только то, без чего сайт не функционирует, а всё остальное подключается скриптом после нажатия «Принять». Ниже — что относить к необходимому, а что блокировать обязательно, как технически отложить загрузку счётчика, где хранить сам факт согласия и как за минуту проверить, что блокировка действительно работает, а не только выглядит работающей. Отдельно разберём то, что чаще всего забывают: карты, видео и внешние шрифты подключаются не через script, а через iframe и link, и их тоже нужно откладывать. Источники: 152-ФЗ, глава 13.11 КоАП.

Проверить свой сайт: что грузится до согласия — бесплатно


Почему баннер без блокировки хуже, чем его отсутствие

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

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

Что блокировать, а что нет

Категория Примеры До согласия
Технически необходимые сессия авторизации, корзина, CSRF-защита, само cookie согласия работают
Аналитика Яндекс.Метрика, любые счётчики посещаемости блокировать
Реклама и ретаргетинг пиксели рекламных систем, коллтрекинг блокировать
Внешние встраивания карты, видеоплееры, шрифты со сторонних хостингов блокировать
Виджеты онлайн-чаты, формы обратного звонка, отзывы блокировать
Тестирование A/B-платформы, тепловые карты, запись сессий блокировать

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

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

Как отложить загрузку: три рабочих приёма

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

2. Тип text/plain и подмена после согласия. Тег счётчика лежит в разметке, но с типом, который браузер не исполняет. После согласия скрипт находит такие теги, меняет тип на обычный и заново вставляет их в документ.

3. Атрибут-маркер и общий загрузчик. Все внешние скрипты помечаются признаком категории (аналитика, реклама, виджет), а один загрузчик после согласия включает те категории, на которые человек согласился. Этот вариант удобнее всего, если категорий больше одной.

Что бы вы ни выбрали, проверьте встраивания в разметке: карта, видео и шрифты подключаются не только через script, но и через iframe и link, и их тоже нужно откладывать.

Частая ошибка: заблокировали не то

Два перекоса встречаются одинаково часто.

Заблокировали слишком мало. Отложили счётчик, но оставили чат, карту и шрифты со стороннего домена. Формально трекер один, а данные посетителя всё равно уходят третьим лицам до согласия — нарушение то же самое.

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

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

Где хранить согласие

В отдельном cookie или localStorage, и хранить стоит три вещи:

Само это хранение технически необходимо: без него баннер показывался бы при каждом открытии страницы.

Проверка за минуту

  1. Откройте сайт в режиме инкогнито.
  2. Панель разработчика → вкладка «Сеть».
  3. Обновите страницу и ничего не нажимайте в баннере.
  4. Посмотрите список запросов: если среди них есть обращения к системам аналитики или рекламы — блокировки нет.
  5. Отдельно проверьте вкладку хранилища: аналитических cookie до согласия быть не должно.

Тот же результат можно получить, не разбираясь в панели: бесплатная проверка сайта показывает, какие трекеры и cookie появляются до согласия, и что из этого видно проверяющему.

Чем это грозит

Загрузка трекеров до согласия — обработка без надлежащего основания, состав по части 2 статьи 13.11 КоАП: для юридических лиц 300 000–700 000 ₽, при повторном нарушении по части 2.1 — 1 000 000–1 500 000 ₽.

Дополнительный риск — зарубежные сервисы: если счётчик или виджет передаёт данные за границу, добавляется трансграничная передача по статье 12 152-ФЗ с отдельным уведомлением. Разбор: «Трансграничная передача ПДн» и «Google Analytics в России».

Что почитать рядом


Запустить бесплатную проверку сайта — покажет трекеры, cookie до согласия, политику и зарубежные сервисы за минуту.