WordPress makes it dangerously easy to upload a 6 MB photo straight from your camera and drop it into a post. Multiply that by a few dozen posts and you have a site that crawls, frustrates mobile readers, and slips down Google's rankings. The good news: fixing it takes minutes per batch, and you don't need a plugin to do it.
Why compress before uploading, not after
Optimization plugins compress images after they land on your server — which means your hosting still stores the giant originals, your media library balloons, and many plugins charge monthly fees for the privilege. Compressing before upload keeps your media library lean from day one, works on any host, and costs nothing.
There's a second benefit: WordPress generates several resized copies (thumbnail, medium, large) of every upload. When the source file is clean and appropriately sized, every generated copy is smaller too.
The right dimensions for WordPress
Cameras and phones produce images 4000–8000 pixels wide. No WordPress theme displays anything close to that. Practical targets:
- Full-width hero images: 1920 px wide is plenty, even for large desktop screens.
- In-content images: 1280 px wide covers virtually every theme's content column, including high-DPI screens.
- Thumbnails and logos: upload at the exact display size, or at most 2× for retina displays.
Resizing alone — before any quality reduction — often cuts file size by 80% or more, because file size scales roughly with pixel count.
The right quality setting
For photographic content on a blog, quality 70–80 is the sweet spot. At this level, JPEG and WebP artifacts are practically invisible at normal viewing distance, while file sizes drop dramatically. A typical 4 MB photo becomes 150–400 KB at 1920 px / quality 75.
If a particular image looks soft after compression (fine text, detailed patterns), nudge quality up to 85 for that one image rather than raising your default for everything.
JPEG or WebP for WordPress?
WordPress has supported WebP uploads since version 5.8, and every modern browser renders it. WebP files are typically 25–35% smaller than an equivalent JPEG, so it's the better default for new content. Choose JPEG only if you syndicate content to platforms with poor WebP support or your audience uses very old browsers.
Avoid PNG for photos entirely — it's a lossless format and produces files 5–10× larger than JPEG with no visible benefit. Reserve PNG for screenshots, logos and graphics with sharp edges or transparency.
A simple pre-upload workflow
- Collect the photos for your post — say, ten images fresh off your phone.
- Drop them all into a browser-based compressor (the one on this site handles 20 at a time and never uploads them anywhere).
- Set output to WebP, quality 75, max width 1920 px (or 1280 px for in-content images).
- Check one or two with the before/after comparison — if they look identical, download the batch as a ZIP.
- Upload the compressed versions to WordPress. Done.
Ten images that started as 40 MB typically land under 3 MB — a 90%+ reduction that your readers, your host and Google will all notice.
Don't forget the images already on your site
For an existing library of heavy images, work through your most-visited pages first (check your analytics). Re-compress the originals, re-upload, and replace. It's tedious, but the top ten pages usually capture most of your traffic — an afternoon of work fixes the bulk of the problem.
Compress your images now
Ready to put this into practice? Use the free WebPcompress compressor — it runs entirely in your browser, handles 20 images at a time, and your photos never leave your device.
