图片压缩是第一步
打开一个网页,最先看到的是图片。如果首页放了几张未经处理的大图,用户等得手机都快没电了,页面还没出来。实际测试中,一张3MB的轮播图换成压缩后的WebP格式,体积直接降到300KB,加载时间从4秒缩到0.8秒。用ImageOptim、TinyPNG这类工具批量处理,几乎零成本就能见效。
减少HTTP请求数量
每个图标、每张背景图、每段外链JS,都会发起一次请求。一个页面有50个资源,浏览器就得来回跑50趟。把多个小图标合并成雪碧图,或者改用字体图标或SVG Sprite,能大幅减少请求数。比如把导航栏的分享按钮、点赞图标打包成一个SVG文件,一次加载,反复使用。
开启Gzip压缩
服务器传HTML、CSS、JS时,默认是“原样打包”。在Nginx配置里加一行:
gzip on;<br>gzip_types text/plain text/css application/json application/javascript text/xml application/xml;文本类资源体积通常能压掉60%以上。相当于原本10M的包裹,现在只发3M,快递自然更快。延迟加载非首屏内容
用户打开页面时,根本看不到底部的商品列表或评论区。这些内容没必要一开始就加载。给img标签加上loading="lazy"属性,或者用Intersection Observer监听滚动,等用户快滑到那块区域再加载资源。
<img src="product.jpg" loading="lazy" alt="商品图">实测某资讯站启用懒加载后,首屏完成时间平均提前1.3秒。使用CDN分发静态资源
你的服务器在北京,但广东用户访问时,数据要绕一大圈。把JS、CSS、图片扔到CDN上,系统自动选择最近的节点响应。就像连锁便利店,不管你在哪个小区,出门拐角就能买到水。常见CDN服务商如Cloudflare、阿里云CDN,接入后全国访问速度更均衡。
精简第三方脚本
为了统计、广告、客服,很多网站塞了一堆第三方代码。某个电商页引入了微信分享、百度统计、友盟埋点、在线客服四个外链脚本,总共阻塞了2.4秒。评估每个脚本的必要性,非核心的改成异步加载,或者延迟到页面空闲时再执行。
<script src="analytics.js" async defer></script>利用浏览器缓存
用户第二次访问时,别再让他重复下载同样的文件。设置Cache-Control头,告诉浏览器“这个JS一天内不用重下”。
location ~* \.(js|css|png)$ {<br> expires 1d;<br> add_header Cache-Control "public, immutable";<br>}回头客打开速度会明显变快,尤其是常驻用户的产品页或后台系统。