2017-04-10 122 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