搜索全站
性能优化 7 分钟阅读

图片未压缩、未使用 WebP 导致 WordPress 加载慢

首页图片一张好几兆,加载慢得让人抓狂?本文教你用 ShortPixel、Smush 批量压缩已有图片并自动转为 WebP 格式,再配合懒加载和响应式图片,让页面图片总体积直接砍半甚至更多,移动端加载速度肉眼可见变快,操作不复杂,新手也能照着做。

U
UFO_PF 2026-10-10 · 阅读 7 分钟
图片 性能优化
阅读提示
本文约 2,713 字,预计阅读 7 分钟。文中命令与配置均经过实测,可直接参考执行。

引言

很多站长做速度优化时,把精力全放在缓存和服务器上,却忽略了最直观的一个大头——图片。图片通常占据一个页面 60% 以上的体积。相机拍的原图一张五六兆,手机截图随手就是两三兆,直接上传到 WordPress,首页再摆上七八张,访客光下载图片就要十几秒。更可惜的是,很多人根本不知道图片可以换成 WebP 格式,同样画质下体积能比 JPEG 小三四成。图片没压缩、没换格式、没懒加载,是拖慢 WordPress 最普遍也最容易解决的问题。好消息是,这件事基本可以靠插件自动化完成,本篇带你从压缩、转换、懒加载到响应式一层层处理。

故障原因分析

  1. 上传前不做压缩。WordPress 上传时只按你的设置生成几档缩略图,并不会自动优化原图体积,原图多大就存多大、前台用多大就传多大。
  1. 一直用 JPEG/PNG。JPEG 对照片尚可但体积偏大,PNG 适合透明图但对照片极不划算,而 WebP 在画质相当的前提下体积小得多,还有 AVIF 更新更省但要浏览器和兼容性评估。
  1. 上传了超大尺寸却按原尺寸显示。一张 4000 像素宽的原图,前台却只显示 800 像素宽,多出来的像素白下载。
  1. 没有懒加载。首屏根本没看到的图片也在页面一打开就全部下载,浪费带宽也拖慢首屏。
  1. 缺少响应式图片。没有根据访客屏幕宽度返回合适尺寸,手机被迫下载桌面版的大图。

分步解决方案

第一步:看看图片到底有多大

用 F12 的 Network 面板,按 Size 排序,一眼就能看出哪几张图是大头。也可以用 PageSpeed Insights,它会列出「适当调整图片大小」「以现代格式提供图片」「推迟加载屏幕外图片」等具体建议和可节省的 KB 数,先量化再动手。

第二步:用插件批量压缩已有图片

推荐 ShortPixel 或 Smush、Imagify。ShortPixel 压缩质量高、支持批量优化已有媒体库;Smush 免费额度够小站用。安装激活后进入其后台面板,选择压缩级别(一般选「有损」Lose optimization,画质肉眼几乎无损但体积降幅最大),然后点「Bulk Optimize」对历史图片批量处理。几万张图会跑较久,可以分批或让它后台跑完,别中途刷新页面。

第三步:开启自动 WebP 转换

同样在 ShortPixel 或 Imagify 设置里,打开「Convert to WebP」(或新版本里的 Next-Gen Images 选项)。开启后插件会在压缩时额外生成一份 .webp 文件,并用规则在页面里把图片引用替换成 WebP 版本,浏览器不支持时自动回退到原格式。LiteSpeed Cache 用户可以在它的「图片优化」里直接开 WebP,服务器是 LiteSpeed 时效果最好。也可以单独用 WebP Express 插件负责转换。

第四步:开启懒加载

WordPress 5.5 以后原生支持懒加载,会自动给图片加 loading="lazy",但有些主题或旧版本需要插件补上。WP Rocket 的「LazyLoad」、Autoptimize、LiteSpeed Cache 都带此功能。注意首屏图片不要懒加载,否则反而拖慢首屏,WP Rocket 有「Exclude images above the fold」的排除项可填首屏图片的 class。

第五步:上传前先处理原图

在源头解决:上传前用图片软件把宽度压到实际显示需求以内(一般内容区 1200px 左右足够,全宽背景图 1920px),导出时选 JPEG 质量 75 到 85 或直接导出 WebP。WordPress 后台「设置 → 媒体」里可以把「最大上传尺寸」设小,逼自己上传前处理。

第六步:启用响应式图片 srcset

WordPress 默认会用 srcset 输出多尺寸图片,让浏览器按需选择,确认主题没有禁用。检查前台图片标签是否带 srcset:

<!-- 期望看到的图片标签结构 -->
<img src="photo-1024.jpg"
     srcset="photo-300.jpg 300w, photo-768.jpg 768w, photo-1024.jpg 1024w"
     sizes="(max-width: 768px) 100vw, 1024px"
     loading="lazy" width="1024" height="683" alt="" />

如果只有单个 src,说明 srcset 被过滤掉了,排查主题或插件里是否用了 wp_calculate_image_srcset 相关的过滤。

第七步:为图片加宽度高度和 CDN

给 img 标签补上 width 和 height,浏览器能提前预留位置,减少布局跳动(CLS)。再把图片交给 CDN 分发,国内用七牛云、又拍云开启图片处理参数,可以在线裁剪压缩,进一步减小体积。

常见踩坑点

  1. 压缩级别开成「无损」还指望体积大降。无损压缩对 JPEG 降幅有限,想让体积砍半得选有损且把质量设在 75~85,肉眼几乎看不出差别。
  1. 开了 WebP 却不生效,图片 URL 还是 .jpg。检查是主题硬编码了图片路径,还是服务器重写规则没配上,ShortPixel 会提供一份 .htaccess 重写规则,按提示加上即可。
  1. 全站图片都懒加载,包括首屏大图。首屏的 banner 图被懒加载后会延迟出现,体验更差,务必把首屏图片排除在懒加载之外。
  1. 批量压缩时关掉浏览器。多数插件压缩是服务器端后台任务,中途关页面一般不影响,但如果插件走的是浏览器端请求,关掉就中断了,看清插件说明再操作。
  1. 忘记清理压缩前的原图备份。ShortPixel 默认会保留原图备份(占用双倍空间),确认压缩效果满意后,在设置里关闭备份并清理,否则磁盘会翻倍膨胀。

总结

图片未压缩、未使用 WebP,是 WordPress 加载慢里最容易忽视又最容易解决的一环,因为它不用改代码、不用换服务器,装上 ShortPixel 或 Imagify 开个自动转换就行。整条链路是:上传前先把原图尺寸和质量处理到位,用插件对历史图片批量压缩并自动生成 WebP,再开启懒加载并把首屏图片排除,最后确认响应式 srcset 和 width/height 正常输出,有条件再叠加 CDN 图片处理。把这几步做完,页面总下载体积往往能减少一半以上,首屏肉眼可见地变快,对移动端访客的流量和耐心都是实打实的照顾。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。