Скорость сайта

Виджеты JivoSite, Calltouch, Битрикс24: как они влияют на скорость

Сколько мегабайт и миллисекунд добавляют чат, обратный звонок, аналитика и пиксели. Как ставить виджеты, чтобы LCP не уезжал за 4 секунды.

обновлено 9 минут чтения 2 Дмитрий Акиндинов
Содержание
  1. Что измеряем
  2. JivoSite
  3. Битрикс24 виджет (онлайн-чат и формы)
  4. Calltouch и обратный звонок
  5. Яндекс Метрика
  6. Google Analytics, gtag, Facebook Pixel, VK Pixel
  7. Виджеты соцсетей: ВКонтакте, Telegram, Одноклассники
  8. Виджеты отзывов: Яндекс, Google Reviews, Yell
  9. Кастомные карты: Яндекс Карты, 2ГИС, OSM
  10. Какие виджеты убирать без сожалений
  11. Чек-лист, чтобы виджеты не убили скорость
  12. Сценарии, которые я часто применяю
  13. Замер до и после
  14. Когда стоит делегировать
  15. Частые вопросы

Виджеты это самая частая причина, по которой только что ускоренный сайт уезжает обратно в красную зону. Первичный скрипт чата весит 70-120 КБ, а при открытии тянет ещё 200-400. Счётчики и пиксели добавляют своё, и вместе они съедают всю проделанную работу.

История у клиента: лендинг ускоряли неделю, выжимали LCP до 1.8 секунды, поставили рассыльный пиксель и виджет JivoSite, на следующий день PageSpeed показал 2.9, конверсия упала на 12 процентов. Виджеты это самая частая причина, по которой только что оптимизированный сайт быстро уезжает обратно в красную зону.

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

Сайт со значками чата и звонка, спидометр снижается

Что измеряем

У каждого виджета есть несколько характеристик, которые определяют его влияние:

  • Вес скрипта в КБ. JS-файл, который грузится сразу или с задержкой.
  • Запросы к сторонним доменам. Каждый домен это DNS + TLS + RTT.
  • Время CPU на инициализацию. Сколько миллисекунд браузер тратит на парсинг и выполнение скрипта.
  • Количество перерисовок DOM. Виджет вставляет в DOM свои элементы, и каждое такое действие даёт layout и paint.
  • Влияние на Long Tasks. Если инициализация занимает больше 50 миллисекунд непрерывной работы, это уже Long Task, который влияет на INP.

Замер виджета удобно делать через DevTools > Performance:

  1. Открываете чистую страницу (incognito, без расширений).
  2. Включаете запись в Performance.
  3. Перезагружаете страницу.
  4. Останавливаете запись через 5 секунд.
  5. В фильтре по доменам ищете jivo.ru, bitrix24.ru, calltouch.ru, и смотрите общий вес и CPU.

Я гонял такие тесты на десятках сайтов, и ниже привожу типичные цифры. Они отличаются на разных устройствах и сетях, но порядок одинаковый.

JivoSite

Один из самых популярных чатов в России. По стандартному подключению через <script> в <head>:

  • Размер первичного скрипта: 70-120 КБ.
  • Догрузка стилей и виджет-кода: ещё 200-400 КБ при первом открытии чата.
  • Запросы к доменам: code.jivosite.com, node.jivosite.com, cdn.jivosite.com. Иногда дополнительные домены аналитики.
  • Время CPU на инициализацию: 80-200 мс на среднем мобильном.
  • Влияние на LCP: 100-300 мс на первой загрузке, в основном за счёт сетевых запросов.

Что делает: чат с менеджером в правом нижнем углу, бот-приветствие, перехват уходящих посетителей.

Что я делаю на практике:

Откладываю загрузку JivoSite до первого взаимодействия пользователя или до прокрутки на 50 процентов высоты страницы. Так первая загрузка остаётся быстрой, а чат всё равно появляется до того, как человек реально захочет нажать кнопку.

<script>
(function() {
  let loaded = false;
  function loadJivo() {
    if (loaded) return;
    loaded = true;
    const s = document.createElement('script');
    s.src = '//code.jivosite.com/widget/XXXXXXXX';
    s.async = true;
    document.head.appendChild(s);
  }
  // Подгружаем при первом значимом действии
  ['mousemove', 'scroll', 'touchstart', 'click'].forEach(ev => {
    addEventListener(ev, loadJivo, { once: true, passive: true });
  });
  // Запасной таймер: если пользователь сидит без движения, через 7 секунд всё равно подгружаем
  setTimeout(loadJivo, 7000);
})();
</script>

Эффект: LCP не страдает совсем, INP при первом клике остаётся в зелёной зоне. Чат появляется через секунду после взаимодействия, но человек этого не замечает.

Минус: до первого взаимодействия чат не виден. Если у вас бизнес-модель строится на том, что бот должен поприветствовать каждого вошедшего, такой ленивый запуск неуместен. Но в большинстве случаев это нормально.

Битрикс24 виджет (онлайн-чат и формы)

Битрикс24 даёт виджет, который объединяет чат, форму обратной связи, обратный звонок и онлайн-каталог. Удобно с точки зрения функционала, тяжело с точки зрения скорости.

  • Размер первичного скрипта: 80-150 КБ.
  • Догрузка модулей при открытии: 500-900 КБ.
  • Время CPU: 150-300 мс на инициализацию.
  • Влияние на LCP: 150-400 мс при стандартном подключении.

Виджет Битрикс24 написан так, что он сразу в DOM добавляет несколько элементов и слушает события. Это даёт небольшие, но ощутимые задержки на любых действиях пользователя.

Что я делаю:

Если у клиента активный CRM Битрикс24 и он реально использует данные виджета, оставляю с ленивой загрузкой по тому же принципу, что JivoSite. Подгрузка по первому взаимодействию. Размер всё равно остаётся, но влияние на LCP уходит.

Если виджет используется только для обратного звонка и формы, заменяю его на простую HTML-форму, которая отправляет в Битрикс24 через API. Так нет лишних 500 КБ JS и нет тормозов вообще, а заявки приходят туда же.

Calltouch и обратный звонок

Calltouch это коллтрекинг, который показывает, с какой кампании пришёл звонок, и пишет разговор. Виджет включает:

  • Динамический подмен номера на странице.
  • Кнопку обратного звонка.
  • Запись звонка через WebRTC при использовании.
  • Размер первичного скрипта: 60-120 КБ.
  • Запросы: calltouch.ru, иногда дополнительные.
  • Время CPU: 50-150 мс.
  • Влияние на LCP: 50-200 мс.

Coolltouch обычно ведёт себя приличнее JivoSite или Битрикс24 в плане скорости, но добавляет свои тормоза, особенно при подмене номера: скрипт обходит DOM, ищет паттерны телефонов, заменяет их.

Что я делаю:

Если у клиента есть Calltouch для коллтрекинга, оставляю как есть, но проверяю, что подключение через async. На быстрых сайтах разница 50-100 мс на LCP заметна, но не катастрофа. Альтернативу подмены номера у Calltouch заменить нечем, поэтому компромисс приемлемый.

Если используется только кнопка обратного звонка без коллтрекинга, заменяю на простую кнопку с открытием формы заявки. Без 100 КБ внешнего скрипта.

Яндекс Метрика

Самый универсальный счётчик в России. Без него мало кто работает.

  • Размер скрипта: 50-90 КБ.
  • Время CPU: 30-100 мс.
  • Влияние на LCP: обычно 50-150 мс на первой загрузке.

Метрика подключается стандартно через сниппет, который делает defer и почти не блокирует загрузку. Webvisor тяжелее, чем чистая Метрика без него, на 20-30 процентов.

Что я делаю:

Метрику оставляю, но включаю отложенную инициализацию для тяжёлых функций (Webvisor, карта кликов). Стандартный сниппет от Яндекса в 2026 году уже корректно обрабатывает эти настройки.

Что точно убираю: дублированный счётчик mc.yandex.ru/metrika/tag.js если он подключён вручную в нескольких местах. Бывает, что в шаблоне Битрикса один счётчик, а в виджете Битрикс24 ещё один, и итого Метрика грузится дважды.

Google Analytics, gtag, Facebook Pixel, VK Pixel

Эти пиксели добавляют по 30-80 КБ каждый и делают запросы к сторонним доменам. По одному пикселю это копейки, по три-четыре уже заметно.

Google Analytics в России в 2026 году работает с переменным успехом: иногда блокировка, иногда нет. Многие проекты от него отказались в пользу Метрики.

Facebook Pixel в РФ заблокирован, ставить смысла нет, кроме случаев, когда у вас аудитория за рубежом.

VK Pixel живой и работает, нагрузка средняя.

Что я делаю:

Пиксели подключаю через Google Tag Manager или Yandex Tag Manager, потому что один контейнер легче, чем 5 отдельных скриптов. Tag Manager сам грузит пиксели лениво и в правильном порядке.

Лишние пиксели (мёртвые UTM-кампании, неактивные платформы рекламы, забытые тесты) выпиливаю. На некоторых сайтах вижу 7-10 пикселей, из которых реально нужны 1-2.

Стек иконок виджетов с иконкой веса

Виджеты соцсетей: ВКонтакте, Telegram, Одноклассники

Кнопки Поделиться, виджеты сообществ, ленты постов. Эти штуки часто стоят в подвале или в боковой панели и тянут массу JS.

  • Виджет ВК с лентой группы: 100-200 КБ JS, плюс 20-30 запросов к серверам ВК.
  • Кнопки Поделиться от стандартных сервисов: 30-80 КБ в зависимости от количества кнопок.
  • Виджет канала Telegram: 50-100 КБ.

Что я делаю:

Кнопки Поделиться заменяю на простые ссылки share/twitter.com/intent/..., vk.com/share.php?url=.... Они работают одинаково, но без подключения чужого JS.

Виджеты лент сообществ либо убираю, либо подгружаю лениво при прокрутке (через IntersectionObserver). Чаще всего владелец сайта смотрит на эти ленты раз в год и не страдает от их отсутствия.

Виджеты отзывов: Яндекс, Google Reviews, Yell

Виджет отзывов Яндекса добавляет 80-150 КБ. Виджет от агрегаторов (Yell, 2GIS) сравним.

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

Если виджет в первом экране, перенесите его ниже или вытащите данные через API и отрисуйте свой блок: тогда нет внешних скриптов, и кеш CDN работает.

Кастомные карты: Яндекс Карты, 2ГИС, OSM

Карта это серьёзная нагрузка. Минимум 200-400 КБ JS плюс данные тайлов на лету.

  • Яндекс Карты API: 250-400 КБ JS, плюс тайлы по 30-50 КБ каждый.
  • 2GIS API: похожий объём.
  • Leaflet с тайлами OSM: 40 КБ JS Leaflet плюс тайлы.

Что я делаю:

Карты обязательно с ленивой подгрузкой через IntersectionObserver, не раньше, чем пользователь докрутил до раздела с картой.

Если на странице нужна только статичная картинка с локацией офиса, заменяю интерактивную карту на скриншот через Yandex Static Maps или генерирую один раз при сборке. Размер 50-100 КБ на картинку, никакой динамики, нагрузка нулевая.

Какие виджеты убирать без сожалений

Список из реальных аудитов:

  • addthis.com, sharethis.com, addtoany. Старые сервисы кнопок поделиться, тянут много кода и устарели. Замена на статические ссылки.
  • Старые счётчики LiveInternet, Rambler Top100. Если они стоят на всякий случай, удаляйте, ими никто не пользуется.
  • Hotjar и аналоги в РФ. Часто ставят в дополнение к Метрике с её Webvisor. Дублирование, можно отказаться.
  • Виджеты погоды и курсов валют. Если они не несут бизнес-смысла, убираем.
  • Виджет Калькулятор стоимости от сторонних сервисов. Заменить своим CSS-калькулятором без JS можно почти всегда.

Чек-лист, чтобы виджеты не убили скорость

  • Все сторонние скрипты подключены с async или defer.
  • Чат и виджеты обратной связи грузятся лениво (по событию или по таймеру).
  • Карта и тяжёлые виджеты грузятся через IntersectionObserver.
  • Под каждый виджет в DOM зарезервировано место, чтобы CLS не прыгал.
  • Подключения к сторонним доменам собраны в Tag Manager, а не разбросаны по шаблону.
  • Дубликаты счётчиков и пикселей удалены.
  • На странице не больше 4-5 сторонних доменов в waterfall.
  • В PageSpeed отчёте раздел Reduce the impact of third-party code не подсвечен красным.

Сценарии, которые я часто применяю

Лендинг с одним продуктом

Минимум: Метрика + JivoSite (отложенно) + кнопка обратного звонка через свою форму. Никаких пикселей, кроме одного целевого, никаких лишних виджетов. LCP под 2 секунды легко.

Корпоративный сайт услуг

Метрика, форма заявки своя, JivoSite или Битрикс24 чат отложенно. Карта офиса как статичная картинка. Виджет отзывов Яндекса лениво. На главной ничего не блокирует загрузку.

Интернет-магазин

Метрика, Tag Manager, пиксель целевой рекламной системы (ВК, Yandex Direct), коллтрекинг (Calltouch при необходимости), чат отложенно. Карта в разделе контактов лениво. Карточка товара без лишних виджетов, только то, что прямо помогает покупке.

Информационный сайт / блог

Метрика, кнопки Поделиться через статические ссылки, виджет канала Telegram внизу страницы лениво. Карты не нужны.

Виджеты подгружаются после основного контента

Замер до и после

Маленький эксперимент, который я делаю с каждым клиентом перед массовой переработкой:

  1. Замер PageSpeed до изменений: записываете LCP, INP, CLS, TBT.
  2. Включаете в DevTools Network > Throttling > Slow 4G и Performance > CPU > 4x slowdown.
  3. Замечаете, как ведёт себя страница: где задержки, где Long Tasks.
  4. Переносите все некритичные виджеты на ленивую загрузку.
  5. Удаляете дубликаты и неактивные пиксели.
  6. Замер PageSpeed после изменений.

На моих проектах типичный результат: LCP падает на 200-600 мс, INP с 350-450 мс уезжает к 150-200, TBT падает в 2-3 раза. Конверсия не страдает, потому что чат, формы, кнопки сохраняются, просто грузятся умнее.

Когда стоит делегировать

Аудит виджетов и переключение их на ленивую загрузку на типичном сайте занимает 4-8 часов. На большом коммерческом проекте с десятком виджетов и сложным Tag Manager до 16 часов с тестированием конверсий. Это входит в часовую ставку или в любой из тарифов на /#pricing. Если у вас плохой PageSpeed и есть подозрение, что виноваты виджеты, опишите ситуацию через /#contact.

Связанные материалы по скорости в /blog/category/speed/, там есть отдельные статьи про LCP, INP, CLS, шрифты и lazy load картинок.

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

Сколько весят виджеты на сайте

Первичный скрипт чата 70-120 КБ, догрузка при открытии ещё 200-400. Виджет карты доходит до мегабайта. Три-четыре виджета на странице легко перевешивают всё остальное содержимое.

Как измерить вклад конкретного виджета

Записать загрузку страницы в инструментах разработчика с виджетом и без. Разница по времени до отрисовки и по объёму скачанного и есть цена этого виджета.

Как оставить виджет и не потерять скорость

Грузить его по прокрутке, по времени или по клику на статичную кнопку. Посетителю разницы почти нет, а метрики страницы остаются на месте.

Какие виджеты убирать в первую очередь

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

Передайте техническую часть в надёжные руки.

Слежу за хостингом, бэкапами и обновлениями. Когда что-то пойдёт не так – звоните мне, не своему программисту, не в спортзал и не маме.

Короткие вопросы по теме

Все вопросы по теме "Скорость сайта"

Заявка

Обсудим задачу

Напишите имя и телефон, выберите удобный канал. Перезвоню или напишу в течение часа в рабочее время.

Куда удобнее ответить?