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

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

14 июля 2026· 152-ФЗ· 6 мин. чтения
Панель выбора категорий cookie с отдельными переключателями

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

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

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

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

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

Частый компромисс выглядит так. Кнопка «Принять все» крупная, а отказ спрятан во втором уровне «Настроек». Так страдает юридическая позиция, а заодно и метрики. Посетитель, который искал отказ и не нашел, уходит с сайта, и в статистике это отразится как отказ, а не как согласие.

Для российского сайта хватит трех категорий

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

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

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

Почему переключатели выключены по умолчанию

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

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

Как устроен рабочий баннер

Рабочая схема состоит из двух экранов. На первом, в самом баннере, три действия:

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

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

На втором экране переключатели и кнопка «Сохранить выбор». Технически необходимые cookie стоят в списке без переключателя, с пояснением, почему их нельзя отключить. На нашем сайте сделано так же, только переключатели относятся к конкретным счетчикам, Яндекс Метрике и Top.Mail.Ru. Посетитель видит, что именно разрешает.

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

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

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

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

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

Метка времени нужна для срока пересогласия. Жесткого требования в законе нет, разумно переспрашивать раз в 12 месяцев. Еще она пригодится, когда меняется состав трекеров на сайте. Прежнее согласие новый счетчик не покрывает, и баннер нужно показать снова.

Часто забывают дать посетителю возможность передумать. Обычно это ссылка «Настройки cookie» в подвале, которая открывает тот же второй экран. Отозвать согласие посетитель вправе в любой момент (ч. 2 ст. 9 152-ФЗ), так же как согласие на обработку персональных данных в формах.

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

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

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

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

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

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

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

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

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

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

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

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