一、先定位瓶颈:你的网站到底慢在哪
很多站长把网站部署上线之后,第一反应就是"换个配置更高的机器"。但大部分情况下,机器性能并不是瓶颈,问题往往出在资源传输、缓存策略和后端响应上。
打开无痕窗口按 F12,切到 Network 面板,重点看两个数字:TTFB(首字节时间)和资源下载耗时。TTFB 高,说明问题在服务器端(后端程序、数据库、PHP-FPM 慢);TTFB 正常但图片、CSS、JS 下载慢,说明问题在带宽或大文件上。
也可以直接在服务器上用 curl 验证:
curl -o /dev/null -s -w "连接耗时: %{time_connect}s
首字节: %{time_starttransfer}s
总耗时: %{time_total}s
" https://你的域名
二、Nginx 层提速:开启 Gzip 与静态资源缓存
只要用的是 Nginx,这一步是所有提速动作里见效最快、成本最低的。
1. 开启 Gzip 压缩。编辑站点配置或 nginx.conf 的 http 段:
gzip on; gzip_min_length 1k; gzip_comp_level 6; gzip_types text/plain text/css application/json application/javascript text/xml application/xml image/svg+xml; gzip_vary on;
改完执行 nginx -t 检查语法,再 nginx -s reload 生效。开启之后,纯文本类资源体积通常能减少 60% 以上。
2. 给静态资源设置缓存。在 server 段里加:
location ~* .(jpg|jpeg|png|gif|webp|svg|css|js|woff2?)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
这样浏览器会直接命中本地缓存,二次访问几乎不用重新下载静态资源。
三、图片优化:性价比最高的提速手段
网页体积里,图片通常占大头。同一种视觉效果的图片,WebP 比 JPG 平均小 30%~50%,AVIF 更夸张。
三个立刻能做的改动:
1. 上传前压缩:用 Squoosh 或 TinyPNG 过一遍,封面图控制在 100~200KB;
2. 格式升级:服务端用 ffmpeg 批量转 WebP,Nginx 按客户端支持情况回退;
3. 懒加载:给 img 标签加 loading="lazy",首屏外的图片滚动到再加载。
四、CDN 加速:把资源放到离用户最近的地方
CDN 的原理很简单:把静态资源缓存到全国(乃至全球)的边缘节点,用户请求就近命中,不用每次都绕回源站。
操作上就三步:
1. 选一家带中国大陆节点的 CDN(腾讯云、阿里云、七牛等),域名做 CNAME 指向 CDN 分配的地址;
2. 回源地址填源站 IP 或域名,先只加速 /static、/wp-content 这类静态目录,观察稳定后再全站加速;
3. 注意 HTTPS:CDN 证书和回源都开启,避免页面出现混合内容报错。
国内访客多的站点,接上 CDN 之后静态资源的首字节和下载速度都会有肉眼可见的提升。
五、容易忽略的细节
1. 数据库慢查询:动态站装上查询监控,命中率低的直接上 Redis 对象缓存;
2. HTTP/2:Nginx 的 listen 443 ssl http2; 支持多资源并行下载,配合 CDN 效果更明显;
3. 关掉多余的重定向和没用的插件,别让每个请求多绕一跳;
4. 机房线路:国内访客为主选国内线路,面向海外选 CN2/GIA 等优质线路,物理距离决定了基础延迟。
六、验证效果:用数据说话
提速之后不要凭感觉,用 Lighthouse 或 PageSpeed Insights 复测一次,对比优化前后的 LCP、TTFB、DOMContentLoaded 和总体分数。一次完整的优化,通常能把加载时间砍掉一半以上。
总结
网站提速说白了就三板斧:压缩传输体积、充分利用缓存、把资源放到离用户近的地方。先从 Gzip 和图片压缩入手,几乎零成本就能看到效果;再把浏览器缓存、CDN 和 HTTP/2 补齐,体验基本就拉满了。