Коротко. Метрика — счётчик поведения: она показывает, что делали люди, которые до сайта дошли. Вебвизор — её модуль записи сессий: он пишет движения курсора, скроллы, клики и ввод в формы. Именно из-за последнего Вебвизор одновременно самый полезный и самый рискованный модуль: без маскирования полей вы складываете в чужую систему персональные данные посетителей.
Что показывает Метрика, а что — нет
Счётчик срабатывает в браузере посетителя, поэтому видит ровно то, что произошло после успешной загрузки страницы. Всё, что случилось раньше или помешало загрузке, для него не существует.
| Вопрос | Метрика ответит | Метрика НЕ ответит |
|---|---|---|
| Сайт вообще открывается? | — | Падение, 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-ФЗ: где начинается риск
Это та часть, о которой в инструкциях по настройке обычно молчат. Запись сессии по умолчанию фиксирует ввод в поля форм. Как только в поле попадает имя, телефон, адрес или почта, вы передаёте персональные данные посетителя в стороннюю систему — и делаете это как оператор обработки, со всеми вытекающими обязанностями.
Что нужно сделать, чтобы польза от записей не превратилась в проблему:
- Маскировать поля с персональными данными. В настройках записи есть механизм исключения содержимого полей; поля с телефоном, почтой, адресом, паспортными данными и платёжной информацией должны быть закрыты всегда, а не «когда дойдут руки».
- Отразить аналитику в политике конфиденциальности: какие данные собираются, кем обрабатываются, зачем и сколько хранятся. Как собрать такую политику — в материале про политику конфиденциальности для сайта.
- Собрать согласие там, где оно требуется, и не запускать сбор до него. Про уведомление о cookie и юридический минимум — страница про 152-ФЗ и материал про проверку сайта на соответствие.
- Ограничить доступ к записям внутри команды. Записи сессий — не «картинки для планёрки»: в них видно то, что посетитель вводил, и доступ к ним должен быть у тех, кому он нужен по работе.
Проверить, что именно ставит сайт в браузер посетителя и какие флаги стоят у cookie, можно анализатором cookie; какие флаги обязательны и почему — в материале про флаги безопасности cookie.

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

Как проверить, что всё настроено
- Проверка заголовков — отдаётся ли страница со счётчиком и с каким кодом ответа.
- Проверка скорости — не подорожала ли загрузка после установки счётчика и записей.
- Анализ cookie — какие cookie ставятся, с какими флагами и сроком жизни.
- Мониторинг доступности — чтобы провал в отчёте объяснялся фактом, а не гипотезой.
- Проверка SSL — истёкший сертификат обнуляет статистику раньше, чем вы это заметите.
Частые вопросы
Обязательно ли включать Вебвизор?
Нет. Он полезен, когда есть конкретная гипотеза: люди не доходят до конца формы, теряются в фильтре, не видят кнопку. Включать «пусть пишется» без задачи — значит копить персональные данные без цели, что не оправдано ни с точки зрения пользы, ни с точки зрения ответственности.
Почему в аналитике меньше визитов, чем в логах сервера?
Это нормально и ожидаемо. Логи считают все запросы, включая роботов и тех, кто ушёл до срабатывания скрипта; счётчик считает только браузеры, которые выполнили код и не заблокировали его. Расхождение в десятки процентов — не ошибка настройки.
Можно ли по аналитике понять, что сайт лежал?
Только косвенно и задним числом: увидите провал, но не причину и не длительность. Для ответа нужен внешний мониторинг, который проверяет доступность независимо от того, пришёл кто-то на сайт или нет.
Счётчик замедляет сайт?
Немного — как любой сторонний скрипт. Критично это становится в двух случаях: когда скрипт вставлен блокирующим образом и когда сторонних скриптов на странице уже десяток. Измеряйте эффект, а не спорьте о нём: сравните загрузку с ним и без него.
Что делать, если цель не срабатывает?
Пройти сценарий как посетитель и посмотреть в панели разработчика, уходит ли событие в момент действия. Если событие не отправляется — проблема на стороне сайта, а не в настройке цели. Если отправляется, а в отчёте пусто — подождите обработки и проверьте условие цели.
Нужно ли согласие посетителя на запись сессий?
Подход зависит от того, какие данные попадают в запись и как вы их обрабатываете, поэтому формулировки лучше согласовать с юристом. Технический минимум одинаков в любом случае: маскировать поля с персональными данными, описать сбор в политике и не собирать больше, чем нужно для заявленной цели.
Чеклист настройки
- Счётчик стоит на всех шаблонах, а не только на главной.
- Счётчик на странице ровно один — дублей нет.
- Скрипт подключён неблокирующим образом, эффект на скорость измерен.
- Цели заведены на реальные события и проверены в боевом сценарии с телефона.
- Вебвизор включён осознанно, под конкретную задачу.
- Поля с персональными данными замаскированы до включения записей.
- Аналитика описана в политике конфиденциальности, согласие собирается там, где нужно.
- Доступ к записям сессий ограничен кругом тех, кому он нужен.
- Доступность, сертификат и редиректы контролируются внешним мониторингом, а не отчётом о посещаемости.