Главная / База знаний / Скорость и Core Web Vitals / Я.Метрика и GA тормозят сайт
База знаний

Я.Метрика и GA тормозят сайт

Аналитика добавляет 200-500ms к загрузке. Async, defer, отложенная инициализация.

Скорость и Core Web Vitals · 3 мин чтения

Симптом

Причина

Яндекс.Метрика подключается как обычный <script> без атрибутов async/defer.
Браузер загружает и синхронно исполняет скрипт до того, как продолжит парсинг HTML, что блокирует рендеринг страницы.
Кроме того, скрипт сразу начинает собирать данные о пользователе, создавая несколько запросов к серверам Яндекса. Это увеличивает сетевой трафик и задержку, особенно при медленном соединении.

Как проверить

  1. Проверьте порядок загрузки скрипта
    ```html

`` Если атрибутыasyncилиdefer` отсутствуют – это потенциальная причина.

  1. Измерьте влияние скрипта в DevTools
    - Откройте DevTools → Performance.
    - Запустите запись и откройте страницу.
    - Найдите событие load для tag.js и посмотрите, сколько времени занимает его выполнение.

  2. Проверьте сетевой трафик
    - В DevTools → Network откройте вкладку XHR.
    - Посмотрите, сколько запросов отправляется сразу после загрузки скрипта (обычно 2–3).

  3. Сравните скорость с отключённой Метрикой
    - Отключите скрипт в коде (комментарием) и запустите Performance снова.
    - Сравните FCP и TTI.

Решение

1. Добавить атрибуты async и defer

<script async defer src="https://mc.yandex.ru/metrika/tag.js"></script>

2. Отложенная инициализация

Если вы хотите, чтобы Метрика запускалась только после полной загрузки страницы, используйте defer и вызов ym внутри события DOMContentLoaded:

<script async src="https://mc.yandex.ru/metrika/tag.js"></script>
<script>
  document.addEventListener('DOMContentLoaded', function () {
    ym(12345678, 'init', {
      clickmap:true,
      trackLinks:true,
      accurateTrackBounce:true,
      webvisor:true
    });
  });
</script>

3. Lazy‑load скрипт

Можно загрузить скрипт только при первом взаимодействии пользователя:

<script>
  function loadYandexMetrika() {
    var script = document.createElement('script');
    script.src = 'https://mc.yandex.ru/metrika/tag.js';
    script.async = true;
    script.onload = function () {
      ym(12345678, 'init', {
        clickmap:true,
        trackLinks:true,
        accurateTrackBounce:true,
        webvisor:true
      });
    };
    document.head.appendChild(script);
  }

  // Загрузить после первого клика
  document.addEventListener('click', loadYandexMetrika, { once: true });
</script>

4. Использовать data- атрибуты для конфигурации

Если вы используете ym через атрибуты, можно задать параметры в data-:

<script async src="https://mc.yandex.ru/metrika/tag.js"></script>
<script>
  ym(12345678, 'init', {
    clickmap: true,
    trackLinks: true,
    accurateTrackBounce: true,
    webvisor: true
  });
</script>

5. Проверка после изменений

Связанные

SEO КП · нужна помощь?

Не хотите разбираться сами?

Запустите технический аудит сайта за 5 минут — получите PDF-отчёт с разбором всех 64 параметров и конкретными точками роста. Или закажите комплексное SEO-продвижение сайта — починим всё это и возьмём на себя дальнейшую оптимизацию.

Запустить аудит за 199 ₽ Узнать про продвижение →