我正在追求达到100/100的PageSpeed,我几乎在那里。我试图找到一个很好的解决方案来缓存谷歌分析。

这是我得到的信息:

利用浏览器缓存 在静态资源的HTTP报头中设置过期日期或最大年龄指示浏览器从本地磁盘加载以前下载的资源,而不是通过网络。 利用浏览器缓存以下可缓存资源: http://www.google-analytics.com/analytics.js(2小时)

我找到的唯一解决方案是2012年的,我不认为这是一个好的解决方案。本质上,您复制GA代码并自己托管它。然后运行cron作业,每天重新检查谷歌一次,以获取最新的GA代码并替换它。

http://diywpblog.com/leverage-browser-cache-optimize-google-analytics/

我还能做什么来达到100/100,同时也使用谷歌分析?

谢谢你!


当前回答

在新选项卡中打开https://www.google-analytics.com/analytics.js文件,复制所有代码。

现在在你的网页目录中创建一个文件夹,重命名为google-analytics。

在同一个文件夹中创建一个文本文件,并粘贴上面复制的所有代码。

将文件重命名为ga-local.js

现在更改URL,在谷歌分析代码中调用本地托管的分析脚本文件。它看起来像这样,即https://domain.xyz/google-analytics/ga.js

最后,把你的新谷歌分析代码放在你的网页的页脚。

你可以出发了。现在检查你的谷歌PageSpeed Insights网站。它将不会显示杠杆浏览器缓存谷歌分析的警告。这个解决方案的唯一问题是,定期手动更新分析脚本。

其他回答

存储local analysis .js,但谷歌不建议这样做: https://support.google.com/analytics/answer/1032389?hl=en

不建议,因为谷歌可以在他们想要的时候更新脚本,所以只要做一个脚本,每周下载分析javascript,你就不会有麻烦!

顺便说一下,这个解决方案防止adblock从阻塞谷歌分析脚本

谷歌警告不要使用分析脚本的本地副本。 然而,如果你正在这样做,你可能会想要使用本地副本的插件和调试脚本。

关于主动缓存的第二个问题是,您将从缓存的页面获得点击——这些页面可能已经从站点中更改或删除了。

根据你对谷歌Analytics数据的使用,如果你想要基本信息(比如访问量、UI交互),你可能根本不需要包含Analytics .js,但仍然可以在GA中收集数据。

一种选择可能是在缓存的脚本中使用度量协议。 谷歌分析:测量协议概述

当您显式地将传输方法设置为image时,您可以看到GA如何构造自己的图像信标。

ga('set', 'transport', 'image');

https://www.google-analytics.com/r/collect
  ?v={protocol-version}
  &tid={tracking-id}
  &cid={client-id}
  &t={hit-type}
  &dl={location}

您可以使用所需的有效负载创建自己的GET或POST请求。

但是,如果你需要更详细的内容,那就不值得你这么做了。

试一下这只是插入之前

<script async='async' src='https://cdn.jsdelivr.net/ga-lite/latest/ga-lite.min.js'></script> <script>var galite=galite||{};galite.UA="xx-xxxxxxx-x";</script>

请将xx-xxxxxxx-x更改为您的代码,请检查到此处实现http://www.gee.web.id/2016/11/how-to-leverage-browser-caching-for-google-analitycs.html

2020年,Page Speed Insights用户代理为:移动端“Chrome-Lighthouse”和桌面端“谷歌Page Speed Insights”。

<?php if (!isset($_SERVER['HTTP_USER_AGENT']) || stripos($_SERVER['HTTP_USER_AGENT'], 'Chrome-Lighthouse') === false  || stripos($_SERVER['HTTP_USER_AGENT'], 'Google Page Speed Insights') === false): ?>
// your google analytics code and other external script you want to hide from PageSpeed Insights here
<?php endif; ?>