Upload a 6MB product photo straight from your camera and Shopify will happily resize it, reformat it, and serve it — the 6MB master file just sits there as the source for every version it generates.
“Image optimization” on Shopify usually gets folded into two other conversations: lazy loading (when an image loads) and checkout speed (images near the buy button). Neither one is about the images themselves — the actual file weight, format, and dimensions before a browser ever starts loading anything.
That’s what this guide covers. If you want the loading-behavior half, see our lazy loading guide; for the checkout-specific angle, see our checkout image guide. This post is about what happens before either of those matters: how big the file is, what format it’s in, and whether it was ever actually compressed.
Plug In Speed compresses and reformats the images already loading on your storefront — product photos, banners, collection images — without you re-uploading anything.
What Shopify actually optimizes for you
Shopify’s image CDN does more than most merchants realize. Through the image_url and image_tag Liquid filters, it automatically generates resized versions of every image you upload, builds a responsive srcset so phones don’t download desktop-sized files, and serves modern formats — WebP since 2020 and AVIF since 2022 — to any browser that supports them, automatically falling back to JPEG/PNG for the rest.
None of that requires touching a theme file. If you’re on a Shopify 2.0 theme (Dawn, Craft, Sense) using the standard image filters, format conversion and responsive sizing are already happening in the background.
What it doesn’t do
Here’s the part that surprises most merchants: Shopify doesn’t compress the file you upload. It resizes and reformats derivatives of that file on the fly, but the original stays exactly as heavy as when you uploaded it — and Shopify’s own developer docs actively recommend uploading the largest version available, so every derivative can be generated from it. That’s the right call for image quality. It also means a bloated master file (a straight-from-camera photo, an unedited screenshot, an old PNG export from a design tool) stays bloated as the source every resized version gets built from.
- WebP/AVIF format conversion per browser
- Responsive srcset (different sizes per device)
- CDN delivery and caching
- On-the-fly resizing via image_tag/image_url
- Compressing the original file you upload
- Fixing oversized source dimensions (6000px photo for an 800px slot)
- Images injected by apps that skip the theme’s image filters
- Pre-2.0 themes without image_tag support
Why the source file still matters
Images are the single heaviest part of most webpages. Across the median site, images make up 36–37% of total page weight — on mobile, that’s roughly 911KB of a 2,559KB median page. A store with 40 product photos that were never compressed before upload is carrying that weight on every collection page, on every device, indefinitely — Shopify’s CDN is resizing and reformatting a heavy master, not a light one.
Google — WebP Compression Study
The 3 things worth fixing at the source
1. Resize before you upload, not just for display
If a product photo will only ever display at 800px wide, uploading it at 6000px (a typical DSLR or phone camera export) means Shopify’s CDN is resizing down from a much bigger file than it needs to on every request. Export or crop product photos to a realistic maximum — roughly 2000px on the longest side is enough headroom for zoom features without carrying camera-native dimensions.
2. Compress before upload, especially for non-photo assets
Product photography from a proper camera or photo editor is usually already reasonably compressed. Screenshots, PNG exports from design tools, and graphics pulled from a supplier’s marketing kit often aren’t — a lossless PNG screenshot can be 5–10x heavier than a compressed JPEG or WebP of the same image. Run those through your photo editor’s export settings before they ever reach your Shopify admin, or let an app compress what’s already uploaded.
3. Check images that bypass your theme’s image filters
Reviews widgets, upsell apps, and some older or heavily customized theme sections sometimes render images with a plain <img src=""> tag instead of Shopify’s image_tag filter — which means they skip the automatic WebP/AVIF conversion and responsive sizing entirely. These are usually the heaviest, least-optimized images on a page precisely because they’re invisible to the “Shopify handles it automatically” assumption.
How to check where you actually stand
- Open a product or collection page in Chrome DevTools’ Network tab, filter to “Img”, and sort by size — anything over 200KB is worth a second look.
- Right-click a flagged image → Inspect, and check whether it’s rendering as a
<picture>element with multiplesrcsetsizes (Shopify’s automatic handling) or a single static<img>tag (likely bypassing it). - Run Shopify’s built-in Web Performance report (Settings > Web Performance) to see how image weight compares across your store’s page types.
Fixing the ones Shopify already resizes automatically won’t move much — the CDN is doing that work. The images worth chasing are the oversized masters and the ones that skip the filter entirely.
Frequently asked questions
Does Shopify automatically optimize my images?
Partially. Shopify’s CDN automatically converts images to WebP and AVIF for supporting browsers and generates responsive sizes via the image_tag/image_url Liquid filters. It does not compress the original file you upload — that stays exactly as heavy as when you uploaded it, and Shopify’s own docs recommend uploading the largest version available.
What image format should I use for Shopify product photos?
Upload as JPEG for photos or PNG for graphics with transparency — Shopify automatically serves WebP or AVIF versions to browsers that support them, so you don’t need to convert manually. Focus your effort on compressing and correctly sizing the source file instead.
Does Shopify convert my images to WebP automatically?
Yes, since 2020, and to AVIF since 2022, for any image served through the standard Liquid image filters on a Shopify 2.0 theme. Images injected by apps or custom code that bypass those filters may not get this conversion.
What’s the ideal image size for Shopify product photos?
Roughly 2000px on the longest side gives enough resolution for zoom features without carrying unnecessary camera-native dimensions (often 5000–8000px). Shopify’s CDN will still generate smaller responsive versions from that file as needed.
Will optimizing my images affect Shopify SEO?
Indirectly, yes — page speed is a Google ranking factor, and images are typically the heaviest part of a page. File weight is a separate lever from alt text and file naming, which matter for image search but not page load time.
Stop shipping bloated source images
Plug In Speed finds and compresses the oversized images already live on your storefront — product photos, banners, collection images — so the master file Shopify’s CDN is resizing from isn’t the heaviest version of itself.

