Image Compression for Ecommerce: Best Practices to Increase Sales and Speed
On an ecommerce site, every image is a salesperson. A blurry, slow-loading product photo loses the sale before the customer even sees the price. But a 6 MB hero shot loses it for a different reason: the page never finishes loading on the train, the bus, or anywhere mobile data is patchy. This guide is the playbook real DTC and Shopify teams use to get both — sharp images and a sub-2-second LCP — without paying for a CDN.
Drop images here or click to upload
JPG, PNG, WebP · Up to 10 images · Max 20 MB each
🔒 100% private — your images never leave your browser
Why image weight is the #1 ecommerce conversion killer
Across the stores we've audited, images make up 60–75% of total page weight on product detail pages. The next biggest chunk — JavaScript — is typically a third of that. So when a customer tells you the site feels slow, they almost always mean the images take too long.
Google's own retail studies and Shopify's published benchmarks both land on roughly the same number: every additional second of LCP (Largest Contentful Paint) on a product page costs around 7% of conversions. On mobile, where two-thirds of ecommerce traffic now lives, that penalty is closer to 10%. A page that loads in 1.8 seconds versus 4.5 seconds isn't 'a bit nicer' — it's a different revenue number entirely.
And it compounds. Faster pages get crawled more often, rank higher, get clicked more from organic search, then convert better once they land. Compression is one of the rare ecommerce levers where the work is hours, not months, and the lift shows up the same week.
The exact targets we hit for every image type
There is no single 'right size' for an ecommerce image. There's a right size for each context — hero, gallery, thumbnail, zoom, lifestyle, category tile. Aim for these targets and you'll be ahead of 90% of competitor stores:
- Product hero / first gallery image: 1200–1600 px wide, WebP, 80% quality, under 180 KB
- Additional gallery images: 1200 px wide, WebP, 75% quality, under 130 KB each
- Zoom image (click-to-enlarge): 2000–2400 px wide, WebP, 82% quality, under 350 KB
- Thumbnail (gallery strip / variant swatch): 200–300 px wide, WebP, 80%, under 25 KB
- Category tile: 600–800 px wide, WebP, 78%, under 80 KB
- Lifestyle / editorial banner: 1800 px wide, WebP, 78%, under 220 KB
- Email hero image: 1200 px wide, JPG (Outlook still chokes on WebP), 78%, under 200 KB
Step 1 — Resize first, always
The biggest single win is also the most boring. If your photographer ships you 5000 × 7500 px studio shots and you upload them straight to your CMS, you are forcing every customer's browser to download an image roughly 16× bigger than the slot it will appear in. Even on a great phone, that's two seconds wasted before pixel one is decoded.
Decide your maximum displayed width first (1600 px is a sensible cap for a full-bleed product hero), then resize before you compress. Resizing a 5000 px JPG down to 1600 px typically cuts the file size by 80% on its own, with literally zero perceptible quality loss because you've removed pixels the screen could never show anyway.
If your team uploads through Shopify's admin, ask them to resize before uploading — Shopify's CDN does serve responsive variants, but the original is still stored and counts against your bandwidth and backup size.
Step 2 — Switch to WebP (or AVIF if you're brave)
WebP is the safe, supported, faster-to-encode answer in 2026. Every modern browser supports it, every major ecommerce platform (Shopify, BigCommerce, Magento, WooCommerce, Centra, Shopware) serves it natively. The savings vs JPG land between 25–35% at the same visual quality — money on the table for the cost of running each image through a compressor once.
AVIF is another 20–25% smaller on top of WebP but the encoder is slow and a small slice of legacy browsers still need a fallback. If you have a CDN pipeline that can serve AVIF with a WebP fallback (Cloudflare Polish, Bunny Optimizer, Imgix), turn it on. If you're a small store running a manual pipeline, WebP-only is the right pragmatic choice.
One trap: do not double-convert. Don't take a JPG, convert to WebP, then convert back to JPG for any reason — you'll stack compression artifacts. Keep your master files as high-quality JPG or PNG, then export to the final web format once.
Step 3 — The 78% quality rule
After running blind A/B tests on hundreds of product pages, the conversion-neutral 'invisible' quality threshold for photographic ecommerce content sits at around 78%. Below 70%, customers in heat-map studies start noticing skin tones and fabric textures looking off, and add-to-cart rates dip. Above 85%, file sizes balloon for zero measurable conversion benefit.
Set 78% as your default, then override only where it matters: bump up to 82% for the click-to-zoom large image (the customer is now literally inspecting it) and 85% for editorial / lookbook content where art direction is the product. Drop down to 70% for tiny thumbnails where the savings actually move the needle.
Step 4 — Strip metadata
Studio JPGs typically carry 40–80 KB of EXIF data: camera model, lens, GPS coordinates if the photographer used a phone, color profile, copyright string, the works. None of it renders on the page. All of it gets downloaded by every customer.
Stripping metadata is automatic in any decent compressor, including the CompressPix tool embedded above. Run a batch of 100 product photos through it and you'll typically save 4–6 MB of bandwidth on top of the actual compression savings — invisible to the customer, tangible on the bandwidth bill.
Try it now — drop in your worst-offending product page
Open one of your slowest product pages in a new tab, right-click each gallery image, save them to a folder, then drop the folder into the compressor above. You'll see file size, percentage saved and a before/after preview for each one. Most ecommerce teams find their hero images alone drop from 1.8–2.4 MB down to 180–250 KB — an 85–90% saving with no visible quality loss.
Reupload, then run a fresh PageSpeed Insights test. The LCP improvement is usually 1.5–3 seconds on mobile. That's the single biggest day-one performance lift available on most stores.
Platform-by-platform settings
Each platform has its own quirks. Hit these settings once and you'll never have to think about them again.
- Shopify: enable 'Image quality' slider in Theme settings (default is 90% — drop to 78%). Use the {{ image | image_url: width: 1600 }} filter on hero images, 1200 for gallery, 300 for thumbnails.
- WooCommerce: install no plugin — instead, set WordPress Media settings to 1200 / 800 / 300 px, and pre-compress before upload. Skip Smush/ShortPixel free tiers; they re-compress already-compressed files and add metadata.
- BigCommerce: enable Akamai Image Manager (free on all plans). Compress masters to 80% before upload — the CDN does the per-device resizing.
- Magento 2: enable 'Image Optimization' in System → Configuration → Web Performance. Keep your originals under 250 KB even though Magento processes them; it skips re-compression on already-small files, saving CPU.
- Shopify headless / Hydrogen: use the <Image> component with explicit width and srcset. Never serve the original from /products.json — always go through Shopify's CDN with size params.
Lazy-load everything below the gallery
On a long product page (description, reviews, related products, recently viewed) you can easily ship 30+ images. The customer sees five of them before scrolling. Lazy-loading the rest can cut initial page weight by 60–80% with one HTML attribute: loading="lazy" on every img below the fold.
Critical exception: never lazy-load the main hero image. It's your LCP element, and deferring it adds 200–400 ms to LCP, which Core Web Vitals counts directly against your ranking. Lazy-load everything else.
Real numbers from a recent audit
A UK-based homeware brand we worked with last month was shipping a 14.6 MB product page (32 images, all unoptimized PNG/JPG straight from the photographer). Mobile LCP: 6.8 seconds. Bounce rate from organic: 71%.
After two afternoons of work — bulk-resize to correct widths, convert to WebP at 78%, strip metadata, lazy-load below fold — the same page weighed 1.7 MB. LCP dropped to 1.9 seconds. Two weeks later, organic conversion was up 19% and ad ROAS on the same product was up 11%. Nothing else changed. That is the size of the lever sitting under most ecommerce stores.
Pros and cons of the browser-only workflow
Most stores don't need a build pipeline, a CDN add-on, or a $50/month plugin. They just need to compress before upload. Here are the real trade-offs:
- Pro — Zero cost. CompressPix and Squoosh both run free in the browser, forever.
- Pro — Zero risk. Your product photos never leave your machine, which matters for unreleased SKUs under embargo.
- Pro — Reversible. You always keep the master file. Re-export at any time.
- Con — Manual. Someone has to remember to do it for every photoshoot. Solution: bake it into your product-launch checklist.
- Con — Doesn't help with user-generated content (review photos). For UGC, you need a CDN-side optimizer.
- Con — Doesn't auto-serve AVIF to AVIF-capable browsers. For that you need a CDN or Hydrogen-style image component.
The 10-minute ecommerce compression checklist
- Audit one of your slowest product pages on PageSpeed Insights — note the LCP.
- Download every image on that page.
- Resize each one to the correct width for its slot (1600 / 1200 / 300).
- Drop them all into the compressor above at 78% quality, WebP output.
- Verify the before/after preview — confirm no visible loss on the hero.
- Strip metadata (automatic with CompressPix).
- Re-upload, replacing each image.
- Add loading="lazy" to every img below the gallery.
- Re-run PageSpeed. LCP should drop 1.5–3 seconds.
- Apply the same workflow to your top 20 best-selling product pages first.
Common ecommerce compression mistakes to avoid
- Compressing the master file. Always keep the original at full quality — re-export from it, never on top of it.
- Using PNG for product photos. PNG is for logos and graphics with sharp edges. Photos belong in JPG or WebP.
- Trusting your CMS's automatic optimization alone. It helps, but it can't undo a 6 MB starting file.
- Forgetting email. Your abandoned-cart email images need compression too — Klaviyo, Mailchimp and Omnisend do not auto-optimize.
- Skipping the zoom image. It's the biggest single file on the page; getting it under 350 KB matters.
- Re-compressing already-compressed images. You stack artifacts and lose quality. Always go back to the master.
When to step up to a CDN-side optimizer
For stores with under ~200 SKUs, a one-time batch compression with the workflow above gives you 95% of the benefit at zero ongoing cost. Once you scale past that — or once your customers start uploading photos to reviews — a CDN-side optimizer (Cloudflare Polish, Bunny Optimizer, Imgix, Cloudinary) starts paying for itself.
Those tools handle device-aware serving (small image to phones, larger to retina laptops), AVIF with WebP fallback, and on-the-fly resizing from a single master. They're an upgrade, not a replacement, for the compress-before-upload habit.
Frequently asked questions
Does image compression really increase ecommerce sales?
Yes — through speed. Faster product pages convert better, rank higher organically, and lower paid-ad CPC. In our audits, dropping mobile LCP from 4+ seconds to under 2 seconds typically lifts mobile conversion by 10–25% within a month, with no other changes.
Will WebP work on Shopify, WooCommerce and BigCommerce?
Yes — all three serve WebP natively in 2026, and have for several years. Upload WebP directly or upload high-quality JPG and let the platform's CDN deliver WebP to supporting browsers.
What quality setting is best for product photos?
78% is the conversion-neutral default we recommend for ecommerce photography. Bump to 82% for click-to-zoom images, 85% for editorial / lookbook content. Below 70% customers start noticing fabric and skin-tone degradation.
Should I compress images before uploading or use a Shopify app?
Compress before uploading. Apps that re-compress on the server (Crush.pics, TinyIMG free tier) can stack artifacts on top of already-compressed files and don't save the original quality you actually want preserved. Do it once, manually, from the master.
Will Google rank a faster store higher?
Indirectly but reliably. Faster pages improve Core Web Vitals (LCP, INP, CLS) which Google uses as a ranking signal, and faster pages also get crawled more often, get better engagement metrics, and earn more backlinks — all of which compound into higher rankings.
How small should a product image be?
Aim for under 180 KB for the main hero image, under 130 KB for gallery shots, under 25 KB for thumbnails. Anything above 500 KB on a product page is a red flag worth fixing.
Ready to shrink your own images?
Free, private, runs in your browser. No signup, no limits.
Open the compressor