Yandex metrika标签会减慢网站速度,使Google页面速​​度isights报告

时间:2019-12-17 20:49:25

标签: pagespeed pagespeed-insights

因此,在我所有的网页上,我都有这段代码,这些代码由Yandex metrika用于分析。根据Google的说法,此脚本正在减慢我的页面的速度,并且需要对其加载方式进行一些更改,以使其不呈现渲染,TTI输入阻止时间,FID第一输入延迟阻止,第一内容阻止。

<script data-cfasync="false" type="text/javascript">
   (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(XXXXXXXX, "init", {
        clickmap:true,
        trackLinks:true,
        accurateTrackBounce:true,
        webvisor:true
   });
</script>

Googles页面速度报告以下内容 https://developers.google.com/speed/pagespeed/insights/

Yandex metrika script tag slow optimization main thread blocking reduce the impact of third party code

Yandex metrika main tag slow reduce javascript execution time script evaluation cpu time

为了解决此问题,我可以将Yandex metrika javascript修改为什么?

4 个答案:

答案 0 :(得分:1)

恐怕您没有太多选择,因为它是第三方脚本。

改善得分和缩短加载时间的一种方法是将对函数的调用包装在setTimeout集中足够长的时间,以延迟加载脚本,直到加载基本内容为止。

<script data-cfasync="false" type="text/javascript">
  setTimeout(function(){
       (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(XXXXXXXX, "init", {
            clickmap:true,
            trackLinks:true,
            accurateTrackBounce:true,
            webvisor:true
       });
    }, 5000); //set this as high as you can without ruining your stats.
</script>

这绝对是一种解决方法,如果您可以找到一个库,我建议您改用另一个不那么

答案 1 :(得分:0)

<script data-cfasync="false" type="text/javascript">
(function(){
var a = function() {try{return !!window.addEventListener} catch(e) {return !1} },
b = function(b, c) {a() ? document.addEventListener("load", b, c) : document.attachEvent("onreadystatechange", b)};
b(function(){

   (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(XXXXXXXX, "init", {
        clickmap:true,
        trackLinks:true,
        accurateTrackBounce:true,
        webvisor:true
   });

}, false);
})();
</script>

答案 2 :(得分:0)

一种选择是使用旧的Yandex Metrika代码(new Ya.Metrika...)。 如果您在Metrika的高级设置中设置了复选框,则可以查看旧代码。旧代码有一定的局限性,但更小,速度要快几倍。

答案 3 :(得分:0)

禁用点击地图和webvisor可能会有所帮助。

相关问题