Images are almost always the biggest contributor to page weight on a WordPress site. They’re the first thing a designer adds and the last thing a developer optimises Bby the time someone notices the site is slow, there are hundreds of oversized and uncompressed files sitting in the media library doing quiet damage.
The good news is that fixing this is largely a one-time job. Get the fundamentals right, and your images stop being a performance liability.
1. Resize Images Before You Upload Them
This one sounds obvious, but it’s the most commonly skipped step.
Uploading a 4000px-wide photo from your DSLR or iPhone and letting WordPress scale it down is not image optimisation. The browser still downloads the full-size file, so you’re just stretching a 3MB image into a smaller container.
The right approach is to resize before uploading.
Find out the maximum display width your content area uses (usually somewhere between 800px and 1200px depending on your theme), and resize your images to match before they hit the media library. Tools like Squoosh let you do this in the browser with no software installation required, and they let you compare quality at different compression settings before you save.
If you’re working with existing images in your media library, you can also regenerate thumbnails after changing your theme’s registered image sizes using the free and popular Regenerate Thumbnails plugin.

2. Use the Right Format for the Job
The image format you choose has a bigger impact on file size than most people realise.
As a general rule, use WebP for everything if you can. WebP images are roughly 25-34% smaller than equivalent JPEGs, and 26% smaller than PNGs, according to Google’s own benchmarks. Browser support is now universal, so there’s no real reason to default to JPEG or PNG for new uploads.
The classic breakdown still holds for fallback scenarios. Use JPEG for photographs, PNG for graphics with transparency, SVG for logos and icons. But if you’re using a plugin like ShortPixel (more on that below), it will handle format conversion for you automatically. For example, it will serve WebP or AVIF to browsers that support it and fall; back gracefully for those that don’t.
Manual image editing before upload is a good habit to develop. That being said, it doesn’t help with the hundreds or thousands of images already sitting in your media library. For that, you need a compression plugin.
ShortPixel Image Optimizer is the one we recommend. It connects to ShortPixel’s cloud API, compresses both new and existing images automatically, and handles WebP and AVIF conversion in the same step. The plugin gives you three compression modes (lossy, glossy, and lossless) so you can calibrate quality to your needs.

What sets ShortPixel apart is the SmartCompress algorithm. Rather than applying a blanket quality reduction across all images, it optimises each image individually to find the smallest file size that still looks indistinguishable from the original. That approach tends to outperform simpler tools, especially on mixed media libraries where photos and graphics need different treatment.
The free plan covers 100 credits per month, though it’s worth noting that WordPress generates multiple thumbnail sizes for every image you upload, and each variant consumes a separate credit. In practice, 100 credits translates to roughly 15-20 original image uploads per month, not 100. It’s enough to test quality on your content type before committing to a paid plan, but not enough to bulk-process an existing library.
One thing worth enabling while you’re in the settings is EXIF data stripping. Photos taken on phones and cameras carry hidden metadata in the file, things like GPS location, camera model, focal length, and timestamp. None of that is useful to a website visitor, and it adds unnecessary weight to every image. ShortPixel strips it automatically when you turn the option on.
4. Use a CDN to Deliver Images Faster
Compression reduces the file size. A CDN reduces the distance the file has to travel.
A Content Delivery Network stores copies of your static assets, including images, in data centers around the world. When a visitor loads your site, they receive files from the server geographically closest to them rather than from your origin server. For a site with a global audience, this alone can cut image load times significantly.
Most managed WordPress hosts include CDN functionality. Kinsta, Servebolt, and similar providers bake it into their stack. If your host doesn’t include one, Cloudflare’s free tier covers the basics well. ShortPixel also offers an Adaptive Images plugin that serves resized and optimised images from their CDN, which is worth considering if you want compression and delivery handled by the same service.
5. Enable Lazy Loading
Lazy loading means images below the fold aren’t loaded until the visitor actually scrolls to them. For pages with lots of images, this makes a significant difference to initial page load time, because the browser isn’t fetching assets the user hasn’t seen yet.
Since WordPress 5.5, lazy loading has been enabled by default for all images uploaded through the media library. WordPress adds the loading="lazy" attribute to tags automatically. For most sites, there’s nothing to configure to get this working.

There’s one exception worth noting, which is your hero image or above-the-fold LCP element. This should never be lazy loaded.Since it’s visible on arrival, lazy loading it would actually delay the most important image on the page.
Since WordPress 5.9, the first image in the HTML source order is automatically excluded from lazy loading to avoid exactly this problem. The caveat is “first in source order,” not “first visible on screen.” If your theme outputs navigation elements, a logo, or other images before your main hero image in the HTML, the hero can still receive the lazy attribute despite being above the fold. When you’re using a page builder or custom theme, it’s worth inspecting your hero image markup to confirm it isn’t getting lazy-loaded inadvertently.
For more granular control over lazy loading behaviour, the free a3 Lazy Load plugin gives you options for iframes, videos, and images outside the standard media library flow.
6. Write Descriptive Alt Text for Every Image
Alt text is where image SEO and image performance overlap. It’s easy to treat it as an afterthought, but it’s one of the few places where a small habit compounds significantly over time.
It’s the text attribute added to an tag that describes what the image shows. Search engines read it to understand image content since they can’t interpret the visual itself. Screen readers use it to describe images to visually impaired users. When an image fails to load, it’s what displays in place of the broken image.
The rule of thumb is simple. Describe what’s in the image accurately and naturally. If you’re adding a screenshot of the ShortPixel dashboard, “ShortPixel Image Optimizer bulk compression settings” is a good alt text. “Plugin screenshot” tells nobody anything. Keyword stuffing (“WordPress image plugin best compression free 2025”) tells Google you’re gaming the system rather than describing an image.
For purely decorative images that add no informational value, use an empty alt attribute (alt="") rather than skipping the attribute entirely. An empty attribute tells screen readers to skip the image. No attribute at all leaves them to guess.
WordPress prompts you for alt text in the block editor every time you insert an image and it only takes ten seconds to add one. Use it.
Where to Go From Here
These six steps cover the full surface area of image optimisation on a WordPress site: size, format, compression, EXIF cleanup, delivery, lazy loading, and discoverability.
If you want to go further, the actionable WordPress image SEO checklist article covers less obvious wins. For understanding how WordPress serves different image sizes to different screen sizes automatically, the responsive images guide explains the srcset and sizes attributes in plain terms.
If you’re not sure which of these issues is actually hurting your site most, the WordPress performance audit walkthrough gives you a step-by-step process for finding out before you change anything.
Which of these have you already got covered? The compression step is usually where I see the biggest immediate gains on sites that haven’t been touched in a while.