What this problem looks like
WordPress generates several sizes per upload. One careless 5 MB PNG can produce a megabyte of thumbnails across sizes. Optimisation starts at upload discipline, then automation.
WooCommerce product galleries need enough resolution for zoom. Compress aggressively on blog images, more carefully on primary product photos.
Step 1: Set maximum upload dimensions
WordPress 5.3+ scales down huge uploads, but themes may still request full size. Add limits in your child theme functions.php or use a plugin to cap upload width at 2000px for heroes and 1500px for inline content unless you sell art prints.
add_filter( 'big_image_size_threshold', function() {
return 2048;
} ); Step 2: Choose a compression plugin
- ShortPixel: strong WebP and AVIF, good WooCommerce support.
- Imagify: integrates with WP Rocket.
- EWWW: local compression option for privacy-sensitive shops.
- Smush: easy bulk smush for blogs and brochure sites.
Step 3: Use modern formats with fallbacks
WebP and AVIF cut bytes dramatically. Enable <picture> tag delivery or server content negotiation. Keep JPEG originals until you verify Safari and older browsers in your analytics.
Step 4: Regenerate thumbnails after theme change
New themes register new image sizes. Old thumbnails stay at wrong dimensions until regeneration. Use Regenerate Thumbnails or WP-CLI after switching themes.
The command below needs SSH access and will not work inside File Manager:
wp media regenerate --yes Step 5: Lazy load and priority hints
WordPress lazy loads images by default. Do not lazy load the LCP hero. Use fetchpriority="high" on the main above-fold image in block themes or your template.
When to stop DIY and hire help
Large catalogs, custom image pipelines, or print-on-demand shops need tuned rules per category. BugShield optimises WooCommerce media without breaking zoom or colour accuracy at a confirmed price without hourly billing surprises.