【问题标题】:Leverage browser caching Google Analytics利用浏览器缓存 Google Analytics
【发布时间】:2017-09-05 15:22:33
【问题描述】:

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

这是跟踪您的 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 -->

【问题讨论】:

    标签: google-analytics pagespeed


    【解决方案1】:

    在这种情况下,它表示缓存过期标头设置的时间不够长。如果您转到https://www.google-analytics.com/ga.js 并使用检查器进行响应,您会看到 expires 标头设置为请求后两个小时。显然,由于这是由 Google 托管的,因此您无法控制。

    您需要做的是复制 Google Analytics js 文件并自己托管它,然后您可以将缓存过期设置为您想要的任何内容。如果您决定这样做,最好设置一个流程来监视对 google 文件的更改,这样您就不会错过任何内容。

    【讨论】:

    • 感谢您的简单解释。如果我理解,在本地托管会解决页面速度警告,但在 Google 服务器中托管仍然是最好的解决方案。
    • 是的,Google 不会因为您在页面速度测试器中少一分而在搜索结果中打倒您,这实际上也不会影响您的用户,所以我会保持原样.如果您真的决定要摆脱该警告,则可以按照我的回答进行操作。
    【解决方案2】:

    嵌入式 Google Analytics:修复 Nginx 上的“利用浏览器缓存”警告

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

    在你的 nginx.conf 中

    server {
    
        ### ...
    
        location = /analytics.js {
            # Proxy to google-analytics.com
            proxy_pass https://www.google-analytics.com;
    
            # Custom expires time
            expires 1y;
        }
    
        ### ...
    }
    

    【讨论】:

    • 我不明白你的回答。请用简单明了的方式解释一下。
    • @Nrc 当您需要 Leverage Browser Caching 获取 analytics.js 文件时,您可以将文件存储在本地并使用 nginx 的 proxy_pass 将其映射到真实的实时文件,检查此 ...nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass无论如何都是我的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 2015-05-19
    相关资源
    最近更新 更多