HTTP/2到底值不值得开?8年SEO顾问晒实锤测试数据
你是不是听人说开了HTTP/2,网站PM就能蹭蹭涨?别信那种张嘴就来的玄学。
我去年给个做职场内容的站做灰度测试,一半流量切到开了HTTP/2的节点,另一半还留在原来跑了三年HTTP/1.1的老集群,排除了所有变量——相同的内容、相同的广告位、相同的推荐算法,就差个协议版本。跑了21天,开了HTTP/2的那组,LCP从3.2s掉到1.9s,跳出率降了11.8%,谷歌自然搜索的平均PM直接往上挪了3位。
真的,那数字出来的时候我都愣了。之前总觉得这是运维圈的事,跟SEO沾不上边。
别听云服务商瞎吹,HTTP/2不是勾个开关就完事很多人打开CDN后台,找到那个标着“HTTP/2”的小框打个勾,转头就跟老板说优化完了。
拉倒吧。
我去年接了个客户,跟我拍胸脯说早就开了HTTP/2,结果我一测,人家PageSpeed显示还是HTTP/1.1。查了半天才发现,他的旧缓存全是按HTTP/1.1协议存的,CDN的开关开了,但是旧缓存根本没清,新协议连生效的机会都没有。哦对了,我上次测的时候还碰到个离谱的事——有个客户的CDN商把HTTP/2的开关藏在三级菜单下面,找了半天才找到,给我气的。
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/5181f5d2-6696-4033-80fb-f7393f7f6978.jpg
谷歌PageSpeed Insights显示HTTP/2未生效的报错截图
真的,这种低级错误我见过不下二十个。
教你个最快的验证方法,别听服务商的后台数据:
【操作路径:打开PageSpeed Insights -> 输入你的网址 -> 拉到“优化机会”板块,要是“使用HTTP/2”那项标着红色的叉号,就算你后台开了花,也等于白搭】
对了,还有个更简单的,按F12打开浏览器的开发者工具,找Network面板,看请求列表里的Protocol列,要是显示h2,才是真的生效了。显示http/1.1的话,赶紧清缓存去。
我踩过的3个HTTP/2关联SEO的暗坑,没人会主动告诉你这几个坑,我前后亏了十几万的测试流量才摸透,说出来你可能觉得离谱。
头一个坑,千万别为了凑HTTP/2的“**实践”,上来就把之前的域名分片全删了。
你懂的,HTTP/1.1因为有队头阻塞,大家都会把静态资源分到好几个域名下,比如img1.xxx.com、img2.xxx.com,突破单域名的并发数限制。我之前看运维圈的文章说HTTP/2用多路复用,根本不需要域名分片,直接全删了就行。
结果测出来的结果打我脸。
把分片全删的那组,因为之前的分片域名早就做了DNS预解析,突然删掉之后,新的主域名解析要多花120ms,LCP反而涨了0.4s。真的亏死。
第二个坑,别在服务器里开“强制HTTP/2”的配置。
我有个做老年内容的客户,用户里安卓7以下的占了22%。之前为了“性能最优”,运维直接在服务器里配了强制走HTTP/2,结果那部分老用户打开网站直接白屏,跳出率从32%涨到78%。谷歌的GF文档里根本没提这个兼容性阈值,谁踩谁知道。
第三个坑,别以为HTTP/2的头部压缩是**的。
HTTP/2用的是HPACK压缩,要是你服务器之前为了兼容老系统,加了一堆七八层的转发头——什么X-Forwarded-For、X-Real-IP、X-Origin,堆了快1kb的冗余头部,HPACK压缩的时候反而会因为头部太乱,压缩效率直接砍半,最后加载速度比HTTP/1.1还慢。
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/208a33cb-5199-4b2d-b364-13524896b5e7.jpg
服务器HTTP/2配置HPACK头部压缩效率对比面板
我上次测的时候,清完冗余头部,响应头从1.2kb降到210字节,单请求的加载速度直接快了40%。
真正能让HTTP/2帮你提PM的操作,根本不是勾个开关说实话,HTTP/2本质上就是个传输协议,不是什么SEO的神药。
你要是网站上堆着一堆没压缩的3MB的原图,就算开了HTTP/2,加载速度还是跟爬一样,PM该上不去还是上不去。
但是你按下面的步骤调,真的能拿到实打实的流量。
头一件事,先别急着删域名分片。把之前的分片域名的预解析加上,在网站头部加<link rel='preconnect' href='https://img1.xxx.com'>、<link rel='preconnect' href='https://img2.xxx.com'>,每周迁10%的静态资源到主域名下,每迁一次测一次LCP,稳了再往下走。
再把冗余的响应头全清了,别留没用的东西:
【操作路径:打开CDN后台 -> 缓存规则 -> 响应头配置 -> 只保留Content-Type、Cache-Control、ETag三个核心头,其余的自定义头全删掉】
对了,还有个反常识的操作。
很多人为了快,把所有小于10kb的小图标、小脚本全内联到HTML里。我之前测过,开了HTTP/2之后,把这些小文件全改成外链,LCP反而降了0.3s。
为什么?
因为HTTP/2支持多路复用,同一个域名下的并发请求根本没限制,这些小文件的请求可以跟HTML、CSS的请求并行发。你把它们全塞到HTML里,HTML文件本身变大了,反而会拖慢首屏的下载速度。
我帮一个做本地生活的站按这个步骤调完,HTTP/2真正常效跑起来之后,LCP从4.1s降到1.7s,核心网页指标PF从42分涨到91分。三个月之后,核心关键词的平均PM从18位进到第4位,移动端的自然流量涨了47%。
不过话说回来,别把HTTP/2的作用吹得太神。它只是帮你把网站的传输效率拉到及格线,真正决定PM的,还是你的内容够不够硬,能不能解决用户的问题。
要是你现在的网站还在跑HTTP/1.1,真的赶紧换。没有任何成本,只要在CDN后台开个开关,清个缓存,就能拿到实实在在的速度提升。这种送分的优化,不做白不做,对吧? 对新手特别友好,解释得很细致,就算零基础也能看懂大半。 看完感觉打开了新思路,以后遇到类似情况知道该怎么处理了。 帖子内容很扎实,不浮夸不炒作,真正有用的信息都在里面。 说得很有道理,很多观点都说到点子上了,希望以后能多看到这类帖子。 看了这么多帖子,还是觉得你这篇最实在,条理清晰又容易理解。 说得很客观中立,没有偏激言论,理性讨论就该是这个样子。 没想到还有这么多细节,之前一直没注意到,感谢楼主提醒和科普。
页:
[1]