The short answer: Shopify does not compress your files when you upload them. It keeps the original to preserve quality. On the storefront, the CDN may then recompress and, when the browser supports it, serve WebP or AVIF instead of the format you uploaded.
That split is why the query "Shopify compress images" is confusing. People mix three different jobs: upload, delivery, and source optimisation. Only the third one is under your control before the theme renders a single pixel.
What Shopify does with images
From Shopify's own help:
- Images are not compressed in the admin on upload.
- Theme delivery can apply compression on large images to keep pages fast.
- Shopify can pick a modern format (WebP, AVIF) at request time if the browser supports it.
- GIFs may be converted to animated WebP on delivery.
Limits worth knowing:
- Max upload: 4472 x 4472 px (20 megapixels) and 20 MB per file.
- Shopify's own recommendation for product photos: about 2048 px on the longest side.
- The official free resizer at shopify.com/tools/image-resizer only resizes. It is not a compressor.
So a 4 MB, 4000 px JPEG will sit in the admin at 4 MB. Customers may get a lighter WebP from the CDN. You still paid to store and transfer the heavy original through the editor, CSV imports, apps, and any theme that requests master instead of a sized variant.
That is why /compress-image-for-shopify already picks up hundreds of impressions: merchants search for a compressor because the admin upload does not do that job.
Does Shopify compress images automatically?
On upload: no.
On delivery: sometimes. The CDN may downscale and recompress depending on the image tag, the requested width, and the visitor's browser. You do not choose the quality, and you do not see the result until you measure the live page.
Treat Shopify like a CDN with a Media Library, not like TinyPNG. If the source is a 5 MB PNG screenshot of a product, the CDN has to work much harder than if you upload a 250 KB WebP.
Recommended sizes by placement
| Placement | Longest side | Target weight | Format |
|---|---|---|---|
| Product photo | 2048 px | 200-400 KB | WebP, quality 80-85 |
| Collection / listing thumb | 800-1200 px | 50-100 KB | WebP |
| Hero / banner | 2000-2500 px wide | under 300 KB | WebP or AVIF |
| Logo | actual display size | under 30 KB | PNG or SVG |
| Favicon | 32 / 48 / 180 px | a few KB | PNG |
| OG / social share | 1200 x 630 | under 200 KB | JPG or WebP |
Uploading a 4000 px original "so Shopify can downscale" looks convenient. It makes every app, every CSV, and every badly coded img tag more expensive. Resize first, then compress.
How to compress images for Shopify
- Resize to 2048 px on the longest side for product photos. Collection thumbs can go smaller.
- Convert photos to WebP at quality 82. Use JPG to WebP or the batch converter for a catalogue.
- Keep PNG for logos and transparent overlays, then compress the PNG.
- Upload through the product editor or a CSV. Shopify will still generate variants and may still serve AVIF to supporting browsers. You just stopped feeding it 4 MB originals.
The landing Compress images for Shopify is the tool. Pair it with the e-commerce optimisation guide if you need the conversion and LCP side of the same problem.
When a dedicated "Shopify image compressor" still makes sense
Shopify's delivery optimisation helps visitors. It does not help:
- Theme files that reference
master - Emails and wholesale PDFs exported from the same assets
- Apps that pull the original from the Admin API
- PageSpeed tests of the admin-uploaded file when the theme forgets
width/height
Pre-compressing the source is the only step that improves all of those at once. The official Shopify resizer does not replace it. Neither does "let the CDN handle it" when the source is ten times larger than it needs to be.
FAQ
Does Shopify compress images?
Not on upload. The CDN may recompress and switch format (WebP, AVIF) when serving the storefront. Optimise the source anyway: product 2048 px, 200-400 KB WebP.
What is the best Shopify image compressor?
There is no compressor inside the admin. Use a batch tool before upload, then let Shopify's CDN do delivery. Cloudinary and similar CDNs add another layer if you already run them. For a catalogue sitting on a laptop, convert to WebP once, then upload.
Does Shopify compress images automatically?
Delivery can. Upload does not. Automatic format conversion on the CDN is not a substitute for a 4 MB original.
Should I use Shopify's image resizer?
It is fine for a one-off resize. It does not convert to WebP, it does not batch a catalogue, and it does not strip weight the way a dedicated compressor does. Resize to 2048 px, then compress.