早上爬起来一看,博客主题加载慢得要死,用户反馈全是"刷新半天才出来"、"手机点开卡成狗"。我寻思这不行,抄起键盘就开始折腾。
先查了查老底子
打开Chrome开发者工具看加载瀑布流,眼珠子差点瞪出来:俩破css文件加载居然耗了3.7秒!代码里还躺着一堆三年前就用不着的样式残骸,简直跟仓库堆满破铜烂铁一个德性。
动手收拾CSS
打开Sublime就开始大扫除:
1. 把俩css硬生生揉成一份,上传的时候手抖了下,差点把测试版本传上生产环境。
2. 抄起PurgeCSS工具包,对着页面元素挨个筛查,直接薅掉三成文件体积。
3. 颜色值全部替换成变量名,改主题色再也不用全局搜索替换了。
工具跑完一看,css大小从174KB掉到89KB,手机打开肉眼可见利索多了。
收拾图片烂摊子
以前犯懒直接丢原图,这回学乖了:
- 用Squoosh把png全转成webp,40KB的图直接压到8KB
- 给所有img标签加上loading="lazy",首屏加载瞬间快了半拍
- 背景大图改成css渐变,有个头图愣是砍掉了400KB流量
跟JavaScript死磕
发现评论区插件拖慢整个页面:
1. 给所有非核心js加上async,页面骨架先出来再加载花里胡哨的
2. 埋点脚本全部挪到body最底下
3. 动态加载字体文件,再也不用等字体加载完才显示文字
改完顺手点了根烟,测试发现手机端加载速度提升了四成。
试水效果
掏出三台设备同时刷新:
- 安卓千元机从白屏到可操作只要2.3秒(原先要5秒多)
- 老iPad滚动流畅度跟抹了油似的
- PC端页面评分从58分飙升到92分
手机端用户停留时间直接翻倍,最逗的是评论里有人问是不是换了服务器。
折腾完这趟活儿,最大的感触就是:网站优化就跟收拾老破屋一个道理。垃圾代码清了,零碎文件归置了,加载流程理理顺,哪怕用着老代码框架也能跑得嗖嗖的!下次谁再跟我说网页卡顿,我就把这套连环拳糊他脸上。