Skip to content
EN
← Все статьи

Яндекс.Метрика и Вебвизор: настройка, цели, почему не записывает и что с 152-ФЗ

Коротко. Метрика — счётчик поведения: она показывает, что делали люди, которые до сайта дошли. Вебвизор — её модуль записи сессий: он пишет движения курсора, скроллы, клики и ввод в формы. Именно из-за последнего Вебвизор одновременно самый полезный и самый рискованный модуль: без маскирования полей вы складываете в чужую систему персональные данные посетителей.

Что показывает Метрика, а что — нет

Счётчик срабатывает в браузере посетителя, поэтому видит ровно то, что произошло после успешной загрузки страницы. Всё, что случилось раньше или помешало загрузке, для него не существует.

ВопросМетрика ответитМетрика НЕ ответит
Сайт вообще открывается?Падение, 5xx, истёкший сертификат: посетитель не дошёл, события нет
Откуда пришли людиИсточники, кампании, поисковые фразы
Что делали на страницеСкроллы, клики, формы, записи сессийЧто происходило на сервере в этот момент
Почему форма не отправиласьЧто человек делал перед уходомОтвет сервера и ошибку бэкенда
Скорость сайтаВремя загрузки у реальных посетителейСкорость для тех, кто ушёл, не дождавшись

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

Схема: счётчик аналитики видит только сессии дошедших посетителей, а внешний мониторинг видит доступность и ответы сервера
Счётчик видит только тех, кто дошёл. Всё, что помешало дойти, остаётся вне аналитики — это зона внешнего мониторинга.

Установка счётчика: куда вставлять и как проверить

Код счётчика ставят как можно раньше в разметке — обычно в head. Чем позже он выполнится, тем больше коротких визитов не попадёт в статистику: человек ушёл до того, как скрипт успел отправить первое событие.

Проверять установку нужно не глазами, а фактически:

# Есть ли код счётчика в HTML, который отдаёт сервер
curl -s https://example.com | grep -o 'mc\.yandex\.ru[^"]*' | head

# Отдаётся ли страница вообще и с каким кодом
curl -sI https://example.com | head -n 3

Важный нюанс: если сайт рендерится на клиенте, счётчик может быть в исполняемом коде, а не в исходном HTML — тогда curl его не увидит, а браузер увидит. Смотреть надо в панели разработчика на вкладке сети: уходит ли запрос счётчика при загрузке страницы и приходит ли на него ответ.

Два счётчика на одной странице — самая частая порча данных. Так бывает после смены подрядчика или темы: старый код остался в шаблоне, новый добавили через диспетчер тегов. Визиты задваиваются, показатель отказов падает вдвое, и отчёты выглядят подозрительно хорошо. Прежде чем радоваться росту, поищите в исходном коде все вхождения счётчика.

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

# Есть ли счётчик на всех типах страниц и не задвоен ли он
for u in / /catalog/ /catalog/item-1/ /cart/ /contacts/; do
  code=$(curl -s -o /dev/null -w '%{http_code}' "https://example.com$u")
  hits=$(curl -s "https://example.com$u" | grep -c 'mc\.yandex\.ru')
  printf '%s %s counter:%s\n' "$code" "$u" "$hits"
done

Как счётчик влияет на скорость

Любой сторонний скрипт — это дополнительное соединение, загрузка и работа в главном потоке. Сам по себе счётчик лёгкий, но у него есть два неприятных свойства.

  • Он тянет за собой сессионные записи. С включённым Вебвизором объём отправляемых данных растёт: пишутся движения, скроллы и изменения страницы. На простых страницах это незаметно, на тяжёлых интерфейсах — заметно.
  • Он конкурирует за главный поток в самый неудачный момент — во время первичной отрисовки. Это бьёт по интерактивности, то есть по INP, и косвенно по LCP, если скрипт вставлен блокирующим образом.

Практический вывод не «убрать счётчик», а не делать его блокирующим: подключать асинхронно и не ставить перед критичными для отрисовки ресурсами. Проверить фактический эффект можно проверкой скорости, а понять, какая метрика пострадала, помогают материалы про Web Vitals и INP. Если после установки счётчика показатели просели — сравните две загрузки, с ним и без, прежде чем винить хостинг; методика в материале про инструменты проверки скорости.

Вебвизор: что он пишет и чего не пишет

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

  • Динамический контент воспроизводится приблизительно. Если данные подгружаются запросом, при воспроизведении их может не быть или они могут отличаться.
  • Содержимое сторонних фреймов не записывается. Виджеты чатов, платёжные формы и карты в воспроизведении часто выглядят пустыми областями.
  • Графика, нарисованная кодом (canvas, часть анимаций), восстанавливается плохо или не восстанавливается совсем.
  • Записи хранятся ограниченное время. Точный срок смотрите в интерфейсе: он меняется, и статьи с конкретными цифрами устаревают быстрее, чем пишутся.

Почему Вебвизор не записывает сессии

СимптомВероятная причинаЧто проверить
Записей нет вообщеМодуль не включён в настройках счётчикаНастройки счётчика: сам Вебвизор включается отдельно от счётчика
Записи появляются с большой задержкойТак работает обработкаПодождать; отсутствие записи «прямо сейчас» — не поломка
Записи пустые или обрывочныеТяжёлый динамический интерфейс, сторонние фреймыСравнить с простой страницей сайта
Части страницы не видноКонтент во фрейме или нарисован кодомЭто ограничение метода, а не ошибка настройки
Ничего не пишется на части страницСчётчик стоит не на всех шаблонахПроверить наличие кода на карточке товара, корзине, лендингах
Данных нет с конкретных устройствБлокировщик рекламы или расширение приватностиНорма: часть аудитории в аналитику не попадает никогда

Последний пункт стоит принять как данность: часть посетителей блокирует счётчики, и это не чинится. Поэтому аналитика хороша для сравнения периодов и гипотез, но не годится как источник точных абсолютных чисел — и тем более как индикатор доступности сайта.

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

Цели: почему они не срабатывают

Цель — это событие, которое вы объявили ценным. Пока цели не настроены, у вас есть посещаемость, но нет ответа на вопрос «сколько заявок принёс канал».

Разберём типовые причины, по которым цель молчит.

  • Цель на посещение страницы «спасибо», а страницы нет. Современные формы отправляются без перезагрузки, поэтому URL не меняется и условие никогда не выполняется. Нужна цель на событие, которое отправляет сам сайт.
  • Цель на клик по кнопке, а кнопка перерисовывается. Если разметка меняется динамически, привязка к классу или идентификатору ломается при следующем обновлении вёрстки.
  • Цель настроена, но событие не отправляется. Классический разрыв: аналитик создал цель в интерфейсе, разработчик не добавил вызов на стороне сайта. Проверяется просмотром сетевых запросов при отправке формы.
  • Цель считается, но с задержкой. Достижения появляются в отчётах не мгновенно — сравнивать «прямо сейчас» бессмысленно.
  • Форма отправляется, но письмо не доходит, и вы решаете, что не работает цель. Это разные системы: цель фиксирует действие в браузере, доставка письма живёт на почтовом сервере. Как отделить одно от другого — в материале про неприходящие письма.
Проверяйте цель тем же способом, каким её достигает посетитель. Не «нажму кнопку в админке», а пройдите путь целиком с телефона, из инкогнито, с реальными данными. Половина «несрабатывающих целей» — это цели, которые никто ни разу не проверил в боевом сценарии.

Вебвизор и 152-ФЗ: где начинается риск

Это та часть, о которой в инструкциях по настройке обычно молчат. Запись сессии по умолчанию фиксирует ввод в поля форм. Как только в поле попадает имя, телефон, адрес или почта, вы передаёте персональные данные посетителя в стороннюю систему — и делаете это как оператор обработки, со всеми вытекающими обязанностями.

Что нужно сделать, чтобы польза от записей не превратилась в проблему:

  1. Маскировать поля с персональными данными. В настройках записи есть механизм исключения содержимого полей; поля с телефоном, почтой, адресом, паспортными данными и платёжной информацией должны быть закрыты всегда, а не «когда дойдут руки».
  2. Отразить аналитику в политике конфиденциальности: какие данные собираются, кем обрабатываются, зачем и сколько хранятся. Как собрать такую политику — в материале про политику конфиденциальности для сайта.
  3. Собрать согласие там, где оно требуется, и не запускать сбор до него. Про уведомление о cookie и юридический минимум — страница про 152-ФЗ и материал про проверку сайта на соответствие.
  4. Ограничить доступ к записям внутри команды. Записи сессий — не «картинки для планёрки»: в них видно то, что посетитель вводил, и доступ к ним должен быть у тех, кому он нужен по работе.

Проверить, что именно ставит сайт в браузер посетителя и какие флаги стоят у cookie, можно анализатором cookie; какие флаги обязательны и почему — в материале про флаги безопасности cookie.

Схема: поля формы с персональными данными закрыты маской перед тем, как события уходят в систему записи сессий
Маскирование полей — не опция, а условие: закрывать нужно до того, как события покинут браузер посетителя.

Чего вы не увидите в аналитике никогда

Счётчик молчит ровно тогда, когда происходит самое важное:

  • Сайт лежит. Нет загрузки — нет визитов. В отчёте это выглядит как «мало трафика», а не как авария.
  • Сертификат истёк. Браузер показывает предупреждение до загрузки страницы, счётчик не срабатывает.
  • Сломался редирект и часть адресов ведёт в никуда: посетители теряются молча.
  • Часть страниц отдаёт 5xx. Ошибку видит сервер, а не браузер посетителя, который просто ушёл.
  • Домен перестал резолвиться. Для аналитики это неотличимо от «никто не пришёл».

Поэтому связку стоит замыкать внешними проверками: мониторингом доступности, контролем сертификата, проверкой редиректов и проверкой заголовков. Тогда падение трафика вы объясняете фактами, а не догадками.

Схема слепых зон: падение сервера, ошибка сертификата, сломанный редирект и ошибки сервера остаются вне поля зрения счётчика
Слепые зоны счётчика — ровно те события, которые мешают посетителю дойти до страницы: авария, сертификат, редирект, ошибка сервера.

Как проверить, что всё настроено

Частые вопросы

Обязательно ли включать Вебвизор?

Нет. Он полезен, когда есть конкретная гипотеза: люди не доходят до конца формы, теряются в фильтре, не видят кнопку. Включать «пусть пишется» без задачи — значит копить персональные данные без цели, что не оправдано ни с точки зрения пользы, ни с точки зрения ответственности.

Почему в аналитике меньше визитов, чем в логах сервера?

Это нормально и ожидаемо. Логи считают все запросы, включая роботов и тех, кто ушёл до срабатывания скрипта; счётчик считает только браузеры, которые выполнили код и не заблокировали его. Расхождение в десятки процентов — не ошибка настройки.

Можно ли по аналитике понять, что сайт лежал?

Только косвенно и задним числом: увидите провал, но не причину и не длительность. Для ответа нужен внешний мониторинг, который проверяет доступность независимо от того, пришёл кто-то на сайт или нет.

Счётчик замедляет сайт?

Немного — как любой сторонний скрипт. Критично это становится в двух случаях: когда скрипт вставлен блокирующим образом и когда сторонних скриптов на странице уже десяток. Измеряйте эффект, а не спорьте о нём: сравните загрузку с ним и без него.

Что делать, если цель не срабатывает?

Пройти сценарий как посетитель и посмотреть в панели разработчика, уходит ли событие в момент действия. Если событие не отправляется — проблема на стороне сайта, а не в настройке цели. Если отправляется, а в отчёте пусто — подождите обработки и проверьте условие цели.

Нужно ли согласие посетителя на запись сессий?

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

Чеклист настройки

  • Счётчик стоит на всех шаблонах, а не только на главной.
  • Счётчик на странице ровно один — дублей нет.
  • Скрипт подключён неблокирующим образом, эффект на скорость измерен.
  • Цели заведены на реальные события и проверены в боевом сценарии с телефона.
  • Вебвизор включён осознанно, под конкретную задачу.
  • Поля с персональными данными замаскированы до включения записей.
  • Аналитика описана в политике конфиденциальности, согласие собирается там, где нужно.
  • Доступ к записям сессий ограничен кругом тех, кому он нужен.
  • Доступность, сертификат и редиректы контролируются внешним мониторингом, а не отчётом о посещаемости.

Проверьте ваш сайт прямо сейчас

Следить за сайтом непрерывно →
Другие статьи: Мониторинг
Мониторинг
Проектирование health check эндпоинтов для веб-сервисов
16.03.2026 · 381 просм.
Мониторинг
Лучшие практики алертинга для мониторинга сайтов
14.03.2026 · 351 просм.
Мониторинг
ТОП-10 сервисов мониторинга сайтов 2026: честное сравнение функций и цен
01.04.2026 · 315 просм.
Мониторинг
Uptime сайта и SLA: что означают 99.9% и как считать доступность
13.03.2026 · 303 просм.