Оформить — от 590 ₽
Cookie · Метрика

Как отключить Яндекс Метрику до согласия на cookie

16 июля 2026· Код и проверка· 6 мин. чтения
Аналитика сайта ждет согласия посетителя на cookie

Чтобы отключить Яндекс Метрику до согласия и не остаться без статистики, загружайте ее в режиме без cookie, а полный режим включайте только после нажатия «Принять». Такой режим у Метрики есть, и персональных данных он не создает. Уже загруженный счетчик переключить нельзя, поэтому режим выбирают до инициализации, и на этом часто ломаются самодельные решения.

Что именно нарушается, если Метрика загружается сразу

При инициализации счетчик записывает в браузер идентификатор _ym_uid. Это число сохраняется между визитами, отличает посетителя от остальных и связывает его сессии в одну историю. Поэтому обработка попадает под 152-ФЗ, ведь данные относятся к определяемому человеку, даже если имени и почты в них нет.

Для таких счетчиков нужно согласие посетителя (ст. 6 и 9 152-ФЗ), а с 1 сентября 2025 года (ФЗ-156) его оформляют отдельно от других документов. Обработка начинается с установки идентификатора, отчет в Яндекс уходит позже. Если баннер уже показан, а скрипт уже работает, согласие спрашивают после того, как данные начали собирать, и требование не выполнено.

Встроенные баннеры конструкторов

Многие встроенные уведомления о cookie на конструкторах показывают плашку и запоминают, что ее закрыли, но загрузку сторонних скриптов не задерживают. Счетчик в шаблоне сайта срабатывает раньше баннера. В Tilda так работают блоки T657, T886 и T887. Блок T972 задерживает Метрику, подключенную через настройки сайта, а код, вставленный вручную, без дополнительной разметки не останавливает.

Понять, ваш ли это случай, проще всего снаружи. Бесплатная проверка сайта находит счетчики в коде страницы, cookie-баннер и режим Метрики без cookie. Загружается ли счетчик до нажатия «Принять», проверьте в DevTools по инструкции ниже, от этого и зависит, выполнено ли требование. Политику использования cookie и форму согласия для баннера с вашими реквизитами можно оформить пакетом «Расширенный», от 990 руб.

Режим без cookie позволяет считать трафик до согласия

Полностью отказываться от статистики до согласия не обязательно. У Метрики есть параметр инициализации cookies: false, и в этом режиме счетчик не записывает идентификатор в браузер. Каждый визит остается анонимным и не связывается с предыдущими. Вы видите число просмотров, источники и географию, но не уникальных посетителей и не поведение одного человека во времени.

Раз идентификатор не создается, персональных данных не появляется, и согласие для такого режима не требуется. Так вы сохраняете базовую статистику по тем, кто до баннера не дошел или отказался.

Что остается доступным без cookie

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

Рабочий код с переходом в полный режим после согласия

Самодельные решения часто пытаются «переинициализировать» счетчик после нажатия кнопки. Повторный вызов init с другими параметрами существующий счетчик не переключает, параметры фиксируются при первой инициализации. Поэтому режим определяют до вызова init, по выбору, сохраненному раньше:

var STORAGE_KEY = 'cookie_prefs'; var prefs = null; try { var raw = localStorage.getItem(STORAGE_KEY); if (raw) { prefs = JSON.parse(raw); } } catch (e) { prefs = null; } function loadMetrika(withCookies) { (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(); for (var j = 0; j < document.scripts.length; j++) { if (document.scripts[j].src === r) { return; } } 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(XXXXXXXX, 'init', { cookies: withCookies, webvisor: withCookies, clickmap: true, ssr: true, accurateTrackBounce: true, trackLinks: true }); } loadMetrika(!!(prefs && prefs.analytics));

При первом визите prefs пуст, и счетчик запускается без cookie. Если посетитель нажал «Принять все», выбор записывается в localStorage, и с cookie счетчик запустится после перезагрузки или на следующей странице. Если он нажал «Только необходимые», режим остается анонимным.

Какие параметры связывать с согласием

ПараметрЗависит от согласияПочему
cookies Да Он управляет записью идентификатора _ym_uid
webvisor Да Запись сессии фиксирует поведение и ввод, это самая чувствительная часть аналитики
clickmap Нет Карта кликов собирает координаты по странице без привязки к человеку, идентификатор ей не нужен

Параметр clickmap лучше не выключать. Часть целей Метрики, например «клик по кнопке», опирается на карту кликов и без нее не срабатывает. Если выключить его для тех, кто не дал согласия, вы потеряете собственные конверсии и заметите это не сразу.

У других счетчиков режима без cookie обычно нет

Top.Mail.Ru, рекламные пиксели и большинство сторонних трекеров анонимного режима не предлагают. Поэтому до согласия их скрипт вообще не должен появляться в DOM, загрузить его и выключить недостаточно. Удобно вынести их загрузку в отдельную функцию и вызывать ее только по флагу согласия:

function applyPrefs(p) { loadMetrika(!!p.analytics); if (p.ads) { loadMailRu(); } }

Как разложить трекеры по категориям и почему хватает трех групп, разобрано в статье «Cookie-баннер с возможностью отказа».

Как проверить, что получилось

  1. Откройте сайт в приватном окне, баннер не трогайте.
  2. Откройте в DevTools вкладку Application, раздел Cookies. Значений _ym_uid и _ym_d там быть не должно.
  3. Нажмите «Только необходимые» и перезагрузите страницу. Идентификаторов по-прежнему нет.
  4. Нажмите «Принять все» и перезагрузите страницу. Появится _ym_uid.
  5. Во вкладке Network до согласия не должно быть запросов к сторонним счетчикам, у которых нет режима без cookie.
Режим без cookie не выключает аналитику

Визиты без cookie видны в отчетах Метрики, поэтому то, что данные идут, ничего не доказывает. Проверять настройку надо по браузеру, где до согласия не должно быть _ym_uid.

Что описать в документах

Одной технической настройки мало. Перечень трекеров, назначение каждого, срок хранения и порядок отзыва согласия описывают в политике использования cookie, а передачу данных Яндексу как обработчику в политике конфиденциальности. Требования к обоим документам есть в статьях «Cookie-баннер для сайта» и «Политика конфиденциальности для сайта».

Проверьте баннер и счетчики на вашем сайте

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

Проверить сайт бесплатно

Часто задаваемые вопросы

Можно, но только в анонимном режиме с параметром cookies: false. В нем счетчик не записывает идентификатор _ym_uid, персональные данные не появляются, и согласие не требуется. Полный режим с cookie включают только после явного согласия.

Параметры счетчика фиксируются при первой инициализации, повторный init их не переключает. Режим нужно определять до вызова init по выбору, сохраненному в localStorage, а новый режим применять при следующей загрузке страницы.

Параметры cookies и webvisor связывают с согласием, они завязаны на идентификатор посетителя и запись его поведения. Параметр clickmap оставляют включенным. Карта кликов собирает данные по странице без привязки к человеку, и от нее зависят цели вроде «клик по кнопке».

Анонимного режима у них обычно нет, поэтому до согласия их скрипт вообще не должен появляться в DOM. Загрузку выносят в отдельную функцию и вызывают ее только по флагу согласия.

Автор: действующий архитектор кибербезопасности и систем защиты персональных данных. Создатель сервиса Privadoc. 17 лет в кибербезопасности · Специализация: проектирование СЗПДн и защита персональных данных · Privadoc