Руководство

Cookie-согласие на сайте — требования 2025 и как сделать правильно

Полное руководство по cookie-баннеру по 152-ФЗ и GDPR: что обязательно, какие штрафы, отличия «Принять» от «Отказаться», реальная блокировка скриптов, бесплатная проверка за 3 минуты.

Обновлено: 2 июня 2026 г.


title: Cookie-согласие на сайте — требования 2025 и как сделать правильно description: Полное руководство по cookie-баннеру по 152-ФЗ и GDPR: что обязательно, какие штрафы, отличия «Принять» от «Отказаться», реальная блокировка скриптов, бесплатная проверка за 3 минуты. slug: cookie-consent publishedAt: 2026-06-01 updatedAt: 2026-06-02 moduleId: pdn-152fz relatedSlug: personal-data auditSlug: 152-fz

Cookie-согласие на сайте: требования 152-ФЗ и как сделать правильно в 2025

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

В 2025 году сайты без правильно настроенного cookie-согласия получают не просто «рекомендацию исправить» — суммарный штраф по 152-ФЗ за нарушения с cookies и отсутствием согласия достигает 700 000 ₽ за один протокол РКН.

Какие cookie требуют согласия, а какие — нет

Не все cookie одинаковы. Российское законодательство (152-ФЗ) и европейский GDPR (для сайтов с EU-трафиком) разграничивают:

Технически необходимые — согласие НЕ нужно

Это cookie, без которых сайт буквально не работает:

  • Сессионный токен авторизации (session_id, auth_token).
  • CSRF-токен защиты форм.
  • Выбор языка или региона пользователем.
  • Товары в корзине интернет-магазина.
  • Флаг «баннер cookie показан» (если он не идентифицирует).

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

Аналитические — согласие НУЖНО

Это cookie, которые собирают статистику для владельца сайта:

  • Яндекс.Метрика — _ym_uid, _ym_d, _ym_isad.
  • Google Analytics 4 — _ga, _ga_XXXXXXXX.
  • Hotjar — _hjid, _hjAbsoluteSessionInProgress.
  • Roistat, Comagic, другие call-tracking системы.

Даже если вы «просто смотрите посещаемость», аналитические cookie создают профиль поведения пользователя — это обработка персональных данных.

Маркетинговые — согласие НУЖНО (особо строго)

Это cookie рекламных платформ и ретаргетинга:

  • VK Пиксель — vkontakte_pixel_session.
  • Facebook Pixel (Meta) — _fbp, _fbc.
  • Яндекс.Аудитории.
  • Google Ads remarketing.
  • Affiliate/партнёрские системы.

Маркетинговые cookie передают данные третьим лицам (рекламным платформам) — это дополнительное основание: согласие должно быть раздельным и явным, с описанием цели передачи.

Как это соотносится с 152-ФЗ

В России нет отдельного закона о cookies. Cookie-согласие регулируется через 152-ФЗ, статью 9 — согласие субъекта на обработку персональных данных.

IP-адрес, признанный Роскомнадзором персональными данными (письмо от 2013 г. и судебная практика 2022-2024), «несётся» каждым аналитическим cookie. Cookie-идентификатор (_ym_uid) в связке с IP и User-Agent создаёт уникальный профиль — это обработка ПДн, требующая согласия.

Статьи КоАП:

НарушениеШтрафСтатья
Нет согласия на обработку ПДн через cookieдо 700 000 ₽КоАП 13.11 ч.2
Нет Политики конфиденциальности / cookiesдо 300 000 ₽КоАП 13.11 ч.1
Трансграничная передача (FB/Google) без уведомлениядо 18 000 000 ₽КоАП 13.11 ч.8

Сумма в одном протоколе РКН может включать несколько статей одновременно.

Что должен содержать cookie-баннер по 152-ФЗ

Требования вытекают из ст. 9 152-ФЗ (согласие) в связке с ст. 7 (конфиденциальность) и ст. 18.1 (документирование):

1. Информация до получения согласия

Пользователь должен понять до нажатия кнопки:

  • Что именно за данные собираются (категории cookie).
  • С какой целью (аналитика, реклама, персонализация).
  • Кому передаются (если третьи лица — указать поимённо или дать ссылку на список).
  • Ссылка на полную Политику cookie / конфиденциальности.

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

2. Три варианта действия

  • «Принять все» — разрешить все категории.
  • «Отказаться» — запретить необязательные cookie (и сайт должен работать).
  • «Настройки» — раздельный выбор по категориям.

Наличие только кнопки «ОК» без «Отказаться» — нарушение. РКН с 2023 года фиксирует это при проверке.

3. Реальная блокировка скриптов, а не UI-обёртка

Самая частая ошибка: баннер показывается, кнопка «Отказаться» есть, но скрипты уже загружены в <head> и собирают данные до нажатия кнопки.

По закону согласие должно быть получено до начала обработки — ст. 9 ч. 1 152-ФЗ. Значит:

  1. Аналитические и маркетинговые скрипты не должны загружаться до согласия.
  2. После нажатия «Отказаться» — скрипты не должны загружаться совсем.
  3. После «Принять» — загружаем только те категории, которые пользователь разрешил.

4. Запоминание выбора и возможность отзыва

  • Выбор сохраняется (обычно в localStorage или долгоживущем cookie).
  • Если пользователь хочет изменить решение — должна быть инструкция в Политике конфиденциальности (как очистить cookie или найти настройки).

5. Политика cookie — отдельный документ или раздел

«Политика cookie» — это либо отдельная страница, либо раздел в Политике конфиденциальности. Она должна содержать:

  • Таблицу cookie с именем, категорией, сроком хранения, поставщиком.
  • Описание цели каждой категории.
  • Инструкцию по управлению cookie в браузере.
  • Контакт для обращений (DPO или ответственный).

5 технических способов реализовать cookie-согласие

Вариант 1: Готовая библиотека (рекомендуется для большинства)

Klaro — MIT-лицензия, поддерживает GDPR и 152-ФЗ:

<!-- В <head> — до любых аналитических скриптов -->
<script defer src="/klaro/klaro.js"></script>
<script>
  window.klaroConfig = {
    version: 1,
    storageMethod: 'localStorage',
    cookieName: 'klaro',
    cookieExpiresAfterDays: 365,
    lang: 'ru',
    translations: {
      ru: {
        consentNotice: { description: 'Мы используем аналитические cookie...' }
      }
    },
    services: [
      { name: 'yandex-metrika', purposes: ['analytics'], onAccept: '...' },
      { name: 'vk-pixel', purposes: ['marketing'], onAccept: '...' }
    ]
  };
</script>

<!-- Скрипты аналитики — с type="text/plain" и data-type -->
<script type="text/plain" data-type="application/javascript"
        data-name="yandex-metrika">
  (function(m,e,t,r,i,k,a){...})(window, ...);
</script>

Другие варианты: Cookie Information, Cookiebot (платные SaaS), Axeptio.

Вариант 2: Минимальный самодельный JS-сниппет

Для сайтов с единственным аналитическим инструментом (например, только Яндекс.Метрика):

// cookie-consent.js
(function() {
  const STORAGE_KEY = 'cookie_consent_v1';
  const consent = localStorage.getItem(STORAGE_KEY);

  if (consent === 'accepted') {
    loadAnalytics();
  } else if (consent === 'rejected') {
    // ничего не грузим
  } else {
    // показываем баннер
    showBanner();
  }

  function showBanner() {
    const banner = document.createElement('div');
    banner.id = 'cookie-banner';
    banner.innerHTML = `
      <p>Мы используем аналитические cookie (Яндекс.Метрика) для улучшения сайта.
         <a href="/privacy">Политика конфиденциальности</a></p>
      <button id="cookie-accept">Принять</button>
      <button id="cookie-reject">Отказаться</button>
    `;
    document.body.prepend(banner);

    document.getElementById('cookie-accept').onclick = function() {
      localStorage.setItem(STORAGE_KEY, 'accepted');
      banner.remove();
      loadAnalytics();
    };
    document.getElementById('cookie-reject').onclick = function() {
      localStorage.setItem(STORAGE_KEY, 'rejected');
      banner.remove();
    };
  }

  function loadAnalytics() {
    // здесь инициализируем Яндекс.Метрику
    (function(m,e,t,r,i){...})(window,...);
  }
})();

Вариант 3: Tilda / Битрикс24 / WordPress

На CMS-платформах cookie-согласие чаще всего настраивается через плагин:

  • Tilda: встроенный модуль «Cookie бар» (Настройки сайта → Аналитика → Cookie бар). Важно: Tilda по умолчанию загружает аналитику до согласия — нужно включить «Отложенная загрузка» в настройках Tilda Analytics.
  • WordPress: плагины GDPR Cookie Consent, CookieYes.
  • Битрикс24: настройка в «Управление сайтом → Настройки → Cookies».

Вариант 4: Google Tag Manager (GTM)

GTM позволяет управлять загрузкой тегов через «Триггер — Согласие»:

  1. Создать пользовательскую переменную cookie_consent.
  2. Тег Яндекс.Метрики / GA4 — добавить Trigger с условием cookie_consent equals "accepted".
  3. GTM сам не загружает теги до выполнения условия триггера.

Важно: сам GTM-контейнер (gtm.js) загружается всегда — это нарушение, если GTM не настроен через Consent Mode v2.

Вариант 5: Согласие через Consent Mode v2 (Google Ads / GA4)

Для работы с Google Analytics 4 и Google Ads в 2025 году обязателен Consent Mode v2:

// До загрузки gtag.js — инициализируем дефолтное состояние «запрещено»
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
  'analytics_storage': 'denied',
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'wait_for_update': 500
});

// После получения согласия:
gtag('consent', 'update', {
  'analytics_storage': 'granted',
  'ad_storage': 'granted'
});

Типичные ошибки и как их исправить

По нашему анализу 5000+ сайтов, 89% ошибок с cookie-согласием — одни и те же:

ОшибкаЧто не такКак исправить
Баннер есть, но скрипты грузятся сразуНарушение ст.9 ч.1 152-ФЗПеренести скрипты в динамическую загрузку
Только кнопка «ОК» без «Отказаться»Нет возможности отказатьсяДобавить кнопку «Отказаться»
Cookie-согласие не запоминаетсяПри каждом визите — зановоХранить в localStorage ≥1 года
Баннер закрывается крестиком без выбораЭто не согласиеУбрать крестик, оставить явные кнопки
Нет политики cookieНечего читать перед согласиемДобавить страницу или раздел в Политику
Маркетинговые cookie без отдельного согласияОбщее согласие ≠ отдельноеРаздельные чекбоксы по категориям
Tilda Analytics без отложенной загрузкиДанные собираются до согласияВключить «Отложенная загрузка» в Tilda

Как мы проверяем cookie-согласие в аудите

Наш аудит 152-ФЗ автоматически проверяет 6 критериев §3 чек-листа:

  1. Наличие баннера — открываем сайт в браузере без cookies, ищем cookie-notice элементы (aria-label, class-паттерн, текстовые маркеры).
  2. Наличие кнопки «Отказаться» — проверяем наличие reject/decline/отказаться в DOM.
  3. Реальная блокировка до согласия — нажимаем «Отказаться» и проверяем, какие сетевые запросы идут. Если Яндекс.Метрика запросилась — это нарушение.
  4. Ссылка на Политику в баннере — нарушение, если баннер не содержит clickable-ссылку.
  5. Срок хранения согласия — читаем cookie/localStorage, проверяем expires.
  6. Политика cookie — ищем раздел о cookies в документах на сайте.

Результат — конкретный список пунктов «пройдено / нарушено» с рекомендациями.

FAQ: частые вопросы о cookie-согласии

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

Да. Яндекс.Метрика устанавливает аналитические cookie (_ym_uid, _ym_d), которые идентифицируют пользователя — это обработка ПДн, требующая согласия. Один инструмент аналитики = такое же требование, как у крупного e-commerce.

Достаточно ли написать в Политике конфиденциальности «мы используем cookie»?

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

Могу ли я заблокировать доступ к сайту до согласия на cookies?

Нет. «Стена согласия» (когда без принятия cookie сайт не открывается) — нарушение, так как делает согласие не добровольным. РКН и EDPB прямо запрещают такую практику.

Что делать с cookie аналитики, если пользователь отказался?

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

Нужно ли обновлять согласие при изменении списка cookie?

Да. При добавлении новых аналитических инструментов нужно заново показать баннер и получить согласие, так как условия обработки изменились.

Связанные материалы

Готовы проверить свой сайт?

3 минуты, без регистрации, по полному чек-листу.

Запустить аудит

Смотрите также

152-ФЗ — Персональные данные
Подробное руководство