Оформить — от 590 ₽
152-ФЗ · Cookie

Cookie-баннер с возможностью отказа: как дать выбор категорий

14 июля 2026· ФЗ-156· 7 мин. чтения

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

Почему одна кнопка «Принять» не работает

152-ФЗ требует, чтобы согласие на обработку персональных данных было конкретным, информированным и сознательным. С 1 сентября 2025 года ФЗ-156 распространил эту логику на аналитические и рекламные трекеры: раз идентификатор посетителя позволяет отличить его от других и накапливать историю поведения, обработка начинается в момент загрузки скрипта, а не когда-то потом.

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

Отказ должен быть на том же экране

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

Три категории — этого достаточно для российского сайта

В шаблонах, скопированных с европейских сайтов, обычно пять-шесть категорий: strictly necessary, preferences, statistics, marketing, social media, unclassified. Российское законодательство числа категорий не устанавливает вовсе — оно требует, чтобы посетитель понимал, на что соглашается. Практика показывает, что для этого хватает трёх групп.

КатегорияЧто входитСогласие
Технически необходимые Сессия и авторизация, CSRF-токен, корзина, сам факт выбора в cookie-баннере, языковые настройки Не требуется — переключателя нет, наличие просто описано
Аналитические Яндекс Метрика, Top.Mail.Ru, любые счётчики посещаемости и записи сессий Требуется, выключено по умолчанию
Рекламные Пиксели рекламных систем, ретаргетинг, идентификаторы рекламных кабинетов Требуется, выключено по умолчанию

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

«Выключено по умолчанию» — не формальность

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

Здесь есть один законный промежуточный режим, о котором стоит знать: часть счётчиков умеет работать без записи идентификатора в браузер. Такой режим не создаёт персональных данных и потому допустим до согласия. Как это устроено в Яндекс Метрике и какой код за это отвечает — разбираю отдельно в статье «Как отключить Яндекс Метрику до согласия на cookie».

Как это выглядит в рабочем виде

Работающая схема состоит из двух экранов. Первый — сам баннер с тремя равнозначными действиями:

  • Принять всё — включает все категории;
  • Только необходимые — не включает ничего, кроме технических;
  • Настроить — открывает второй экран с переключателями по категориям (или по конкретным трекерам, если их немного).

Первые две кнопки должны быть визуально сопоставимы: одинаковый размер, одинаковая контрастность, ни одна не оформлена как «серая ссылка на фоне яркой». Кнопка «Настроить» может быть менее акцентной — это не выбор, а переход к выбору.

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

Проверка на тёмный паттерн

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

Где хранить выбор и когда спрашивать заново

Выбор удобно хранить в localStorage, а не в cookie: он не уходит на сервер с каждым запросом и не является трекингом сам по себе. Структура достаточно простая — по флагу на категорию плюс метка времени:

{"analytics": false, "ads": false, "ts": 1785412727000}

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

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

Что должно быть в политике cookie

Баннер — это интерфейс, а не документ. Он ссылается на политику использования cookie, где раскрывается то, что в баннер не поместилось: перечень конкретных файлов, назначение каждой группы, сроки хранения, кто ещё получает данные (для Метрики это Яндекс как обработчик) и как отозвать согласие. Требования к содержанию документа и типичные ошибки — в разборе «Cookie-баннер для сайта».

Полный перечень настроек, которые проверяются в российской практике — от текста первого экрана до поведения при повторном визите — я собрал отдельным чек-листом: «Настройки cookie-баннера по требованиям РФ».

Проверьте, как ваш баннер видит проверяющий

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

Проверить сайт бесплатно

Часто задаваемые вопросы

Нет. Согласие должно быть свободным, а при одной кнопке выбора нет. Нужен равнодоступный отказ на том же экране — «Только необходимые» или «Отклонить», а не спрятанный во втором уровне настроек.

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

Нет. Аналитика и реклама должны быть выключены по умолчанию — предустановленная галочка юридически равна отсутствию согласия. У технически необходимых cookie переключателя нет вовсе, их наличие просто описывается.

Удобнее в localStorage — он не уходит на сервер и сам не является трекингом. Срок пересогласия закон не устанавливает; разумная практика — раз в 12 месяцев, а также сразу после изменения состава трекеров на сайте.

Автор: действующий архитектор кибербезопасности и систем защиты персональных данных. Создатель сервиса Privadoc. 17 лет в кибербезопасности · Специализация: эксперт в кибербезопасности, проектирование СЗПДн, защита персональных данных · Privadoc