Как ускорить скорость загрузки сайта, когда Яндекс метрика и другие аналитики тянут сайт вниз?
Часто в тестах встречается ошибка “Устраните ресурсы, блокирующие отображение.” Яндекс метрика и другие сторонние ресурсы могут этому способствовать. Для решения проблемы попробуем отложить яндекс метрику.
Ниже выкладываю пример кода, который “откладывает” загрузку метрики. Сайт загрузится быстро, и как только пользователь начнет скроллить, через секундный таймаут начнется загрузка дополнительных ресурсов. Тесты станут в порядке, а метрика будет работать исправно на всех устройствах.
var fired = false;
window.addEventListener('scroll', () => {
if (fired === false) {
fired = true;
setTimeout(() => {
// Сюда вставляете метрики без тегов <script>
}, 1000)
}
});
Пример вставки кода с Яндекс Метрикой и включенным вебвизором. Вместо “ХХХХХХХ” вставьте свой номер счетчика Яндекс Метрики.
<script>
var fired = false;
window.addEventListener('scroll', () => {
if (fired === false) {
fired = true;
setTimeout(() => {
(function(m, e, t, r, i, k, a) {
m[i] = m[i] || function() {
(m[i].a = m[i].a || []).push(arguments)
};
m[i].l = 1 * new Date();
k = e.createElement(t), a = e.getElementsByTagName(t)[0], k.async = 1, k.src = r, a.parentNode.insertBefore(k, a)
})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(ХХХХХХХ, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
}, 1000)
}
});
</script>