图片太大拖慢页面
打开网页等半天,转圈圈看到心烦。这种情况十有八九是图片没处理好。比如设计师给的原图动不动就几MB,直接扔到网页里,手机用户流量都要烧冒烟。
解决办法很简单:压缩再上传。用工具像 TinyPNG 或 Squoosh 把图片体积压下去,肉眼几乎看不出画质差别,但加载速度能快一倍。另外记得用 WebP 格式替代 JPG 和 PNG,同样清晰,文件更小。
JS 和 CSS 别一股脑全塞头部
很多人习惯把所有 JS 文件放在 <head> 里,结果浏览器卡着不渲染页面,等脚本下载完才动一下。正确的做法是,非关键的 JS 加上 defer 或 async 属性。
<script src="analytics.js" async></script>
<script src="theme.js" defer></script>CSS 也一样,首屏用的样式内联,剩下的异步加载,别让它们挡住页面显示。
开启 Gzip 压缩,省带宽又提速
服务器传文件就像寄快递,打包压缩后再发,收件人拆包就行。Gzip 就是这个打包工具。开启后,HTML、CSS、JS 文件体积能缩小 70% 以上。
Nginx 配置加上这几行就行:
gzip on;
gzip_types text/plain application/javascript text/css;
gzip_min_length 1024;Apache 用户在 .htaccess 里加对应指令也能开,具体搜一下你用的服务器类型就行。
善用浏览器缓存,老访客秒开
用户第一次访问要下资源,第二次还得重新下?太浪费。设置缓存策略,让静态资源存本地。
比如给图片、JS、CSS 设置长时间缓存:
Cache-Control: max-age=31536000, immutable下次进来直接从本地读,不用走网络,速度快得像自家电脑打开文件。
CDN 不是高端货,小站也能用
你以为 CDN 只有大公司才配用?现在不少服务商免费额度够个人站和小项目用。把静态资源扔到 CDN 上,用户从离他最近的节点下载,比绕一圈到你服务器快多了。
比如你人在广州,服务器在北京,打开页面先跨半个中国。用了 CDN 后,可能从深圳节点拉资源,延迟从 50ms 降到 5ms,感觉就是“点开即来”。
检查第三方脚本,别让外链拖后腿
装个统计代码、加个客服浮窗,看着方便,可这些第三方脚本经常卡住主流程。有的服务商服务器不稳定,一卡全页停住。
解决方案:延迟加载。等页面主体内容出来了,再悄悄加载这些辅助脚本。或者用懒加载方式,滚动到可视区域再请求。
有时候删掉一个不必要的广告代码,页面完成时间直接从 5 秒降到 2 秒,效果立竿见影。