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-ФЗ. Значит:
- Аналитические и маркетинговые скрипты не должны загружаться до согласия.
- После нажатия «Отказаться» — скрипты не должны загружаться совсем.
- После «Принять» — загружаем только те категории, которые пользователь разрешил.
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 позволяет управлять загрузкой тегов через «Триггер — Согласие»:
- Создать пользовательскую переменную
cookie_consent. - Тег Яндекс.Метрики / GA4 — добавить Trigger с условием
cookie_consent equals "accepted". - 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 чек-листа:
- Наличие баннера — открываем сайт в браузере без cookies, ищем cookie-notice элементы (aria-label, class-паттерн, текстовые маркеры).
- Наличие кнопки «Отказаться» — проверяем наличие reject/decline/отказаться в DOM.
- Реальная блокировка до согласия — нажимаем «Отказаться» и проверяем, какие сетевые запросы идут. Если Яндекс.Метрика запросилась — это нарушение.
- Ссылка на Политику в баннере — нарушение, если баннер не содержит clickable-ссылку.
- Срок хранения согласия — читаем cookie/localStorage, проверяем expires.
- Политика cookie — ищем раздел о cookies в документах на сайте.
Результат — конкретный список пунктов «пройдено / нарушено» с рекомендациями.
FAQ: частые вопросы о cookie-согласии
Нужен ли cookie-баннер, если у меня только Яндекс.Метрика?
Да. Яндекс.Метрика устанавливает аналитические cookie (_ym_uid, _ym_d), которые идентифицируют пользователя — это обработка ПДн, требующая согласия. Один инструмент аналитики = такое же требование, как у крупного e-commerce.
Достаточно ли написать в Политике конфиденциальности «мы используем cookie»?
Нет. Упоминание в Политике — обязательное, но недостаточное условие. Нужен интерактивный баннер с возможностью выбора до загрузки скриптов.
Могу ли я заблокировать доступ к сайту до согласия на cookies?
Нет. «Стена согласия» (когда без принятия cookie сайт не открывается) — нарушение, так как делает согласие не добровольным. РКН и EDPB прямо запрещают такую практику.
Что делать с cookie аналитики, если пользователь отказался?
Не устанавливать их и не загружать соответствующие скрипты. Сайт должен работать в полной функциональности без аналитических cookie — это «принцип минимизации».
Нужно ли обновлять согласие при изменении списка cookie?
Да. При добавлении новых аналитических инструментов нужно заново показать баннер и получить согласие, так как условия обработки изменились.
Связанные материалы
- Бесплатный экспресс-аудит 152-ФЗ — проверит cookie-баннер вместе с другими 35 критериями.
- Полное руководство по 152-ФЗ — согласие, политика, штрафы, реестр РКН.
- Аккредитация ИТ-компании — требования к сайту — если у вас ИТ-компания.
- FAQ по 152-ФЗ — частые вопросы.
- Официально: ст. 9 152-ФЗ — требования к согласию; руководство РКН по cookies.