Cookie-уведомление на сайте по ФЗ-420 — как сделать правильно
Та полоска внизу сайта с предложением «Принять cookies» — почти у всех. И почти у всех неправильная. С 30 мая 2025 года в России действует ФЗ-420, который ужесточил требования к cookie-баннерам. Простая кнопка «ОК» больше не считается согласием — нужны две одинаково заметные кнопки и реальное управление загрузкой счётчиков.
Содержание
- Что говорит ФЗ-420 про cookie
- 5 обязательных требований
- Что НЕ считается согласием
- Готовый код для вставки на сайт
- Как поставить на разные платформы
- Что должно происходить при отказе
- Штрафы
- Частые вопросы
- Об авторе
Что говорит ФЗ-420 про cookie
Краткий ответ. Cookies, которые позволяют идентифицировать пользователя (включая аналитические и рекламные), — это персональные данные. На их обработку нужно отдельное согласие, полученное через явные действия пользователя. Просто «продолжая использование сайта вы соглашаетесь» — недостаточно.
ФЗ-420 от 30.05.2025 внёс изменения в КоАП и в само 152-ФЗ. По части cookie теперь действуют требования:
— Сайт должен спрашивать согласие до установки cookies, которые могут идентифицировать пользователя — Согласие должно быть активным действием (клик по кнопке «Принять»), не пассивным — Должна быть возможность отказаться так же легко как принять — При отказе — иностранные счётчики (Google Analytics, Hotjar, Meta Pixel) не должны загружаться — Юзер может в любой момент изменить своё решение (отозвать согласие)
То есть cookie-баннер — это не просто плашка для красоты, это реальный механизм управления загрузкой счётчиков.
5 обязательных требований

1. Появляется при первом заходе. Не на второй странице, не после прокрутки — сразу. Должен быть виден до того как пользователь начал взаимодействовать с сайтом.
2. Две кнопки одинакового размера и заметности. «Принять» и «Отказаться» — одинаково крупные, одинаково видимые. Нельзя сделать «Принять» большой зелёной, а «Отказаться» маленькой серой. Это «тёмный паттерн», и его явно запрещают.
3. Ссылка на политику cookies / политику конфиденциальности. В тексте баннера должна быть кликабельная ссылка на документ, где подробно описано какие cookies и зачем.
4. Запоминает выбор. Если юзер нажал «Принять» или «Отказаться» — повторное появление баннера не нужно. Хранится в localStorage или в HTTP-cookies (но эти cookies — технические, к ним согласие не требуется).
5. Не подгружает иностранные счётчики до согласия. Это самое сложное технически. Google Analytics, Hotjar, Meta Pixel — должны загружаться только после того как пользователь нажал «Принять». До этого момента — никаких хитов в США.
Что НЕ считается согласием
1. Просто факт прокрутки или клика. «Продолжая использование сайта вы соглашаетесь с обработкой cookies» — не работает. РКН прямо говорит что нужны активные действия.
2. Одна кнопка «ОК». Стандартное российское cookie-баннер с одной кнопкой «ОК» — формально нарушение. Нужна вторая кнопка «Отказаться».
3. Кнопка «Отказаться», ведущая на страницу с инструкцией как настроить браузер. Это переусложнение — пользователь должен мочь отказаться одним кликом, как принять.
4. Преднажатые галочки в детальных настройках. Если открываешь «Управление настройками» и там все галочки «аналитика», «реклама» уже стоят — это нарушение. Юзер должен сам ставить.
5. Согласие без указания целей. «Согласен на cookies» без объяснения для чего. Должно быть либо краткое описание в баннере, либо ссылка на политику cookies с расшифровкой.
| Элемент баннера | ✅ Правильно | ❌ Нарушение |
|---|---|---|
| Появление | При первом заходе, сразу | После прокрутки / на 2-й странице |
| Кнопки | «Принять» и «Отказаться» равнозначны | Одна «ОК» / «Отказаться» мелкая и серая |
| Согласие | Активное действие (клик) | «Продолжая, вы соглашаетесь» |
| Галочки в настройках | Пустые, юзер сам ставит | Преднажатые «аналитика/реклама» |
| Иностранные счётчики | Грузятся после «Принять» | Грузятся сразу до согласия |
| Цели | Описаны / ссылка на политику | «Согласен на cookies» без пояснений |
| Отказ | Один клик | Ведёт на инструкцию по настройке браузера |
Готовый код для вставки на сайт
Базовый рабочий код cookie-баннера, который соответствует ФЗ-420. Можно вставить в любой сайт через HTML-блок.
<div id="cookie-banner" style="display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:2px solid #2563eb;padding:16px 24px;box-shadow:0 -4px 12px rgba(0,0,0,0.1);z-index:9999;">
<div style="max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:12px;">
<p style="margin:0;font-size:14px;line-height:1.5;">
Этот сайт использует cookies для работы и аналитики. Подробнее в
<a href="/policy" style="color:#2563eb;">политике конфиденциальности</a>.
Вы можете принять или отклонить использование cookies — мы запомним выбор.
</p>
<div style="display:flex;gap:12px;">
<button onclick="acceptCookies()" style="flex:1;padding:12px;background:#2563eb;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;">Принять</button>
<button onclick="rejectCookies()" style="flex:1;padding:12px;background:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:6px;font-size:14px;cursor:pointer;">Отказаться</button>
</div>
</div>
</div>
<script>
(function(){
const STORAGE_KEY = 'cookie_consent';
const saved = localStorage.getItem(STORAGE_KEY);
if (!saved) {
document.getElementById('cookie-banner').style.display = 'block';
} else if (saved === 'accepted') {
loadAnalytics();
}
window.acceptCookies = function() {
localStorage.setItem(STORAGE_KEY, 'accepted');
document.getElementById('cookie-banner').style.display = 'none';
loadAnalytics();
};
window.rejectCookies = function() {
localStorage.setItem(STORAGE_KEY, 'rejected');
document.getElementById('cookie-banner').style.display = 'none';
};
function loadAnalytics() {
// Загружаем Яндекс Метрику только после согласия
// (replace YOUR_COUNTER_ID на ваш ID счётчика)
var s = document.createElement('script');
s.async = true;
s.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(s);
s.onload = function() {
ym(YOUR_COUNTER_ID, 'init', {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true
});
};
}
})();
</script>
Это базовый вариант. Для готового виджета с дополнительными функциями (логирование согласия на сервере, управление загрузкой нескольких счётчиков, режим «изменить настройки») — тариф Базовый за 290 ₽.
Как поставить на разные платформы
Tilda. Создайте HTML-блок (T123) → вставьте код выше. Поставьте блок в Settings → Tracking codes (footer). Подробнее в статье про Tilda + 152-ФЗ.
WordPress. Самый простой вариант — плагин Cookie Notice. В настройках выберите «Manual cookie consent» (не auto-accept). Текст и кнопки настраиваются. Альтернатива — вставить код выше в footer.php темы.
Webasyst Site/Shop. В теме найти footer.html или head.html, вставить код. После — очистить кэш Webasyst (wa-cache/).
Битрикс. В шаблоне site → footer.php перед </body> вставить код. Или поставить готовый компонент cookie-уведомления из Marketplace.
Wix / OpenCart / MODX. Аналогично — в footer/templates своей платформы.
Чистый HTML. Просто перед </body> на каждой странице.
Что должно происходить при отказе
Если пользователь нажал «Отказаться» — ваша задача не загружать на сайт ничего, что собирает данные. Конкретно:
— Google Analytics — не подгружать — Hotjar — не подгружать — Meta Pixel — не подгружать — Яндекс Метрика — спорный момент (российский сервис, формально можно, но строгая трактовка требует и её не грузить до согласия) — Чат-боты типа JivoSite — не подгружать — Рекламные пиксели myTarget — не подгружать
Что можно оставить даже при отказе: — Технические cookies (сессии, корзина, авторизация) — Локальное хранение настроек интерфейса (тема, язык) — Минимальная статистика сервера (логи nginx) — это не cookie
При смене согласия с «Принять» на «Отказаться» — желательно сделать reload страницы, чтобы перезагрузка прошла уже без счётчиков. Без reload остаются загруженные скрипты в памяти.
Штрафы
Размер штрафа за нарушение требований к cookie-уведомлению напрямую в ФЗ-420 не зафиксирован. Применяется общая статья 13.11 КоАП:
— Если cookie-уведомления нет вообще или оно не соответствует требованиям — это «несоответствие согласия требованиям закона», часть 2 статьи 13.11 КоАП — 300-700 тысяч ₽ — Если иностранные счётчики загружаются без согласия — статья 13.11 часть 9 (трансграничная передача без согласия) — для ИП 100-200 тысяч, для ООО 300 тысяч – 6 миллионов
На практике РКН чаще оформляет «отсутствие политики/несоответствие согласия» — мягче чем трансграничная передача.
Полная таблица штрафов — в статье про штрафы 152-ФЗ.
Частые вопросы
Если у меня нет Google Analytics и других иностранных счётчиков — мне нужен cookie-баннер?
Нужен, если используете Яндекс Метрику или любые другие cookies для идентификации. Если на сайте вообще нет cookies (чистый HTML без аналитики, без сессий, без авторизации) — формально баннер не обязателен. Но это редкий случай.
Можно ли использовать готовые сервисы типа Cookiebot?
Можно, но Cookiebot — иностранный сервис (Дания). Сам факт его использования может быть «трансграничной передачей». Российские аналоги: Carrot Quest Consent, наш собственный виджет в тарифе Базовый.
Должен ли баннер быть на каждой странице?
Да, до момента согласия. После — нет (запоминается через localStorage).
Что делать если на сайте уже есть Google Analytics и юзеры приходили без согласия?
Поставить баннер, при отказе — отключать GA. Те данные что уже собрались — формально собраны без согласия, но «по факту». Доказать что это произошло до постановки баннера — сложно. Лучше начать соблюдать сегодня.
Можно ли в баннере собрать «согласие на маркетинг» отдельно от «согласия на аналитику»?
Да, это правильный подход — детальные настройки. Юзер может разрешить аналитику, но запретить ремаркетинг. Технически сложнее, но юридически правильнее.
Cookies сессии и авторизации требуют согласия?
Нет. Это «технические» cookies, без которых сайт не работает. Их можно ставить без согласия — но это нужно описать в политике cookies.
Если посетитель сайта — иностранец, к нему применяется 152-ФЗ?
Если он зашёл на российский сайт (домен .ru, оператор в РФ) — да, применяется. Российское законодательство, российский оператор, российская юрисдикция.
Что делать дальше
Если на сайте нет cookie-баннера или есть, но с одной кнопкой — нужно ставить правильный сейчас.
Готовый виджет с управлением загрузкой счётчиков, отказом от Google Analytics, логированием согласия — за 290 ₽ в тарифе Базовый.
Бесплатная проверка покажет — есть ли на вашем сайте cookie-баннер, соответствует ли он требованиям, и подгружаются ли иностранные счётчики без согласия.
Читайте также
- Политика конфиденциальности: образец 2026 — куда писать про cookies.
- Согласие на обработку ПДн: образец — основной документ согласия.
- Трансграничная передача персональных данных — куда уходят cookies от Google Analytics.
- 152-ФЗ для сайтов на Tilda — как поставить баннер на Tilda.
Об авторе
Дмитрий Синица. ИП с 2013 года, в разработке с 2010-го.
Направления: сайты (от лендингов до магазинов), чат-боты с ИИ и без, автоматизация процессов в малом бизнесе.
PdAudit.ru сделал, зная боли своих клиентов: кто-то где-то услышал про 152-ФЗ, подумал «потом разберусь», и через год сайт всё ещё без политики и согласия. Сервис за минуту находит проблемы и собирает готовые документы под конкретный сайт.
ИНН 502716306004, ОГРНИП 313502708000051. Запись в реестре операторов ПДн №77-25-358038 от 23.06.2025.
Источники
— ФЗ-420 от 30.05.2025 — 152-ФЗ — КоАП статья 13.11
Актуализация: 19 мая 2026.