Your Store Is Fast on Your Laptop. That Is Not the Measurement That Matters
Here is a common sequence. A merchant hears the store feels slow, opens it on the laptop they are already working on, clicks through two or three pages, and finds nothing wrong. The homepage appears quickly. Images load. Everything behaves.
The test was real. It just measured the wrong device.
Storefront speed is not one number. It is a different number per device class, and the gap between them is usually wide enough to change the conclusion. A store can be comfortably fast on a desktop connection and genuinely painful on a mid-range phone on mobile data — and for most Shopify stores, the second group is the one placing orders.
Why the two diverge
The difference is not a quirk of measurement tooling. Phones and laptops are doing materially different work.
Processing headroom. The slowest part of loading a modern storefront is often not downloading files — it is parsing and executing JavaScript once it arrives. A laptop chews through that work with capacity to spare. A phone, especially a mid-range or older one, does not. The same bundle of theme scripts and app scripts costs more time on the device with less to give.
Network behaviour. Mobile connections have higher and more variable latency. Each additional round trip to fetch a script, a font, or a third-party widget costs more than it does on fixed broadband. A page with many separate requests degrades more sharply on mobile than a page with few, even at the same nominal bandwidth.
Layout. Desktop and mobile frequently render different hero images, different navigation, and different content order. The largest visible element on a phone may not be the same element as on a desktop, so the thing you need to optimise is not the same thing either.
None of this is correctable by looking harder at the desktop view. The two have to be measured separately.
The metrics break on different devices
Core Web Vitals are a useful lens here, because each of the three tends to fail for a device-specific reason.
LCP: the largest element is not the same element
Largest Contentful Paint measures when the biggest piece of content in the viewport finishes rendering. On a wide desktop layout that is often a full-width hero image. On a narrow mobile layout the same page may stack, crop, or replace that image, and the largest element becomes a different asset entirely — sometimes a much heavier one served at a size the phone never needed.
So a desktop LCP win does not transfer. Optimising the desktop hero can leave the mobile LCP element completely untouched.
CLS: narrow viewports shift more
Cumulative Layout Shift measures content moving after it first appears. Narrow layouts are more fragile. A promotional banner, a cookie notice, or a late-loading app widget that occupies a tidy corner of a desktop layout can push the entire mobile page down when it finally arrives. Content reflowing under a customer's thumb as they reach for a button is a mobile-specific failure, and it rarely shows up on a wide screen.
INP: taps land on the busiest device
Interaction to Next Paint measures how quickly the store responds to being used — tapping a variant, opening a filter, adding to cart. This is the metric most punished by limited processing headroom, because responding to an interaction competes with whatever scripts are still running. The device least able to absorb that cost is the phone, and the phone is also where the interaction is a tap on a small target rather than a precisely aimed click.
A store with respectable load times and poor mobile responsiveness is a very common combination. It is also one of the easiest to miss, because nothing about it looks broken in a screenshot.
What to check, in order
You do not need a device lab. You need to stop treating one device as the store.
1. Find out what your visitors actually use. Your Shopify analytics will give you the device split for sessions and for orders. Read both. If the two differ — plenty of traffic on mobile, a larger share of revenue on desktop — that is worth understanding before you optimise anything, because it often means mobile visitors are arriving and not converting.
2. Measure each device class on its own. Treat mobile and desktop as two separate sets of results rather than one blended score. A single averaged figure hides exactly the gap you are looking for.
3. Test on a real mid-range phone, not your own. Your phone is probably newer than your median customer's, and it is probably on your office Wi-Fi. Borrow an older device. Turn Wi-Fi off. Walk through the real path: landing page, collection, product, variant selection, cart, checkout entry.
4. Look at the per-page picture, not just the homepage. Product and collection templates carry different weight from the homepage, and they are where most purchase decisions actually happen.
5. Separate what you control from what you installed. Theme assets and installed apps both add scripts, and the ones that look negligible on desktop are not necessarily negligible on mobile.
That last point is where measurement has to become attribution. Knowing mobile is slow is the start. Knowing which theme assets and which installed apps are responsible is what makes it fixable.
Where monitoring helps
Speedscope tracks page speed and Lighthouse scores across your key pages, and reports LCP, CLS and INP against Google's Core Web Vitals thresholds, so the three failure modes above show up as data rather than as a complaint you cannot reproduce. App Impact Analysis scores each installed app by how much it slows the store down, and the theme performance view surfaces JavaScript, CSS and render-blocking assets — which is the attribution step that turns "mobile feels slow" into a specific thing to change.
Because it tracks history, you can also correlate a change in the numbers with the event that caused it: a theme update, a new app install, a traffic spike. Automated alerts fire when performance drops below the thresholds you set, which matters most for the failures you would otherwise only hear about from a customer.
The honest summary is this: one speed number for a storefront is an average of two quite different experiences. Your laptop reports the better one. Check the other.
If you want to see how your store performs where it counts, take a look at Speedscope — or open your store on the oldest phone in the building and buy something. Both are informative. One takes longer to argue with.