Перейти к основному содержимому

Гайды 19 февраля 2026г. 11 мин чтения

Cookie-баннер на сайте: 4 рабочих варианта без штрафов в 2026

Шаблоны и формулировки в статье - просветительские. Перед публикацией согласуйте с юристом: штрафы РКН в 2025 году выросли, а правоприменение по cookie меняется каждые полгода. Эта статья даёт рабочий каркас, не юридическое заключение.

Шаблоны и формулировки в статье - просветительские. Перед публикацией согласуйте с юристом: штрафы РКН в 2025 году выросли, а правоприменение по cookie меняется каждые полгода. Эта статья даёт рабочий каркас, не юридическое заключение.

Cookie баннер 2026 - это уже не "ОК" в углу экрана. Роскомнадзор с 2023 года относит идентификаторы cookie к персональным данным, и тихая загрузка Метрики до согласия пользователя приравнивается к сбору без оснований. Ниже - 4 варианта с готовым кодом и разбор, какой подойдёт под ваш сайт.

Студия Сайты2.рф работает с 2008 года в Кронштадте (СПб), на счету 550+ проектов, NPS 9,2, средний рост заявок ×2,4. Cookie-баннер мы ставим в базовом тарифе разработки. Чтобы быстро проверить свой сайт - инструмент проверки 152-ФЗ.

Что такое cookies и какие данные собирают

Cookie - небольшой файл, который сайт сохраняет в браузере пользователя. Он живёт от одной сессии до нескольких лет. По назначению cookie делятся на 4 группы.

  • Сессионные (essential). Корзина магазина, авторизация, выбор города. Без них сайт не работает. Согласия не требуют.
  • Аналитические. Яндекс.Метрика, Google Analytics, Top.Mail.Ru. Собирают визиты, поведение, источники трафика.
  • Маркетинговые. ВКонтакте Пиксель, Яндекс.Аудитории, ретаргетинг myTarget. Привязывают пользователя к рекламным кампаниям.
  • Партнёрские. Виджеты Jivo, Tilda, Calltouch, коллтрекинг. Передают данные третьим сторонам.

Любая cookie из последних трёх групп несёт идентификатор. Роскомнадзор с письма от 2023 года рассматривает такие идентификаторы как персональные данные по статье 3 закона 152-ФЗ. Согласие нужно до того, как скрипт прогрузится в браузере.

Регулирование: 152-ФЗ, статья 9, GDPR

Базовый документ для российского сайта - федеральный закон 152-ФЗ. Главная статья - девятая: "согласие на обработку персональных данных должно быть конкретным, информированным и сознательным".

  • Конкретное - указаны цели и перечень данных.
  • Информированное - пользователь видит, кто оператор и зачем сбор.
  • Сознательное - активное действие, не предзаполненный чекбокс.

Позиция Роскомнадзора с 2023 года: cookie с идентификаторами требуют отдельного согласия. Решение нескольких судов СПб подтвердило позицию по жалобам пользователей.

Если на сайт идёт трафик из стран ЕС - дополнительно работает GDPR. Он строже российского аналога: требует отдельное согласие на каждую категорию и право на отзыв в один клик. Для типичного сайта в СПб это редкая ситуация, но интернет-магазины с доставкой за рубеж рискуют.

Подробный разбор закона - в чек-листе 152-ФЗ для сайта. Шаблоны документов - в статье про политику обработки ПДн и в материале про согласие на обработку.

Принципы законного баннера в РФ-2026

Чтобы cookie-баннер прошёл проверку Роскомнадзора, он закрывает 5 функций.

  1. Информирование. Текст объясняет, что сайт использует cookie, какие категории и зачем.
  2. Согласие. Активное действие пользователя - клик по кнопке или галочка, которую он сам ставит.
  3. Возможность отказа. Кнопка "Отказаться" или "Только необходимые" равной видимости с кнопкой "Согласиться".
  4. Настройка категорий. Опционально, но рекомендуется. Пользователь включает только аналитику или только маркетинг.
  5. Журнал согласий. Лог в базе с IP, временем и версией политики. Доказательство при споре.

Дополнительно: ссылка на политику обработки рядом с кнопками, повторный показ баннера через 6-12 месяцев, отсутствие "тёмных паттернов" (мелкая кнопка отказа, серый цвет, скрытие в подменю).

Вариант 1. Минимальный баннер

Подходит сайтам без рекламы и ретаргетинга: визитка, корпоративный сайт без маркетинговых пикселей, лендинг с одной формой заявки. Метрика и GA4 включены по умолчанию, баннер только информирует.

Юридический риск. Минимальный вариант не считается полноценным согласием по строгой трактовке РКН. Используйте только если на сайте нет рекламных скриптов и есть подтверждённая позиция юриста.

<div id="cookie-banner" class="cookie-banner">
  <p class="cookie-banner__text">
    Мы используем cookie для работы сайта и аналитики посещений.
    Продолжая пользоваться сайтом, вы соглашаетесь с
    <a href="/politika/">политикой обработки персональных данных</a>.
  </p>
  <button id="cookie-accept" class="cookie-banner__btn">Хорошо</button>
</div>
.cookie-banner {
  position: fixed; bottom: 1rem; left: 1rem; right: 1rem;
  max-width: 720px; margin: 0 auto;
  padding: 1rem 1.25rem; background: #fff;
  border: 1px solid #e5e5e5; border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  display: flex; gap: 1rem; align-items: center;
  z-index: 9999;
}
.cookie-banner__text { margin: 0; font-size: 14px; line-height: 1.4; }
.cookie-banner__btn {
  padding: .6rem 1.2rem; border: 0; border-radius: 8px;
  background: #6E59A4; color: #fff; cursor: pointer;
}
.cookie-banner.is-hidden { display: none; }
(function(){
  if (localStorage.getItem('cookieConsent') === 'accepted') {
    document.getElementById('cookie-banner').classList.add('is-hidden');
    return;
  }
  document.getElementById('cookie-accept').addEventListener('click', function(){
    localStorage.setItem('cookieConsent', 'accepted');
    localStorage.setItem('cookieConsentDate', new Date().toISOString());
    document.getElementById('cookie-banner').classList.add('is-hidden');
  });
})();

Вариант 2. Баннер с отказом

Базовый рабочий вариант для большинства сайтов: корпоративный, услуги, B2B-каталог. Две равноценные кнопки. При отказе аналитика и реклама не запускаются.

<div id="cookie-banner" class="cookie-banner">
  <p>Сайт использует cookie для аналитики и улучшения сервиса.
    Подробнее в <a href="/politika/">политике</a>.</p>
  <div class="cookie-banner__actions">
    <button id="cookie-reject" class="cookie-banner__btn cookie-banner__btn--ghost">
      Отказаться
    </button>
    <button id="cookie-accept" class="cookie-banner__btn">
      Согласиться
    </button>
  </div>
</div>
(function(){
  var saved = localStorage.getItem('cookieConsent');
  if (saved) {
    if (saved === 'accepted') loadAnalytics();
    document.getElementById('cookie-banner').remove();
    return;
  }
  function save(value){
    localStorage.setItem('cookieConsent', value);
    localStorage.setItem('cookieConsentDate', new Date().toISOString());
    fetch('/api/cookie-log', {
      method: 'POST',
      headers: {'Content-Type':'application/json'},
      body: JSON.stringify({value: value, ts: Date.now()})
    });
    document.getElementById('cookie-banner').remove();
  }
  function loadAnalytics(){
    var s = document.createElement('script');
    s.src = 'https://mc.yandex.ru/metrika/tag.js';
    document.head.appendChild(s);
  }
  document.getElementById('cookie-accept').onclick = function(){ save('accepted'); loadAnalytics(); };
  document.getElementById('cookie-reject').onclick = function(){ save('rejected'); };
})();

Кнопки оформляются одинаково по размеру и контрасту. Серая "Отказаться" мелким шрифтом - тёмный паттерн, который РКН и суды считают нарушением.

Вариант 3. Баннер с категориями

Для интернет-магазинов, медиа, сервисов с ретаргетингом. Пользователь выбирает отдельно: аналитика, маркетинг, виджеты. Необходимые cookie всегда включены.

<div id="cookie-banner" class="cookie-banner cookie-banner--wide">
  <p>Управляйте использованием cookie на сайте.</p>
  <form id="cookie-form">
    <label><input type="checkbox" checked disabled> Необходимые (работа сайта)</label>
    <label><input type="checkbox" name="analytics" value="1"> Аналитика (Метрика, GA4)</label>
    <label><input type="checkbox" name="marketing" value="1"> Маркетинг (ретаргетинг)</label>
    <div class="cookie-banner__actions">
      <button type="button" id="cookie-accept-all">Принять всё</button>
      <button type="submit">Сохранить выбор</button>
    </div>
  </form>
</div>
(function(){
  if (localStorage.getItem('cookieConsentV2')) {
    apply(JSON.parse(localStorage.getItem('cookieConsentV2')));
    document.getElementById('cookie-banner').remove();
    return;
  }
  function save(state){
    state.ts = Date.now();
    state.version = 'v2';
    localStorage.setItem('cookieConsentV2', JSON.stringify(state));
    fetch('/api/cookie-log', {method:'POST', body: JSON.stringify(state)});
    apply(state);
    document.getElementById('cookie-banner').remove();
  }
  function apply(s){
    if (s.analytics) loadScript('https://mc.yandex.ru/metrika/tag.js');
    if (s.marketing) loadScript('https://vk.com/js/api/openapi.js');
  }
  function loadScript(src){ var s=document.createElement('script'); s.src=src; document.head.appendChild(s); }
  document.getElementById('cookie-form').onsubmit = function(e){
    e.preventDefault();
    var fd = new FormData(e.target);
    save({analytics: fd.get('analytics')==='1', marketing: fd.get('marketing')==='1'});
  };
  document.getElementById('cookie-accept-all').onclick = function(){
    save({analytics: true, marketing: true});
  };
})();

Чекбоксы для аналитики и маркетинга пустые по умолчанию. Требование статьи 9 закона: согласие даётся активным действием. Предзаполненная галочка приравнивается к отсутствию согласия.

Вариант 4. Consent Mode для GA4 и Метрики

Уровень для сайтов с серьёзным маркетингом: Google Ads, Яндекс.Директ, e-commerce с ROI-аналитикой. Скрипты счётчиков подгружаются всегда, но в "сжатом" режиме до согласия, и переключаются в полный после.

// Инициализация до загрузки счётчика
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'analytics_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied'
});

// После согласия
function grantConsent(state){
  gtag('consent', 'update', {
    'analytics_storage': state.analytics ? 'granted' : 'denied',
    'ad_storage': state.marketing ? 'granted' : 'denied',
    'ad_user_data': state.marketing ? 'granted' : 'denied'
  });
  if (window.ym) ym(YOUR_COUNTER_ID, 'setUserID', state.userId || '');
}

Режим официально поддерживается Google Analytics 4. Яндекс.Метрика отдельно описывает событие согласия в документации, идея та же: скрипт стоит, отправка данных контролируется флагом. Подходит, если нужно собрать обезличенную статистику до клика по баннеру.

Решение об интеграции Consent Mode принимайте вместе с маркетологом и юристом. На корпоративном сайте студии в СПб обычно хватает Варианта 2 или 3.

Open-source библиотеки: Cookie Consent от Osano (MIT-лицензия), KlaroJS, JavaScript Cookie Consent. Готовые плагины: WordPress CookieYes, Битрикс "Согласие на cookie", Tilda T-pro блок Cookie.

Хранение журнала согласий

Согласие пользователя без доказательства не имеет силы. Минимальная запись в базе при каждом клике по баннеру.

Поле Тип Что хранить
id UUID Идентификатор записи
timestamp datetime Дата и время в UTC
ip_hash varchar SHA-256 от IP (не сырой IP)
user_agent text Браузер и устройство
categories json Какие категории согласованы
policy_version varchar Версия политики на момент согласия
source_page varchar URL страницы, где дано согласие

Срок хранения - не меньше срока действия согласия плюс 3 года. Это горизонт исковой давности по гражданским спорам. Хеширование IP вместо сырого значения - компромисс между доказательной силой и минимизацией данных.

В Битриксе под журнал делается отдельный инфоблок или хайлоад-таблица. В WordPress - кастомная таблица через dbDelta. В Laravel - миграция и Eloquent-модель. На Tilda сложнее: журнал ведётся через вебхук на внешний сервер.

5 типичных ошибок

Эти ошибки чаще всего ловят при дистанционной проверке Роскомнадзора и в приёмке сайта у студии.

  1. Предзаполненные чекбоксы. Галочки "Согласен" и "Аналитика" уже стоят при показе. Автосогласие, которое РКН не признаёт.
  2. Кнопка "Окей" без отказа. Баннер с одной кнопкой нарушает принцип сознательного выбора. У пользователя нет легитимного способа отказаться, кроме как покинуть сайт.
  3. Отсутствие журнала. Без записей о согласии при споре оператор не докажет, что пользователь согласился. Свидетельство пользователя в этом случае имеет приоритет.
  4. Нет настройки категорий. Один общий чекбокс на аналитику и маркетинг ограничивает права субъекта. Спорный момент, но в актах РКН за 2024-2025 встречается.
  5. Баннер закрывает больше 25% экрана. Барьер для контента, который Google и Яндекс с 2023 года учитывают в ранжировании. Дополнительный риск - санкции поисковых систем, не только штрафы РКН.

Штрафы РКН в 2026

Ниже ориентиры по поправкам 2024 года, действующим в 2025-2026.

Нарушение ИП Юрлицо
Сбор cookie без согласия до 300 000 ₽ до 700 000 ₽
Отсутствие баннера или политики до 60 000 ₽ до 300 000 ₽
Предзаполненные чекбоксы до 200 000 ₽ до 500 000 ₽
Утечка cookie-логов до 10 000 субъектов до 400 000 ₽ до 5 000 000 ₽
Повторное нарушение до 1 200 000 ₽ оборотный до 3%

Реальные дела 2024-2025: интернет-магазин в СПб получил 300 000 ₽ за отсутствие баннера по жалобе одного покупателя. Медиа-портал в Ленобласти - 500 000 ₽ за предзаполненную галочку. Сетевая стоматология - 600 000 ₽ за сбор cookie без уведомления РКН.

Размер штрафа в каждом случае - вопрос ст. 13.11 КоАП и обстоятельств дела. Сверяйте с актуальной редакцией кодекса и решениями судов вашего региона.

FAQ - 6 вопросов

Нужен ли cookie-баннер, если на сайте только Яндекс.Метрика?

Да, нужен. Метрика передаёт идентификаторы посетителей, что попадает под определение персональных данных в трактовке РКН с 2023 года. Достаточно Варианта 2 с двумя кнопками. Подробнее - в чек-листе 152-ФЗ.

Можно ли не показывать баннер посетителям из РФ, если сайт европейский?

Нет, география определяется по местонахождению пользователя. Если страница доступна из России, на ней работает 152-ФЗ. Геолокацию по IP можно использовать для разных версий баннера, но не для отключения совсем.

Что делать, если пользователь отказался, но мы хотим хранить базовую аналитику?

Используйте Consent Mode из Варианта 4. Метрика и GA4 работают в обезличенном режиме без cookie, передают агрегированные данные без идентификаторов. Юридически это считается обработкой без согласия в облегчённой форме.

Можно ли поставить готовый плагин с Tilda или Битрикс-маркета?

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

Сколько стоит cookie-баннер под ключ?

В Сайты2.рф баннер входит в базовый пакет корпоративных сайтов, интернет-магазинов и лендингов. Отдельно ставится в рамках поддержки от 8 000 ₽ за вариант 2 и от 20 000 ₽ за вариант 4 с Consent Mode. Точный расчёт - в калькуляторе или по тарифам.

Нужен ли баннер на сайтах в закрытом контуре (корпоративный портал)?

Если доступ только по логину сотрудников, без публичной части - формально не нужен. Но политика и согласие в рамках трудового договора всё равно должны быть. Спорные ситуации - в контактах, бесплатно проконсультируем.

Что в итоге

Cookie баннер 2026 - уже не косметическая деталь, а юридическое требование с реальными штрафами. Минимум, который закрывает риск, - Вариант 2 с равноценными кнопками согласия и отказа плюс журнал в базе данных. Для интернет-магазинов и сайтов с ретаргетингом - Вариант 3 с категориями. Уровень с Consent Mode - Вариант 4.

Сайты2.рф с 2008 года в Кронштадте, обслуживаем СПб, Сестрорецк, Выборг и всю Ленинградскую область. 550+ проектов, NPS 9,2, рост заявок ×2,4. Стек: 1С-Битрикс, WordPress, Tilda, Laravel. Cookie-баннер ставим из коробки во всех тарифах.

Заказать корпоративный сайт · Поддержка сайта · Telegram @t9424744 · +7 (812) 942-47-44

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

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

Нужен ли cookie-баннер, если на сайте только Яндекс.Метрика? Да, нужен. Метрика передаёт идентификаторы посетителей, что попадает под определение персональных данных в трактовке РКН с 2023 года. Достаточно Варианта 2 с двумя кнопками. Подробнее - в [чек-листе 152-ФЗ](/blog/152fz-checklist/). ### Можно ли не показывать баннер посетителям из РФ, если сайт европейский? Нет, география определяется по местонахождению пользователя. Если страница доступна из России, на ней работает 152-ФЗ. Геолокацию по IP можно использовать для разных версий баннера, но не для отключения совсем. ### Что делать, если пользователь отказался, но мы хотим хранить базовую аналитику? Используйте Consent Mode из Варианта 4. Метрика и GA4 работают в обезличенном режиме без cookie, передают агрегированные данные без идентификаторов. Юридически это считается обработкой без согласия в облегчённой форме. ### Можно ли поставить готовый плагин с Tilda или Битрикс-маркета? Можно, но проверьте 3 пункта: журнал согласий пишется на ваш сервер, чекбоксы по категориям не предзаполнены, баннер не блокирует поисковую индексацию. Бесплатные модули часто грешат вторым. ### Сколько стоит cookie-баннер под ключ? В Сайты2.рф баннер входит в базовый пакет [корпоративных сайтов](/services/corporate/), [интернет-магазинов](/services/ecommerce/) и [лендингов](/services/landing/). Отдельно ставится в рамках [поддержки](/services/support/) от 8 000 ₽ за вариант 2 и от 20 000 ₽ за вариант 4 с Consent Mode. Точный расчёт - в [калькуляторе](/calculator/) или по [тарифам](/prices/). ### Нужен ли баннер на сайтах в закрытом контуре (корпоративный портал)?

Если доступ только по логину сотрудников, без публичной части - формально не нужен. Но политика и согласие в рамках трудового договора всё равно должны быть. Спорные ситуации - в контактах, бесплатно проконсультируем.

Нужен сайт по этой теме?

Расскажите о задаче – вернёмся с расчётом и предложением структуры.