如果您在过去的一个月里将您的URL插入到谷歌的PageSpeed Insights中,您会注意到它看起来有点不同。以前你会收到一个简单的优化分数,现在你的分数被平台划分为两个分数,“页面速度”和“优化”。
这些变化是2018年7月9日发布的新版速度更新的结果。现在,谷歌不再依赖于实验室数据,而是使用现场数据来测量现场速度。通过从Chrome用户体验报告(CrUX)数据库中提取信息,谷歌能够识别用户找到你的网站的平均速度。
这意味着,即使你的网站在你这一端快如闪电,使用旧智能手机的访问者可能会遇到延迟——这可能会影响你的速度得分,甚至可能影响你网站的排名。如果还没有,现在是时候在速度优化上加倍努力了。
我将对谷歌的九页洞察规则进行分解,列出它们的最佳实践建议,然后深入探讨一些可以进一步优化站点速度的高级步骤。
1. 避免登陆页重定向
为什么它很重要。重定向延迟页面渲染,降低移动站点体验。每次重定向都会添加一个额外的超文本传输协议(HTTP)请求-响应往返,有时还会添加许多额外的往返,以执行域名系统(DNS)查找、传输控制协议(TCP)握手和传输层安全(TLS)协商。
谷歌建议。创建一个响应网站,不超过一个重定向从一个给定的URL到最终登陆页。
先进的建议。尽量避免完全重定向。但是,如果您需要使用重定向,请根据您的需要选择重定向的类型:
301对302重定向。当您删除旧内容并重定向到新内容时,或者当您没有可重定向用户到的备用页面时,请使用永久重定向(301)。在进行短期更改时,比如有限的时间供应,或者将用户重定向到特定于设备的url时,使用临时重定向(302)。别担心;你不会失去链接权益的任何方式!
JavaScript与HTTP重定向。JavaScript和HTTP重定向的主要区别在于HTTP重定向会导致服务器端延迟,而基于JavaScript的重定向会降低客户端速度(它们需要下载页面,然后在触发重定向之前解析和执行JavaScript)。Googlebot支持两种类型的重定向。
2. 启用压缩
为什么它很重要。减少内容的大小可以缩短下载资源的时间,减少客户端对数据的使用,并改善页面的呈现时间。
谷歌建议。Gzip所有可压缩内容。您可以通过HTML5 Boilerplate项目找到大多数服务器的示例配置文件。
先进的建议
优先删除不必要的数据。压缩很好,但是优化最好的资源是没有发送的资源。定期检查站点资源,并在压缩前消除不必要的数据,以确保最佳结果。
考虑Gzip编码的替代方案。如果您想使用除Gzip之外的其他工具,那么Brotli是一种无损压缩算法,它结合了LZ77算法的现代变体、Huffman编码和二阶上下文建模。所有现代浏览器都支持它,它的压缩比可以与目前可用的最佳通用压缩方法相媲美。Brotli的压缩速度非常慢,解压速度非常快,所以您应该在最高级别使用Brotli+Gzip预压缩静态资产,在1-4级使用Brotli压缩动态HTML。
对不同的资源使用不同的压缩技术。压缩可以应用于HTML代码以及页面所需的各种数字资产,但您需要对web字体、图像、CSS等应用不同的技术和算法,以获得最佳结果。例如,如果您正在使用HTTP/2,那么对HTTP响应头使用HPACK压缩将减少不必要的开销。
3.改善服务器响应时间
为什么它很重要。快速的服务器响应时间是必要的;53%的移动用户会在没有在3秒内加载的情况下放弃页面。
如果您想避免中央处理单元(CPU)短缺、缓慢的应用程序逻辑、缓慢的数据库查询、缓慢的路由、缓慢的框架和缓慢的库,高质量的网站开发是必不可少的。
谷歌建议。服务器响应时间应该始终低于200ms。
先进的建议。
度量服务器响应时间和真实用户度量。使用WebPageTest.org、Pingdom、GTmetrix或Chrome开发工具来找出现有的性能问题,并找出是什么减慢了你的内容传递过程。请记住,即使您的测试显示站点速度<200ms,使用慢3G的老一代Android的用户可能会体验到400ms RTT和400kbps的传输速度。这个是负数