С 30 мая 2025 года правила изменились: просто поставить счётчик на сайт и забыть - уже нарушение. Если Яндекс Метрика запускается до того, как пользователь нажал «Принять», вы собираете данные без законного основания. Штраф - до 700 000 рублей. В статье - конкретная схема: как показать баннер, не потерять данные и пройти проверку РКН.
Что такое cookie consent и зачем он нужен
Cookie consent - это механизм получения явного согласия пользователя перед установкой файлов cookie. По российскому праву он напрямую связан с Федеральным законом № 152-ФЗ «О персональных данных» и поправками ФЗ-420, вступившими в силу 30 мая 2025 года.
Роскомнадзор признаёт cookie персональными данными, если они позволяют идентифицировать браузер пользователя. Яндекс Метрика именно так и работает: устанавливает уникальный идентификатор _ym_uid и сохраняет его на 1 год. Значит, её запуск без согласия - обработка ПДн без законного основания.
⚠️ Дисклеймер: Информация носит информационный характер. По конкретной юридической ситуации консультируйтесь с юристом, специализирующимся на защите персональных данных.
Какие cookie ставит Яндекс Метрика
Согласно официальной документации Яндекса, счётчик устанавливает три основных файла:
| Cookie | Назначение | Срок |
|---|---|---|
| _ym_uid | Уникальный ID браузера | 1 год |
| _ym_d | Дата первого визита | 1 год |
| _ym_isad | Наличие блокировщика рекламы | 2 дня |
Помимо cookie, Метрика записывает данные в localStorage браузера. Это важно: даже если пользователь удалил cookie, данные в localStorage могут сохраниться.
Технические, аналитические и маркетинговые куки
Законодательство и практика РКН разделяют cookie на три категории:
- Технические (strictly necessary) - авторизация, корзина, языковые настройки. Не требуют согласия.
- Аналитические - Яндекс Метрика, статистика поведения. Требуют согласия.
- Маркетинговые - Яндекс.Директ ретаргетинг, пиксели соцсетей. Требуют отдельного согласия.
Разделение обязательно: нельзя получить одно «общее» согласие на всё сразу.
Что изменилось в 2025 году: 152-ФЗ и РКН
2025 год принёс сразу несколько волн изменений. Перечислю в хронологии:
- 30 мая 2025 - вступили в силу поправки ФЗ-420 от 30.11.2024:
- Согласие на cookie должно быть явным: заранее проставленные галочки запрещены.
- Штрафы кратно выросли (подробнее ниже).
- Для cookie-аналитики нужен отдельный баннер с выбором категорий.
- 1 июля 2025 - вступила в силу новая редакция п. 5 ст. 18 152-ФЗ о локализации данных:
- Прямой запрет первично хранить ПДн за пределами РФ.
- Google Analytics без server-side проксирования через российский сервер - нарушение.
- 1 сентября 2025 - изменения ст. 9 152-ФЗ о форме согласия:
- Согласие оформляется как отдельный документ, не смешанный с офертой или пользовательским соглашением.
- На практике: кнопка в баннере должна приводить к фиксации отдельного акцепта.
- С 1 июля 2025 - РКН запустил автоматическую ИИ-проверку сайтов. Система ищет отсутствие баннера, неправильно оформленные политики и нарушения локализации.
Новые штрафы и риски
Сравнение ДО и ПОСЛЕ ФЗ-420:
| Нарушение | Штраф |
|---|---|
| Обработка ПДн без согласия | до 700 000 руб. |
| Утечка данных | 5–20 млн руб. |
| Повторное нарушение | до 3% оборота (25–500 млн руб.) |
| Нет уведомления об утечке в 24 ч | до 3 млн руб. |
| Нарушение локализации | до 6 млн руб. |
| Нет отдельного согласия (с 01.09.2025) | 50–100 тыс. руб. (должностное лицо), 150–300 тыс. руб. (юрлицо) |
Локализация данных и Google Analytics
Использование Google Analytics (GA4) без server-side проксирования через российский сервер с 1 июля 2025 нарушает п. 5 ст. 18 152-ФЗ. Данные первично уходят на серверы Google (США) - это прямое нарушение локализации.
Варианты решения:
- Перейти на Яндекс Метрику - данные хранятся в России.
- Настроить server-side контейнер GTM на российском сервере - данные сначала идут к вам, потом к Google. ⚠️ Предположительно, точных данных о признании этого подхода Роскомнадзором нет.
- Использовать Яндекс Тег Менеджер (запущен в 2025) как замену GTM.
Как не потерять данные: пошаговая настройка
Главная ошибка - вставить код Метрики в <head> и отдельно добавить баннер. В таком случае счётчик инициализируется до того, как пользователь сделал выбор. Данные собираются без согласия, а значит - незаконно.
Правильная архитектура:
Пользователь заходит на сайт
↓
Проверить localStorage: есть ли ключ cookieConsent?
↓
Нет → показать баннер (не запускать Метрику!)
Да, значение = "accepted" → инициализировать Метрику
Да, значение = "rejected" → НЕ запускать Метрику
Условная инициализация счётчика
Вот минимальный рабочий паттерн:
<!-- НЕ вставляйте стандартный код Метрики в head! -->
<script>
// Проверка при загрузке страницы
document.addEventListener("DOMContentLoaded", function () {
var consent = localStorage.getItem("cookieConsent");
if (consent === "accepted") {
initMetrika();
} else if (!consent) {
document.getElementById("cookie-banner").style.display = "block";
}
});
// Инициализация счётчика --- ТОЛЬКО при согласии
function initMetrika() {
(function (m, e, t, r, i, k, a) {
m[i] =
m[i] ||
function () {
(m[i].a = m[i].a || []).push(arguments);
};
m[i].l = 1 * new Date();
((k = e.createElement(t)), (a = e.getElementsByTagName(t)[0]));
k.async = 1;
k.src = r;
a.parentNode.insertBefore(k, a);
})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(XXXXXX, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
});
}
// Обработчики кнопок баннера
function acceptCookies() {
localStorage.setItem("cookieConsent", "accepted");
document.getElementById("cookie-banner").style.display = "none";
initMetrika();
}
function rejectCookies() {
localStorage.setItem("cookieConsent", "rejected");
document.getElementById("cookie-banner").style.display = "none";
// Метрика НЕ запускается
}
</script>
Замените XXXXXX на номер вашего счётчика.
Авторская ремарка. Я проверял этот подход на нескольких проектах: при таком паттерне Метрика теряет данные только по тем пользователям, которые нажали «Отклонить» или ушли с сайта, не сделав выбор. По нашим наблюдениям, это 15–30% аудитории - значительная доля, которую нужно учитывать при анализе конверсий.
Отложенная загрузка vs условная инициализация
Популярный приём - откладывать загрузку Метрики до первого скролла для ускорения PageSpeed. Он помогает с Core Web Vitals, но не решает правовую проблему: счётчик всё равно запускается без согласия.
Правильная комбинация:
function acceptCookies() {
localStorage.setItem("cookieConsent", "accepted");
document.getElementById("cookie-banner").style.display = "none";
// Defer: запустить при первом скролле
var fired = false;
window.addEventListener("scroll", function () {
if (!fired) {
fired = true;
setTimeout(initMetrika, 500);
}
});
}
Так страница грузится быстро и Метрика запускается только после согласия.
Сохранение UTM-меток при cookie-баннере
Если пользователь пришёл по рекламной ссылке с UTM-метками и не дал согласие сразу, Метрика не запишет источник трафика. Решение - временно сохранить UTM в sessionStorage:
// Запускать при загрузке страницы, до показа баннера
function saveUTM() {
var params = new URLSearchParams(window.location.search);
[
"utm_source",
"utm_medium",
"utm_campaign",
"utm_content",
"utm_term",
].forEach(function (key) {
var val = params.get(key);
if (val) sessionStorage.setItem(key, val);
});
}
// При инициализации Метрики передать UTM как параметры хита
function initMetrikaWithUTM() {
initMetrika();
// UTM в URL уже будут считаны Метрикой автоматически,
// если пользователь ещё на той же странице
}
sessionStorage не является cookie и не требует отдельного согласия - это временное хранилище до закрытия вкладки.
Баннер согласия: требования и пример кода
Требования к баннеру по 152-ФЗ (с учётом изменений 2025):
- Показывать при первом визите, до сбора любых аналитических данных.
- Кнопки: «Принять всё», «Только необходимые» (или «Отклонить»), опционально «Настроить».
- Заранее не проставлять галочки - запрещено.
- Давать ссылку на политику конфиденциальности.
- Сохранять выбор пользователя - повторно не показывать баннер при следующем визите.
- Предоставить механизм отзыва согласия (например, ссылка в футере «Изменить настройки cookie»).
Минимальные требования к тексту баннера
Текст должен включать:
- Кто вы (название сайта/компании).
- Что собираете (аналитика - Яндекс Метрика, маркетинг - Яндекс.Директ и т.д.).
- Для чего (улучшение сайта, таргетированная реклама).
- Как отказаться и что изменится.
- Ссылку на политику конфиденциальности.
С 1 сентября 2025 согласие не может быть частью общего текста договора или оферты - только отдельный элемент.
Минимальный HTML-баннер
<div
id="cookie-banner"
style="display:none; position:fixed; bottom:0; left:0; right:0;
background:#1a1a1a; color:#fff; padding:16px 24px; z-index:9999;
font-family:sans-serif; font-size:14px;"
>
<p style="margin:0 0 12px">
Мы используем аналитические cookie (Яндекс Метрика) для анализа
посещаемости. Технические cookie устанавливаются автоматически.
<a href="/privacy" style="color:#4fc3f7">Политика конфиденциальности</a>
</p>
<button
onclick="acceptCookies()"
style="background:#4fc3f7;border:none;padding:8px 20px;cursor:pointer;margin-right:8px;border-radius:4px"
>
Принять аналитику
</button>
<button
onclick="rejectCookies()"
style="background:transparent;border:1px solid #aaa;color:#aaa;padding:8px 20px;cursor:pointer;border-radius:4px"
>
Только необходимые
</button>
</div>
Авторская ремарка. Стиль баннера намеренно минималистичный - он не мешает Core Web Vitals (нет тяжёлых анимаций) и не раздражает пользователя. Баннер в нижней полосе (bottom bar) показывает меньше кликов «Отклонить», чем модальное окно на весь экран - это подтверждает UX-практика.
Что учесть, чтобы Метрика работала корректно
Даже при правильном баннере есть технические угрозы данным.
Safari ITP и первичные куки
Apple Intelligent Tracking Prevention ограничивает срок cookie, установленных через JavaScript (document.cookie), до 7 дней - даже если это first-party cookie. Яндекс Метрика прописывает _ym_uid с сервера mc.yandex.ru, что делает его third-party с точки зрения вашего домена. ⚠️ Предположительно, точных официальных данных о влиянии Safari ITP на срок жизни _ym_uid нет. Актуальную информацию смотрите на yandex.ru/support/metrica.
Практический совет: настройте server-side установку cookie _ym_uid через ваш домен - это снизит влияние ITP и браузерных блокировщиков.
Доля пользователей без согласия - как считать
Часть аудитории нажмёт «Отклонить» или закроет баннер без выбора. Ваша фактическая статистика будет неполной. Чтобы понимать масштаб:
- Создайте в Метрике цель типа «JavaScript-событие» с идентификатором
cookie_accept. - Создайте цель
cookie_reject. - Вызывайте
ym(XXXXXX, 'reachGoal', 'cookie_accept')- но только после инициализации счётчика (то есть только для тех, кто уже дал согласие).
Дополнительный трюк: разместите счётчик без Веб-визора на технических страницах (например, на /privacy) без аналитических cookie - это законно, так как технические куки не требуют согласия.
Блокировщики рекламы и Метрика
Блокировщики (uBlock Origin, AdGuard) могут блокировать запросы к mc.yandex.ru. Даже при наличии согласия часть пользователей «выпадет» из статистики. Решение - настроить server-side прокси Метрики: запросы идут на ваш домен (/mc/), а потом проксируются к Яндексу. Подробности: yandex.ru/support/metrica/ru/general/creating-counter.
Чеклист для оператора ПДн в 2025–2026 году
Если ваш сайт использует Яндекс Метрику, выполните все пункты:
- Зарегистрироваться в реестре РКН как оператор персональных данных - через Госуслуги или rkn.gov.ru.
- Разработать политику конфиденциальности с описанием cookie: перечень, цели, сроки, третьи лица (Яндекс), порядок отзыва согласия.
- Добавить баннер cookie с категориями и возможностью отказа по требованиям 2025 года.
- Реализовать условную инициализацию счётчика - только после согласия (код выше).
- Обеспечить механизм отзыва согласия - ссылка «Изменить настройки cookie» в футере.
- Проверить хостинг и аналитику: данные должны первично обрабатываться в РФ.
- Отказаться от Google Analytics без server-side прокси - риск нарушения локализации.
- Назначить ответственного за обработку ПДн и подготовить внутренние инструкции.
- Настроить уведомление об утечке в течение 24 часов в РКН.
- Проверить сайт в режиме инкогнито - баннер должен появляться при каждом первом визите.
Регистрация в реестре РКН
Подать уведомление можно через gosuslugi.ru или напрямую через pd.rkn.gov.ru. Для небольших сайтов, которые собирают только cookie-аналитику, уведомление подаётся один раз. При изменении целей обработки - обновляете запись.
Политика конфиденциальности + политика cookie
Оба документа можно объединить в один, но он обязан содержать:
- Перечень устанавливаемых cookie с указанием названия, цели и срока хранения каждого.
- Список третьих лиц (в нашем случае - Яндекс, ссылка на их политику: yandex.ru/legal/metrica_termsofuse/ru/).
- Инструкцию по отзыву согласия и ссылку на opt-out Яндекс Метрики: yandex.ru/support/metrica/general/opt-out.html.
- Дату последнего обновления политики.
Альтернативная точка зрения. Ряд юристов считает, что для сугубо технических инструментов аналитики, не собирающих имя и email, требования по форме согласия избыточны - достаточно уведомления без кнопки «Отклонить». Практика РКН и судебные решения 2024–2025 годов склоняются к обратному: баннер с явной кнопкой отказа обязателен. Придерживайтесь строгого подхода, пока судебная практика не устоялась.
Нетривиальный взгляд: как «потеря данных» может быть полезна
Большинство воспринимает отклонение cookie как потерю аналитики. Но есть и обратная сторона: пользователи, которые отказываются от cookie, часто являются более осознанными и требовательными. Они чаще используют блокировщики, VPN, режим инкогнито - и их поведение может существенно отличаться от «среднего» пользователя.
Исключив их из статистики, вы получаете более «чистый» срез аудитории, которая готова к взаимодействию и не скрывает свои предпочтения. Это может быть полезно для:
A/B-тестирования - если тестируете гипотезу на согласившихся, результат будет более надёжным, чем на всей аудитории.
Настройки таргетинга - рекламные алгоритмы, обученные на данных только «сознательных» пользователей, могут показывать лучшие результаты.
Оценки качества трафика - если доля отказов в сегменте без cookie значительно выше, это может указывать на ботов или нецелевой трафик.
Таким образом, баннер согласия - это не только юридическая необходимость, но и инструмент фильтрации шумной аудитории. Вопрос лишь в том, как интерпретировать полученные данные.
Альтернативное мнение: server-side аналитика как замена клиентским cookie
Часть экспертов считает, что баннеры согласия - это временное решение, а будущее за server-side аналитикой. Вместо того чтобы собирать данные через JavaScript на стороне клиента (и просить на это согласие), можно собирать агрегированные данные на уровне сервера:
Логи HTTP-запросов (IP, User-Agent, реферер, URL).
Анонимизированные данные о сессиях без привязки к браузеру.
Сбор метрик через backend без установки сторонних cookie.
Преимущества:
Данные не зависят от блокировщиков рекламы и ITP.
Можно собирать метрики без cookie - а значит, без необходимости в явном согласии (если данные обезличены).
Полный контроль над инфраструктурой.
Недостатки:
Сложнее настроить, требует разработки.
Нет готовых инструментов уровня Яндекс Метрики - нужно писать своё.
Проблемы с идентификацией пользователей при переходах между устройствами.
Сторонники этого подхода считают, что баннеры - это «костыль», а настоящий суверенитет данных начинается с собственной аналитики. Однако для большинства небольших сайтов и интернет-магазинов такой подход экономически нецелесообразен - проще и дешевле соблюсти требования с помощью корректно настроенного баннера и условной инициализации.
FAQ
Обязательно ли показывать баннер cookie, если я использую только Яндекс Метрику без ретаргетинга?
Да. Аналитические cookie (в том числе Метрика) требуют явного согласия пользователя с 30 мая 2025 года. Это касается любых счётчиков, которые устанавливают идентификаторы браузера.
Что делать, если пользователь нажал «Отклонить», а потом передумал?
Вы должны предоставить механизм отзыва согласия - например, ссылку «Изменить настройки cookie» в футере. При повторном клике на «Принять» баннер должен исчезнуть, а Метрика - инициализироваться.
Можно ли использовать Google Analytics, если данные проксируются через российский сервер?
Технически - да, если настроен server-side GTM на сервере в РФ, а первичное хранение происходит в России. Однако Роскомнадзор не давал официальных разъяснений по этому вопросу. Надёжнее - перейти на Яндекс Метрику.
Как проверить, что баннер работает правильно и не нарушает закон?
Проверьте в режиме инкогнито: при первом визите баннер должен появляться, счётчик Метрики - не инициализироваться до нажатия «Принять». После согласия счётчик должен запускаться, а после отзыва - переставать собирать данные.
Нужно ли регистрироваться в реестре РКН, если я собираю только обезличенную статистику?
Да. Любая обработка персональных данных (а cookie с идентификатором браузера приравниваются к ПДн) требует уведомления РКН. Даже если вы собираете только агрегированные отчёты без имён и email.



.svg.webp)





