Images are the number-one reason WordPress sites load slowly. Most of the time the culprit isn't WordPress itself — it's that people upload enormous, full-resolution photos straight from a phone or camera and let the page deal with them. The single most effective fix costs nothing and needs no plugin: prepare each image properly before you upload it. Here's the workflow.

Step 1: Resize to the dimensions you actually use

This is where the biggest savings live. Find out how wide your images are displayed and resize to match. For most themes:

A 4000px photo shown in a 1000px column is carrying four times the width — sixteen times the pixels — it will ever display. Scaling it down before upload typically cuts the file by 80–95% on its own. (To support high-DPI screens, you can resize to roughly double the display width.)

Step 2: Choose the right format

If you're unsure, the JPG vs PNG vs WebP guide walks through the decision.

Step 3: Compress to a sensible quality

For photos, 75–85% quality removes weight you can't see. Don't ship images at 100% quality "to be safe" — that's mostly invisible data inflating your page. Check the before/after size as you go; a well-prepared in-content image is usually well under 200 KB.

Do it in your browser, before upload

You don't need an optimisation plugin running on your server for every image. This tool resizes, converts, and compresses locally — drop a batch in, set a max width and format, and download. Then upload the finished files to WordPress.

Step 4: Batch your media library prep

If you're publishing a gallery or a photo-heavy post, process the whole set at once rather than one at a time. Set your max width and quality once, drop in up to 200 images, and download them as a single ZIP. Unzip and upload. See batch converting images for the full approach.

Step 5: Fill in alt text and file names in WordPress

Optimisation isn't only about bytes. Two things help SEO and accessibility and cost seconds:

Step 6: Let WordPress and the browser do the rest

Modern WordPress automatically generates multiple sizes and outputs responsive srcset markup, and adds lazy loading for off-screen images. Those features work best when your source upload is already reasonably sized — feed it a 6 MB original and every generated size starts from bloat. Get steps 1–3 right and the built-in features handle delivery well without extra plugins.

A quick checklist

For the why behind these numbers, see resizing images for the web and image formats and page speed.

Prep your WordPress images now

Resize, convert to WebP, and compress a whole batch in your browser — then upload the finished files.

Open the tool →