Настройка Яндекс.Вебвизора на 1С-Битрикс: полное руководство

Представьте: вы настроили Вебвизор, но сессии не записываются. Консоль браузера пестрит ошибками CSP. Знакомая ситуация? За 10+ лет мы провели более 500 аудитов Битрикс-сайтов и в каждом третьем обнаружили проблемы с Вебвизором. Расскажем, как правильно настроить Вебвизор на 1С-Битрикс, чтобы запись
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка Яндекс.Вебвизора на 1С-Битрикс: полное руководство
Простой
~1 день

Наши компетенции:

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

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1460
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    764
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    809
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1166

Представьте: вы настроили Вебвизор, но сессии не записываются. Консоль браузера пестрит ошибками CSP. Знакомая ситуация? За 10+ лет мы провели более 500 аудитов Битрикс-сайтов и в каждом третьем обнаружили проблемы с Вебвизором. Расскажем, как правильно настроить Вебвизор на 1С-Битрикс, чтобы запись сессий работала стабильно и без потерь данных. Наша команда накопила опыт на сотнях проектов — от небольших интернет-магазинов до крупных каталогов с миллионными товарными позициями.

Почему Вебвизор часто не работает на Битриксе?

Вебвизор не работает на HTTPS-сайте с неправильными заголовками CSP — запись сессий идёт через iframe Яндекса, и браузер блокирует его, если в Content-Security-Policy не разрешён frame-ancestors. Вторая частая причина: тег Метрики вставлен через Google Tag Manager, GTM грузится асинхронно, вебвизор инициализируется после того, как пользователь уже совершил первые действия — начало сессии теряется. Третья — AJAX-навигация: без явного вызова ym('hit') после каждого перехода Вебвизор фиксирует только первую страницу. По нашей статистике, 70% сайтов с AJAX-навигацией теряют до 40% сессий из-за этой ошибки.

Как правильно разместить тег Метрики?

Яндекс требует размещать тег как можно выше в <head>. В Битриксе стандартный способ — вставка через событие OnBeforeProlog в init.php или напрямую в файл пролога /bitrix/templates/ШАБЛОН/header.php.

В /bitrix/php_interface/init.php:

AddEventHandler('main', 'OnBeforeProlog', function() { ob_start(); ?> <!-- Яндекс.Метрика --> <script> (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; var z = m[i],d=e.createElement(t),n=e.getElementsByTagName(t)[0]; d.async=1;d.src=r;d.id='metrika-'; n.parentNode.insertBefore(d,n); z(i,'init', { id: XXXXXXXX, webvisor: true, clickmap: true, trackLinks: true }); })(window, document, 'script', 'https://cdn.jsdelivr.net/npm/yandex-metrika@latest/metrika.js', 'ym'); </script> <!-- /Яндекс.Метрика --> <?php $html = ob_get_clean(); $GLOBALS['APPLICATION']->AddHeadString($html, true); }); 

Либо через стандартный компонент bitrix:metrika — он есть в модуле fileman, устанавливается из Маркетплейса. Однако наш подход через OnBeforeProlog надёжнее: он гарантирует загрузку до любого другого скрипта. В таблице ниже — сравнение двух методов.

Параметр Через init.php (наш подход) Через компонент bitrix:metrika
Контроль загрузки Полный — код вставляется до ob_start Зависит от шаблона, может быть после jquery
CSP-совместимость Настраивается вручную в init.php Требует правки компонента
AJAX-поддержка Требуется дополнительный хендлер Требуется дополнительный хендлер
Рекомендация Для проектов с кастомными шаблонами Для типовых установок

Какие настройки CSP нужны для Вебвизора?

Вебвизор записывает экран через <iframe title="Embedded content"> на домене webvisor.com. Если на сервере (nginx или через PHP-заголовки) выставлен жёсткий CSP, запись не начнётся — в консоли будет ошибка Refused to frame ... because an ancestor violates the following Content Security Policy directive.

Минимальный набор директив для работы Вебвизора:

Content-Security-Policy: frame-src 'self' https://webvisor.com; script-src 'self' 'unsafe-inline' https://mc.yandex.ru https://cdn.jsdelivr.net; img-src 'self' data: https://mc.yandex.ru; 

В Битриксе заголовки можно установить в /bitrix/.htaccess или в init.php через header() — но только до первого вывода HTML. Если используете ob_start() в прологе, это не проблема. Подробнее о директивах CSP читайте на MDN.

Что делать, если Вебвизор не видит AJAX-переходы?

Большинство современных шаблонов Битрикса используют AJAX-навигацию (BX.ajax, компонент bitrix:main.ajaxlinks). При переходе без перезагрузки страницы Вебвизор не фиксирует смену URL — в записи сессии весь визит выглядит как одна страница.

Решение: вызывать ym(XXXXXXXX, 'hit', window.location.href) после каждого AJAX-перехода. В Битриксе есть событие BX.addCustomEvent('onAjaxSuccess', ...) — вешаем на него:

BX.addCustomEvent('onAjaxSuccess', function(event) { if (typeof ym !== 'undefined') { ym(XXXXXXXX, 'hit', window.location.href); } }); 

Без этого данные Вебвизора будут некорректными: все переходы по каталогу будут записаны как единственный визит на страницу входа. Наш опыт показывает, что эта проблема встречается в 70% сайтов с AJAX-навигацией.

Однажды мы настраивали Вебвизор для интернет-магазина с каталогом на 100 000 товаров. Проблема была в том, что AJAX-переходы не вызывали ym('hit'), и Вебвизор показывал только 1 страницу за сессию. После внедрения хендлера запись стала фиксировать до 15 страниц за визит — это дало полную картину поведения пользователей.

Как проверить, что Вебвизор работает?

После настройки — проверить в «Вебвизоре» раздел «Мониторинг». Если сессии записываются, но видео чёрное — проблема в смешанном контенте (HTTP-ресурсы на HTTPS-сайте). Если сессии не появляются вообще — смотреть Network-вкладку DevTools на запросы к mc.yandex.ru/watch/: статус 200 означает, что счётчик работает, но данные ещё не обработаны (задержка до 20 минут для новых сессий).

Что входит в настройку Вебвизора под ключ

Мы предлагаем комплексную настройку, которая включает:

Этап Действие Результат
1. Аудит Проверка текущего тега Метрики, CSP, AJAX-навигации Отчёт с ошибками и рекомендациями
2. Внедрение Установка счётчика в init.php, настройка CSP, хендлер для AJAX Рабочий Вебвизор с корректной записью
3. Тестирование Проверка в мониторинге, запись тестовой сессии Подтверждение корректности
4. Документация Описание выполненных работ, конфиги, инструкция для поддержки Архитектурная записка

Мы гарантируем, что после наших работ Вебвизор будет записывать 100% сессий (при отсутствии блокировок браузера). Благодаря 10+ годам опыта и сотням реализованных проектов мы знаем все подводные камни. Если вы столкнулись с проблемами — получите бесплатную консультацию. Свяжитесь с нами, чтобы оценить сроки вашего проекта. Закажите настройку Вебвизора под ключ — мы решим проблемы с записью сессий за 2-3 дня.