Отложенная загрузка счетчиков (Метрика, GTM, пиксель FB)

Леон
На сайте с 16.10.2023
Offline
5
438

Друзья, добрый день. Столкнулись с тем, что после добавления пачки скриптов аналитики в PageSpeed сильно просела оценка производительности, а вслед за ней и позиции\индексация. Сейчас занимаемся оптимизацией всего этого добра и возник вопрос. Если сделать отложенную загрузку этих скриптов для ботов и гостей, а для авторизованных оставить как есть, то повлияет ли это на SEO?

Данные будут чутка разными, поисковики могут воспринять это как негативный фактор или всё ок и можно так сделать? 

Быстрее всего отвечаю в телеграме - leon_skl
Vladimir
На сайте с 07.06.2004
Offline
536
#1
Леон :

Друзья, добрый день. Столкнулись с тем, что после добавления пачки скриптов аналитики в PageSpeed сильно просела оценка производительности, а вслед за ней и позиции\индексация. Сейчас занимаемся оптимизацией всего этого добра и возник вопрос. Если сделать отложенную загрузку этих скриптов для ботов и гостей, а для авторизованных оставить как есть, то повлияет ли это на SEO?

Данные будут чутка разными, поисковики могут воспринять это как негативный фактор или всё ок и можно так сделать? 

Посковики определяют время загрузки не по PageSpeed, а по пользователям

для метрики, звездочки номер

<!— Yandex.Metrika counter —>
<script type="text/javascript" >
  ( function () {
                'use strict';
 
                // Флаг, что Метрика уже загрузилась.
                var loadedMetrica = false,
                    // Ваш идентификатор сайта в Яндекс.Метрика.
                    metricaId     = *******,
                    // Переменная для хранения таймера.
                    timerId;
 
                // Для бота Яндекса грузим Метрику сразу без "отложки",
                // чтобы в панели Метрики были зелёные кружочки
                // при проверке корректности установки счётчика.
                if ( navigator.userAgent.indexOf( 'YandexMetrika' ) > -1 ) {
                    loadMetrica();
                } else {
                    // Подключаем Метрику, если юзер начал скроллить.
                    window.addEventListener( 'scroll', loadMetrica );
 
                    // Подключаем Метрику, если юзер коснулся экрана.
                    window.addEventListener( 'touchstart', loadMetrica );
 
                    // Подключаем Метрику, если юзер дернул мышкой.
                    document.addEventListener( 'mouseenter', loadMetrica );
 
                    // Подключаем Метрику, если юзер кликнул мышкой.
                    document.addEventListener( 'click', loadMetrica );
 
                    // Подключаем Метрику при полной загрузке DOM дерева,
                    // с "отложкой" в 1 секунду через setTimeout,
                    // если пользователь ничего вообще не делал (фоллбэк).
                    document.addEventListener( 'DOMContentLoaded', loadFallback );
                }
 
                function loadFallback() {
                    timerId = setTimeout( loadMetrica, 3000 );
                }
 
                function loadMetrica( e ) {
 
                    // Пишем отладку в консоль браузера.
                    if ( e && e.type ) {
                        console.log( e.type );
                    } else {
                        console.log( 'DOMContentLoaded' );
                    }
 
                    // Если флаг загрузки Метрики отмечен,
                    // то ничего более не делаем.
                    if ( loadedMetrica ) {
                        return;
                    }
 
                    (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://cdn.jsdelivr.net/npm/yandex-metrica-watch/tag.js", "ym");
                    ym( metricaId, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:2000 });
 
                    // Отмечаем флаг, что Метрика загрузилась,
                    // чтобы не загружать её повторно при других
                    // событиях пользователя и старте фоллбэка.
                    loadedMetrica = true;
 
                    // Очищаем таймер, чтобы избежать лишних утечек памяти.
                    clearTimeout( timerId );
 
                    // Отключаем всех наших слушателей от всех событий,
                    // чтобы избежать утечек памяти.
                    window.removeEventListener( 'scroll', loadMetrica );
                    window.removeEventListener( 'touchstart', loadMetrica );
                    document.removeEventListener( 'mouseenter', loadMetrica );
                    document.removeEventListener( 'click', loadMetrica );
                    document.removeEventListener( 'DOMContentLoaded', loadFallback );
                }
            } )()

</script>
<!-- /Yandex.Metrika counter -->

Аэройога ( https://vk.com/aeroyogadom ) Йога в гамаках ( https://vk.com/aero_yoga ) Аэройога обучение ( https://aeroyoga.ru ) и просто фото ( https://weandworld.com )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий