A client's Shopify store was carrying 239 MB of image assets, and one product video was 368 MB on its own. I got the images to 26 MB and the video to 39 MB with no visible quality loss. That is 213 MB gone from the images alone.
Mobile still scores 65 on Lighthouse, with a largest-contentful-paint of 11.4 seconds.
I am writing this down because image weight is the first thing everyone reaches for. It is the advice in every "speed up your Shopify store" article. On this store, it was not the thing holding the page back.
None of it was exotic. Product photos uploaded at full camera resolution and displayed at 400 pixels wide. PNGs where a WebP would do. A hero video exported once and never looked at again. Shopify will happily serve all of it.
The fixes were the boring ones: serve WebP, request each image at the size it is actually displayed at rather than the size it was uploaded at, and let the CDN do the resizing instead of shipping the original and scaling it down in the browser.
After all of that, the measured state of the store is a mobile performance score of 65 and an 11.4-second LCP. Desktop is 56.
I could leave that out of this post. Most case studies would. But a before-and-after that only shows the flattering half is not a measurement, it is marketing. The useful part is why the number stayed where it did.
The single largest item in the audit is 522 KB of unused JavaScript. Not images. Not the theme. Apps.
Every Shopify app that adds a widget, a popup, a review carousel or a loyalty badge also adds a script, and that script usually loads on every page whether or not the page uses it. A reviews app loads on the contact page. A bundle builder loads on the blog. None of that is visible in the admin, and none of it shows up as a line item anyone is looking at.
Images are heavy but they are lazy. A picture below the fold can wait. JavaScript is not polite like that: it parses and executes on the main thread, and while it does, nothing paints. That is how a store loses most of its image weight and still feels slow on a phone.
Run your store through PageSpeed Insights and ignore the score. Scroll to the diagnostics and read two lines: Reduce unused JavaScript and Properly size images. The first tells you what your apps cost you. The second tells you what your uploads cost you.
Then open your installed apps list and put a name next to each one: what it does, and the last time anyone looked at what it produced. Anything you cannot answer for is a candidate.
Two things worth knowing before you start. Uninstalling a Shopify app does not always remove the code it injected into your theme, so check afterwards rather than assuming. And measure one change at a time, or you will have a faster store and no idea which change bought it.
Most Shopify speed problems are not the theme. They are what has been added to it, and what loads eagerly versus lazily.
If your store feels slow on a phone and you have already compressed the images, the pictures were never the problem.
Want to know what's actually slowing down your store?
Take the free 2-minute audit, or send me your URL and I'll tell you which change buys you the most milliseconds.
Take the free audit → Or book a call