2017-04-10 121 views
0

我可以为Google分析找到一个新的(至少对我来说是新的)代码。如果我明白,它会异步加载(至少在代码中有单词异步)。我在我的网站的一个页面中使用了该代码,Google Page Speed仍然说:利用浏览器缓存http://www.google-analytics.com/ga.js利用浏览器缓存Google Analytics

这是跟踪Google Analytics的最后一个和最佳代码吗?使用Google Analytics并在Page Speed中获得良好回应的最佳方式是什么?

(你必须通过自己的代码来替代UA-XXXXX-Y)

https://developers.google.com/analytics/devguides/collection/analyticsjs/

<!-- Google Analytics --> 
<script> 
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 

ga('create', 'UA-XXXXX-Y', 'auto'); 
ga('send', 'pageview'); 
</script> 
<!-- End Google Analytics --> 

回答

1

在这种情况下,它说,设置缓存过期头不够长。如果您转到https://www.google-analytics.com/ga.js并使用检查员来回复,则会看到expires标头设置为距离请求两个小时。显然,由于这是由Google托管的,您无法控制这一点。

您需要做的是复制Google AnalyticsJS文件并自行托管,然后您可以将缓存过期设置为任何您想要的。如果你决定这样做,建立一个过程来监视谷歌文件的变化可能是一个好主意,所以你不会错过任何东西。

+0

感谢您的解释以简单的方式。如果我明白,在本地托管它将解决页面速度警告,但Google服务器托管仍然是最佳解决方案。 – Nrc

+0

是的,Google不会在搜索结果中让你失望,因为在页面速度测试中少了一个点,这也不会影响你的用户,所以我只能按照个人的意愿离开它。如果你确实想要摆脱那个警告,你可以按照我的回答。 – maembe

1

嵌入谷歌分析:修正“杠杆浏览器缓存”在nginx.conf警告上的Nginx

<html> 

    <!-- ... --> 

    <!-- Embed analytics.js as local file --> 
    <script src="/analytics.js"></script> 
</html> 

server { 

    ### ... 

    location = /analytics.js { 
     # Proxy to google-analytics.com 
     proxy_pass https://www.google-analytics.com; 

     # Custom expires time 
     expires 1y; 
    } 

    ### ... 
} 
+0

我不明白你的答案。请以简单明了的方式解释它。 – Nrc

+0

@Nrc当你需要''利用浏览器缓存''analytics.js'文件时,你可以在本地存储文件,并使用nginx的proxy_pass将它映射到真实的文件,请检查这个... http://nginx.org /en/docs/http/ngx_http_proxy_module.html#proxy_pass 无论如何,这是我的解决方案。 – dyaa