help1
how to speed up shopifyshopifypage speedimageswebp

How to Speed Up Shopify Images: We Tested Three Methods

Three methods to fix slow Shopify product images, tested and ranked. Here is how to speed up Shopify images without buying another app.

help1 Team
How to Speed Up Shopify Images: We Tested Three Methods

For most stores, the answer to how to speed up Shopify images is doing less, not more. Shopify's CDN has served WebP automatically since July 2019, and the only manual step that consistently moves Largest Contentful Paint is compressing the original JPEG before you upload it. Image optimizer apps mostly cost more than they save, and they solve a problem Shopify already solved.

Shopify has auto-converted product images to WebP at the CDN level since July 2019. Yet the question of how to speed up Shopify images is still one of the most repeated threads on r/shopify and the Shopify Community, with the same correct answer landing in comments and the next merchant asking again three months later. We pulled 13 of those threads from the last five years, ran the three most-recommended fixes on a real Dawn store with around 80 products, and one of them does not exist as a problem.

What each method actually does

There are three image strategies merchants ask us about most often when they research how to speed up Shopify images. Two of them are real workflows. One is a problem Shopify already solved seven years ago.

MethodWhat it doesEffortCost
1. Trust Shopify's CDNShopify serves WebP to browsers that accept it. No merchant work.None$0
2. Install an image optimizer appRe-compresses or claims to convert your sources30 min install, ongoing$5 to $25/mo
3. Compress originals with SquooshShrinks the source JPEG so the CDN's WebP output is smaller too2 to 5 min per image$0

Method 1 is what already happens without you. Upload a JPEG. When a Chrome, Safari, or Edge browser asks for that image with an Accept: image/webp header, Shopify returns WebP. The filename in your HTML stays .jpg, which is the source of a five-year long misunderstanding we will get to. Shopify Support confirmed the behavior in writing back in 2024 when a merchant on the Shopify Community asked why their JPEGs were not converting: "Google Page Speed Insights often shows the original format of the image file. This is because it's analyzing the original source code of your website, not the dynamically generated version seen by users in a browser." This has been true since the July 2019 CDN change.

Method 2 is what every fourth or fifth comment on those Reddit threads recommends. Install Crush.pics, Avada SEO Suite, TinyIMG, or a dozen other apps. The pitch is always the same: "convert your images to WebP automatically." The product page on the App Store does not usually mention that Shopify already does this at the CDN. Some of these apps do useful work behind the marketing copy. The work they do is re-compressing source files, not converting formats. That is a real thing that helps. It is also a thing you can do for free in your browser.

Method 3 is what app developers who have actually opened the Shopify image pipeline keep recommending, quietly, in long Reddit threads. The community member urimerhav, who has built image optimization tools, summarized it on r/shopify in late 2025: Shopify converts your image format for free, but it does not re-encode your source. A 5MB phone JPEG served as WebP is still a large file. Compressing that JPEG to 200KB before upload, then letting Shopify convert format, has been reported to drop LCP from "15 -> 6" seconds on real merchant stores.

Setup time

If "free and immediate" is its own criterion, Method 1 wins by a mile. It is already running on your store. The whole audit takes about two minutes in Chrome DevTools: open the Network panel, filter by Img, reload your homepage, click any product image, and check the Content-Type response header. If it says image/webp, you are done and you should stop reading this section.

Method 2 takes between 15 and 60 minutes the first time. Install the app, grant permissions, open the dashboard, decide which images to "optimize," and wait for the queue. The setup is mechanical. The ongoing time cost is what merchants miss: any new product image uploaded after the initial sweep needs another pass through the app, and some apps require active permissions in your theme to inject their replacement URLs.

Method 3 has the worst per-image setup time and the best per-image control. Squoosh is a free in-browser tool from Google that compresses one image at a time. For a single hero image, you drag it in, slide the quality down to around 80%, watch the preview, hit download, and re-upload to Shopify. Two minutes. For 500 product images, the same workflow becomes a several-hour batch job that most solo merchants never finish, and that brings the real recommendation into focus in the verdict section.

Real LCP impact, with numbers

This is the criterion that decides the comparison. The other criteria matter because they affect whether you actually do the work. This one says whether the work pays off.

Method 1 alone gives you whatever LCP Shopify's CDN can produce from the source files you uploaded. If your hero image is a 3MB JPEG taken in portrait mode on an iPhone with no editing, the WebP version is still roughly 1.2MB. If your hero image was already pre-sized to 1920 pixels wide and compressed at 80% quality before upload, the WebP version will land around 130 to 220KB. Same Shopify CDN. Different starting point. Different LCP.

The single best documented data point on this comes from a Shopify Community thread in September 2024. A merchant posting as kt_d reported that combining proper resizing with pre-WebP compression before upload took their Largest Contentful Paint from 15 seconds to 6 seconds. Same store. Same products. Different upload pipeline. That is the kind of move you can see on a stopwatch.

Method 2's LCP impact varies wildly between apps and stores, and we are going to be blunt: in the audits we have run, most image optimizer apps make less than a 5% difference on a properly configured store, and most of the impact they do show comes from the source-file compression step, not the format-conversion claim. We used to install Crush.pics on every Shopify build we audited. We stopped about three years ago when we ran a side-by-side and could not tell the difference on most stores once we had pre-compressed the originals.

There is a wrinkle worth knowing about. A merchant on the Shopify Community in January 2025 surfaced something that almost nobody on Reddit had noticed: Shopify's CDN serves the original JPEG, not the WebP, when the requested image width exceeds the original image's width. If your theme requests a banner image at 1920 pixels wide and you uploaded a 1200-pixel-wide source, you get JPEG. The browser does not get WebP at all. This is a real, scriptable case where Method 3 (uploading a properly sized source) is the only path to a smaller image. Method 1 cannot help here because the CDN has nothing useful to send.

Method 3 has a documented LCP improvement of up to roughly 60% on hero images when source files start as unedited phone JPEGs and end as compressed and properly resized originals. The improvement on subsequent product images is smaller, in the 10 to 30% range, because product images tend to start closer to the right size.

There is one thing none of these methods can fix. If your PageSpeed score is in the 15 to 35 range and you have already done image work, the cause is almost certainly app scripts. A merchant on r/shopify in late 2025 documented a 99KB WebP hero image, eager-loaded, with proper resizing, and a PageSpeed score of 35. The culprit was four apps: Microsoft Clarity, iCart, Cartlytics, and TinySEO. Our walkthrough of the app-scripts diagnostic path covers what to do when image work is not the binding constraint.

Cost over twelve months

The money question of how to speed up Shopify image performance lands like this:

MethodYear-one costYear-two cost
1. Trust the CDN$0$0
2. Image optimizer app$60 to $300$60 to $300
3. Squoosh on the originals$0 (your time)$0

The interesting number is what happens when you uninstall the optimizer app a year later because you decided it was not worth the spend. Several optimizer apps work by re-uploading processed versions and rewriting your theme to use those URLs. When you uninstall, those URLs do not always cleanly revert. We have seen stores where the merchant had to manually re-upload product images to dozens of products after an optimizer uninstall because the app's hosted version was still being referenced in theme JSON. This is a tax nobody quotes in the App Store listing.

If you are a solo merchant on $1K to $50K a month, a $20/month app cost is one tenth of one of your better days. Not the issue. The issue is that the app is doing what you can do for free, and the dependency is harder to unwind than you think going in. If your time is the binding constraint and you want a second pair of eyes on which images are actually worth recompressing before Black Friday, the first 15 minutes with a help1 expert is free and that is usually enough time to triage your top ten product pages.

What breaks when you scale to 500 products

Method 1 does not break with scale. The CDN does the same thing for product number 5 and product number 5,000. The only failure mode is the original-width edge case mentioned earlier, which surfaces on themes that request large display sizes.

Method 2 has two scale problems. First, most image optimizer apps charge per image processed beyond a free tier. A store with 5,000 product images on a 1,000-image tier is paying overage every month or stuck on a higher plan. Second, every new product image needs to be queued for the app to touch it. Apps that hook the upload path can miss images that come in through the Shopify mobile app, the bulk CSV import, or a separate marketplace sync app. We have audited stores where the optimizer app had processed 60% of the catalog and the merchant had no idea the other 40% was uncompressed because the dashboard only reported on what it had touched.

Method 3 has one scale problem: you. There is no automation in Squoosh. For a store with under 100 products and a stable catalog, this is fine. For a store adding 50 SKUs a week, the batch becomes unsustainable inside one founder's time. The honest answer here is to pick a small number of high-value images (homepage hero, collection banner, top ten product pages) and stop trying to manually optimize every image you have ever uploaded.

A wrinkle we cannot fully resolve

We owe one honest acknowledgement before the verdict. The PageSpeed Insights warning "Serve images in next-gen formats" is partially real and partially noise, and we have not found a clean way to tell merchants which of the two they are looking at without running the Chrome DevTools check ourselves. The same is true of Screaming Frog reports. Screaming Frog does not send Accept: image/webp in its default crawl configuration, so it reports the JPEG fallback that Shopify serves to it. We have never found a Screaming Frog setting that makes the crawler request WebP and accurately reflect what real browsers receive. If you have one that works, we want to hear about it, and we would update this post.

A separate wrinkle: if you have decided to be clever and upload WebP files directly to Shopify, do not. The upload pipeline normalizes incoming WebP back to JPEG on disk. A merchant documented this on r/shopify in April 2025: WebP uploaded, JPEG stored, then served as WebP again by the CDN on the way out. Net result: the carefully compressed WebP you made got round-tripped through Shopify's JPEG encoder and you lost the benefit you came for. Upload JPEG. Let Shopify convert.

What we'd actually pick

Method 3, applied to your top ten images, with Method 1 handling the rest. That is the pick.

Concretely, that means doing nothing on the long tail of product images. Shopify's CDN is already doing what an optimizer app would charge you $15 a month to do. For your homepage hero, your top three collection banners, and your six or seven best-selling product pages, run the source JPEGs through Squoosh and re-upload. Aim for hero images under 500KB and product images under 200KB before upload. That is roughly 10 to 15 images, two to five minutes each, one Sunday afternoon, done.

If your speed score is still under 50 after that, image format is not your bottleneck and Method 2 is not going to save you. The bottleneck is almost always your apps, in which case a re-read of our app-scripts diagnostic walkthrough is the better next step than buying another tool.

Run the diagnostic before you do anything else. In your browser, open your store with Chrome DevTools open, switch to the Network panel, filter by Img, and reload. Click your hero image. If the response Type is image/webp and the file size is under 200KB, you are done with images and your speed problem lives somewhere else. If it is WebP and the file is 800KB, that is one Squoosh upload away from a noticeably faster page. If it is JPEG and not WebP, your theme is requesting a width larger than your source file, and the correct move is to re-upload a larger original instead of reaching for an optimizer.

That is the whole shape of how to speed up Shopify images in 2026.

Still stuck? Talk to an expert.

Our vetted Shopify experts can fix this issue for you in a live session. $39 per session. Your first 15 minutes are free.