Задать вопрос
  • Как ускорить скорость загрузки сайта, метрика и движовосайт тянут вниз?

    @Alex_Terner
    Мой вариант на основе прочитанного в этой теме. Срабатывает после клика, движения мыши или скрола.
    <!-- Скрипт с отложенной загрузкой Метрики и чата -->
    <script>
    document.addEventListener('DOMContentLoaded', function() {
        let fired = false;
    
        function loadHeavyScripts() {
            if (fired) return;
            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();
                    for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
                    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', {webvisor:true, clickmap:true, ecommerce:"dataLayer", accurateTrackBounce:true, trackLinks:true});
    
    
                // === reCAPTCHA v3 ===
                var recaptchaScript = document.createElement('script');
                recaptchaScript.src = 'https://www.google.com/recaptcha/api.js?render=*****************';
                recaptchaScript.async = true;
                document.body.appendChild(recaptchaScript);
    
                // -- Чат битрикс  --
                (function(w,d,u){
                    var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/60000|0);
                    var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
                })(window,document,'https://***************');
                
            }, 1000);
        }
    
        window.addEventListener('scroll', loadHeavyScripts, { once: true });
        window.addEventListener('mousemove', loadHeavyScripts, { once: true });
        window.addEventListener('touchstart', loadHeavyScripts, { once: true });
    });
    </script>
    
    <!-- yandex watch -->
    <noscript><div><img src="https://mc.yandex.ru/watch/62******" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
    </body>
    Ответ написан
    Комментировать