How to Compress Images for WordPress (Without a Bloated Plugin)
Slow WordPress sites are usually slow because of images. The common fix is to install a compression plugin — but plugins add server load, monthly quotas and one more thing to maintain. There's a simpler, faster, more private approach: compress before you upload.
Why compress before uploading
- Smaller media library — your originals are already optimized, so every size WordPress generates from them is smaller too.
- No server processing — compression happens on your machine, not by taxing your host's CPU on every upload.
- No plugin quota or subscription — nothing metered, nothing to renew.
- Privacy — with a browser tool, images aren't sent to a third-party optimization service.
The workflow
- Resize to display width first. If your content column is 800px wide, you don't need a 4000px image. Resize in your editor before compressing.
- Compress and convert to WebP in the FreeCompressor image tool — drop the images, pick WebP, download.
- Upload to WordPress. Modern WordPress serves your images with responsive
srcsetmarkup and lazy-loads them automatically.
What WordPress already does for you
Recent WordPress versions add loading="lazy" to below-the-fold images and generate
multiple sizes with srcset out of the box. It supports WebP uploads natively too. So
once your originals are compressed and in a modern format, much of the “optimization plugin” job is
already handled by core.
Do you ever still need a plugin?
If you have thousands of legacy images already uploaded, a bulk-optimization plugin can be worth it as a one-time cleanup. But for ongoing publishing, compressing before upload is faster, cheaper and keeps your stack lean. For the broader speed picture, see why large images slow down websites and our web-performance checklist.
Optimize your next upload
Before your next post, run the images through the image compressor — free, unlimited, and nothing leaves your browser.