我正在追求达到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网站。它将不会显示杠杆浏览器缓存谷歌分析的警告。这个解决方案的唯一问题是,定期手动更新分析脚本。
在谷歌文档中,他们已经确定了一个页面速度过滤器,将异步加载脚本:
ModPagespeedEnableFilters make_google_analytics_async
您可以在这里找到文档:https://developers.google.com/speed/pagespeed/module/filter-make-google-analytics-async
需要强调的一点是,过滤器被认为是高风险的。从文档中可以看出:
make_google_analytics_async过滤器是实验性的,还没有经过广泛的实际测试。重写会导致错误的一种情况是,如果过滤器错过了对返回值的谷歌Analytics方法的调用。如果找到这样的方法,重写将被跳过。但是,如果取消资格的方法在加载之前出现,在诸如“onclick”之类的属性中,或者在外部资源中,则会错过它们。这些病例预计是罕见的。
根据你对谷歌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请求。
但是,如果你需要更详细的内容,那就不值得你这么做了。