CRO · PERFORMANCE · THEME · 19 AUGUST 2025 · 9 MIN READ
Mobile conversion: the gap between your traffic and your revenue
Most of your sessions are phones and most of your revenue probably is not. Some of that gap is measurement, some of it is intent, and a stubborn part of it is your theme.
Because three different things are being added together and reported as one number. Part of the gap is measurement — a customer who browses on a phone and buys on a laptop is counted as two sessions and one conversion, and the phone session looks like a failure. Part of it is intent, because the traffic sources that land on mobile skew towards discovery rather than purchase. And part of it is genuinely your store: a phone has less screen, worse network conditions, a less precise pointer and a more interrupted user. Only the third part is fixable, so the first job is working out how much of your gap it accounts for before anyone starts redesigning a product page.
IN SHORT
- A single device-split conversion rate mixes measurement artefacts, traffic-mix differences and real usability problems into one unusable number.
- Cross-device journeys depress mobile conversion by construction: the browsing session and the buying session are attributed to different devices.
- Google’s “good” Core Web Vitals thresholds are 2.5 seconds for LCP, 200 milliseconds for INP and 0.1 for CLS, assessed at the 75th percentile and segmented across mobile and desktop.
- Shopify requires a minimum average Lighthouse performance score of 60 across home, product and collection pages for Theme Store themes — a floor for listing, not a target for your store.
- Shopify’s own performance guidance is blunt about apps: audit every script and remove anything that is not earning its performance cost.
- Segment before you optimise — compare like traffic to like traffic, or you will attribute a traffic-mix change to a design change.
Before you fix anything, work out what you are looking at
Every store we audit has the same chart and the same reaction to it. Mobile is the majority of sessions — Shopify’s own performance documentation notes that mobile devices account for the majority of Shopify storefront traffic — and the conversion rate beside it is the lower of the two. The instinct is to conclude the mobile experience is broken. Sometimes it is. Often a large share of the gap was never a usability problem at all.
Cross-device journeys. Somebody finds you on a phone during the commute, thinks about it, and buys on a laptop at lunchtime. Unless they were logged in on both, that is two sessions on two devices with one order, and analytics assigns the whole credit to the laptop. The phone session is recorded as a non-converting mobile visit. For considered purchases — furniture, anything over a couple of hundred pounds, anything requiring measurements — this is not a rounding error.
Traffic mix. Paid social, influencer links and organic discovery arrive overwhelmingly on mobile, and they arrive earlier in the decision. Branded search and email arrive with intent, and email in particular is often opened on a phone but acted on later. If your mobile traffic is structurally further from a purchase than your desktop traffic, comparing the two conversion rates measures your channel mix, not your store.
In-app browsers. A tap from Instagram or TikTok opens inside that app’s own browser, which behaves differently from Safari or Chrome — different storage rules, different handling of some payment flows, occasionally different script behaviour. Sessions that begin there can look broken in ways that have nothing to do with your theme.
None of this is an argument for complacency. It is an argument for segmenting. Compare mobile and desktop *within the same channel*, ideally within the same campaign, and the residual difference is the one your theme is responsible for. That number is usually smaller than the headline gap and far more actionable, because you can actually go and find its causes.
What a phone genuinely takes away
With the measurement noise stripped out, there is a real difference, and it comes from four constraints that no amount of design flair removes.
- Screen area. Everything competes for the same small space, and the things a desktop page shows alongside each other — price, variants, delivery, returns, reviews — become a sequence. Sequencing is a decision, and most themes make it badly by default.
- Input precision. A finger is not a cursor. Small controls, tightly packed swatches and thin close buttons all produce mistaps, and a mistap on a variant picker is an order for the wrong size.
- Network and device variance. Your team tests on a recent phone on office wi-fi. A meaningful share of your customers are on older devices and worse connections, where the JavaScript your apps inject costs several times what it costs you.
- Attention. Phone sessions get interrupted. Anything that loses state when the customer switches away and comes back — an unsaved cart, a form that clears, a modal that reopens from the start — converts a pause into an exit.
Speed, with the numbers that actually count
Speed is the most over-claimed and under-measured lever in ecommerce, so it is worth being precise about what the targets are. The Core Web Vitals thresholds for “good” are 2.5 seconds or less for Largest Contentful Paint, 200 milliseconds or less for Interaction to Next Paint and 0.1 or less for Cumulative Layout Shift. Critically, those are assessed at the 75th percentile of page loads, segmented across mobile and desktop — which is to say they are explicitly a measure of your worse sessions, not your median one.
That percentile is the reason your internal testing disagrees with your field data. The lab test on a fast device is somewhere near your best case. The 75th percentile is the customer on a three-year-old handset on a train.
Shopify publishes a floor rather than a target: a theme must have a minimum average Lighthouse performance score of 60 across the home page, product page and collection page to be listed in the Theme Store. Read that as the entry requirement it is. Your live store carries apps, pixels and merchandising the demo store did not, and starting from a fast theme is not the same as staying fast.
Shopify’s own theme performance guidance is unusually direct about where the cost goes: audit all scripts, including apps, tracking pixels and theme code, and remove anything that is not earning its performance cost. In practice that one sentence is most of the work. We routinely find four analytics tools where one is used, two review apps where one was replaced but never uninstalled, and a personalisation script for a campaign that ended last year.
The specific technical points Shopify documents are worth applying literally, because they are the ones themes get wrong most often: never lazy-load the LCP image, load images visible in the initial viewport eagerly, apply fetchpriority="high" to the LCP image, always include width and height attributes on <img> tags — or use image_tag, which adds them automatically — and use defer and async on non-critical scripts, loading heavier JavaScript on user interaction via dynamic import(). Then, as Shopify puts it, test with realistic throttling and representative devices.
The things we find on nearly every mobile audit
Unglamorous, repetitive, and collectively worth more than any redesign.
- The price and the add-to-cart are below the fold, and there is no sticky bar. The customer scrolls a full screen of imagery before learning what it costs.
- Layout shift on arrival. Images without dimensions, a cookie banner that inserts itself, a review widget that pushes the button down a moment after it is tapped. This is CLS, it is measurable, and it is felt as the page fighting back.
- Variant selection that punishes imprecision. Tightly packed swatches, dropdowns for something that should be buttons, and no confirmation of what is currently selected once the picker has scrolled out of view.
- Wrong keyboards. Numeric fields without a numeric input type, email fields without the right type or autocomplete hints. Every one of those is friction the browser would have removed for free.
- Delivery information hidden behind a tab. On desktop the accordion is a tidy convenience; on mobile it is the difference between answering “when will it arrive” and not.
- Fixed bars eating the viewport. A promo bar, a header, a cookie notice and a chat bubble can take a third of a small screen between them, and each was approved separately.
- A gallery you cannot actually use. Pinch-zoom disabled, swipe competing with page scroll, and no way to see the detail that decides the purchase.
- A cart that loses its place. Adding an item returns the customer to the top of the collection rather than to the product they were looking at.
Checkout is the shortest and most expensive part
By the time someone reaches checkout on a phone they have already done the hard part, so the return on removing friction here is disproportionate. The single biggest lever is that express wallets skip address and card entry entirely — typing a card number on a phone is the slowest thing you will ever ask a customer to do, and the wallet already knows the answer. That is worth doing on its own merits, and worth being sceptical about when a vendor quotes you an uplift figure for it.
Beyond that, the mobile-specific checks are small: make sure address autofill works rather than being defeated by custom field names, make sure the discount code field does not send people off to a browser tab hunting for a code they were never going to find, and make sure error messages appear where the customer is looking rather than at the top of a scrolled page.
How to know whether any of it worked
Pick the segment first. One channel, one device class, one page type. Then measure the step, not the sale: if you changed the variant picker, the number that should move is the add-to-cart rate on that page from that traffic, and it should move before revenue does. Revenue is too noisy at most stores’ volumes to attribute a product-page change to within any sensible timeframe.
Watch field data rather than lab scores for performance work. A Lighthouse run is a diagnostic, not a result; the 75th-percentile field numbers are what Google is assessing and what your customers experienced. And record what else changed that month, because a promotion, a channel-mix shift or a seasonal swing will happily take credit for your work, or take the blame for it.
If you want an honest before-and-after, the cheapest instrument is still watching recordings of ten mobile sessions on the page you are about to change. It is not statistically valid and it will tell you more in twenty minutes than a fortnight of dashboards.
What we would talk you out of
A separate mobile site. It doubles the maintenance, splits the analytics, and solves a problem responsive layout solved years ago.
A redesign as the first move. Most mobile gaps we measure are a handful of specific defects in an otherwise reasonable theme, and a redesign replaces the defects you have identified with a new set you have not.
And any optimisation tool that works by injecting JavaScript into a page you are trying to make faster. Client-side testing and personalisation platforms are not free, they cost most on exactly the slow devices where your conversion problem lives, and the flicker they introduce is visible to the customer. If the whole programme is one or two decisions, make them properly and skip the tooling.
Questions this raises
Why is mobile conversion lower than desktop?
Three causes stacked into one number. Cross-device journeys attribute the browsing session to the phone and the order to the laptop; mobile traffic skews towards discovery channels that are further from a purchase; and phones genuinely impose smaller screens, less precise input, worse network conditions and more interruption. Segment by channel to isolate the part your store is responsible for.
What are the Core Web Vitals thresholds for mobile?
The same as desktop, but assessed separately: 2.5 seconds or less for LCP, 200 milliseconds or less for INP and 0.1 or less for CLS. They are measured at the 75th percentile of page loads and segmented across mobile and desktop, so they describe your worse sessions rather than your typical one.
Is a fast Shopify theme enough to be fast?
No. Shopify’s Theme Store requires a minimum average Lighthouse performance score of 60 across home, product and collection pages, which is a listing requirement rather than a target. A live store adds apps, pixels and merchandising that the demo store never carried, and that is where most of the weight arrives.
What should I fix first on a mobile product page?
Get the price and the add-to-cart reachable without scrolling, or add a sticky bar. Then eliminate layout shift on arrival — image dimensions, the cookie banner, late-loading widgets. Those two changes affect every visitor to the page, which is more than any variant test you could run on it.
How much traffic is mobile on a Shopify store?
It varies by category, so use your own analytics rather than a benchmark. Shopify’s theme performance documentation states that mobile devices account for the majority of Shopify storefront traffic, which is the right starting assumption when you are deciding where to spend testing effort.
Should I build a separate mobile site or a mobile app?
Almost never for the conversion gap alone. A separate mobile site doubles maintenance and splits your analytics, and an app solves retention problems rather than acquisition ones. Both are large commitments made to avoid a smaller, more specific piece of work on the store you already have.
NEXT STEP
Free store audit
A senior Shopify engineer reviews your storefront, theme performance and checkout, then sends a prioritised list of fixes.
