Case study · Shopify performance

A store that kept customers waiting — and couldn’t switch anything off.

Nuts Factory needed a faster storefront without disabling a single business-critical app. We made it dramatically lighter — and proved exactly what was still holding customers back.

Nuts Factory

·

· Shopify · eight days, August 2026

nutsfactory.com

−17.5 MB

Removed across the five busiest pages

74 → 100

Accessibility score

85 → 100

SEO score

−38%

Lighter homepage

01 — The brief

Make it faster, without putting the business at risk.

Nuts Factory sells nuts, chocolate and gift boxes, and the storefront looked the part. Behind that first impression it was asking a phone to pull down more than 21 MB before a shopper had really begun browsing — and most of that was video they never asked for.

The obvious fix was off the table. Every app on the store supported something the business depended on: loyalty, reviews, marketing, support. All of it had to stay switched on and behaving exactly as before.

So this was never a race to rip things out. It was a careful search for what could be made lighter safely — and for evidence strong enough to show who owned everything that couldn’t.

02 — What customers were experiencing

16.7 MB of video, before the visit had really started.

01

A hero video that made everyone wait

The homepage was auto-playing a 15.7 MB video at full desktop quality — on phones as well. A second video of nearly the same size sat right behind it. Before a shopper could comfortably look around, the page was already competing for their connection.

02

A safeguard that was never really there

The video had been marked to load lazily, so it looked deferred. Browsers ignore that instruction on video. The protection the team believed was in place was doing nothing at all.

03

A decorative logo charging every page

A small animated logo in the footer — rendered smaller than a postage stamp — shipped 725 KB, and downloaded again on every single page. Across a five-page visit that one detail alone pulls roughly 3.6 MB.

At that point the store scored 15 out of 100 for mobile performance, and the main image took 31 seconds to appear on a throttled connection.

03 — What changed

Fourteen ideas tested. Five earned their place.

Nothing here changed the creative, disabled an app or weakened an integration. Each change simply stopped the store charging shoppers for something they had not asked for yet.

01

The footer stopped billing every visitor upfront

That 725 KB animation now waits until it is nearly on screen. Checked on every template, on phones and desktop.

02

The social feed stayed — its early cost didn’t

286 KB deferred on the homepage, with the feed itself untouched.

03

Below-the-fold video stopped competing

13.2 MB is no longer fetched before anyone scrolls to it. The main hero was left exactly as it was.

04

The blank wait became something to look at

The top of the page had nothing to show until 16 MB had downloaded. A still frame now appears immediately while the video loads behind it.

05

A costly page transition was removed

With the client’s approval. The first content now appears about half a second sooner, and a rare 10-second worst case disappeared with it.

Page

Before

After

Change

Homepage

38.42 MB

23.85 MB

−38%

Product

6.51 MB

5.80 MB

−0.71 MB

Collection

6.46 MB

5.66 MB

−0.80 MB

Cart

6.09 MB

5.38 MB

−0.71 MB

Landing

5.20 MB

4.49 MB

−0.71 MB

All five, together

62.67 MB

45.17 MB

−17.50 MB (−28%)

One live fault turned up along the way, in the most important image on the site. Fixing it cut the wait for that image from 22.7 seconds to 5.5 — the single biggest improvement of the engagement.

04 — The honest part

17.5 MB lighter. The score barely moved.

Removing 17.5 MB moved Google’s overall performance score by one point. For most agencies that is the moment the report gets padded. Instead we went looking for the reason — and found it.

One of the store’s apps freezes the page for roughly 1.3 seconds on every single load, while it waits for two small replies from its own server. The replies add up to 323 bytes — less than this paragraph. Nothing else on the page can happen until they arrive.

Which is the useful part for the client. There is no longer any question of whether another round of image compression or theme tinkering would fix it. The delay has a name, an owner, and an evidence pack ready to hand to the vendor — worth somewhere between 9 and 28 points once it lands.

That single app accounts for more delay than everything the theme does put together. The store’s own code was measured at zero — a theory of mine that my own numbers disproved.

05 — Where it stands

Everything inside our control was finished.

Before

After

Accessibility

74

100

won

SEO

85

100

won

Layout stability

Zero measured shift on every template

won

Mobile performance

27

30 on the live store

vendor-owned

Best practices

58

58

vendor-owned

The ceiling is now arithmetic rather than opinion: until the app vendor ships a fix, the highest mobile score this store can reach is 72, no matter what else is done to it. The realistic target we handed over was 45–55 on mobile and 85+ on desktop.

Three items left the engagement as evidence packages rather than loose ends: the loyalty app’s two blocking requests, a duplicated marketing tag worth about 691 KB per page load, and a popup responsible for almost all of the store’s layout movement.

How this was measured: Lighthouse and PageSpeed Insights on mobile, three runs per page against a frozen copy of the original theme, with every app left active and the theme identity checked on every run. Two checks were deliberately not done — a theme-editor walkthrough, which needs an admin login I will not use, and testing on a physical handset, which was not available. An emulator is not the same thing, and was not presented as one.

Are your shoppers losing patience before your store earns their trust?

I’ll find the friction customers actually feel, protect what your business depends on, and show you exactly what can change — and what needs a different owner.

Book a call

© 2026 All right reserved

© 2026 All right reserved

© 2026 All right reserved