现在好多团队做优化,盯着Core Web Vitals的三个数往满分凑,为了把LCP压到2秒以内,把页面上所有非核心的交互都延后加载。结果呢?用户点个按钮,等了1秒才弹反馈,以为页面卡了,直接关了。
真的见过太多这种本末倒置的事了。你把所有交互都挤到浏览器空闲线程去跑,看着指标好看,实际用起来的卡顿感根本测不出来。上次跟一个做电商的前端聊,他们之前为了压CLS,把页面上所有推荐位的高度都写死了,哪怕内容没加载出来也留好位置。结果呢?推荐位的内容加载出来之后,因为高度固定,文字被挤得折行,图片显示不全,用户点进去的转化率直接掉了两个点。后来他们改了策略,不追求CLS的满分,只要加载完成后不跳变就行,哪怕留一点加载占位,也比硬撑着固定高度强。
Core Web Vitals指标真实体验偏差对比图
很多人觉得性能优化就是对着指标打靶,差多少补多少。根本不是。你得蹲在真实用户的视角上去看,是不是点了按钮之后真的有即时反馈,是不是滑到下面的时候图片真的是刚好加载出来,而不是你为了压LCP把首屏的图片压到模糊到看不清。我上次见一个页面为了快,把首屏的产品图压到了10KB,放大之后全是马赛克,这哪叫优化,这叫自欺欺人。