What Three Shopify Mobile Bugs Did to One Fragrance Store
Iris ran an indie fragrance brand at 0.3% mobile conversion for months. Three shopify mobile bugs explained the gap. The fixes took an afternoon.

Iris runs a small indie fragrance brand out of a converted attic in Leeds. About 140 orders a month, mostly $32 sample sets and $58 full bottles, almost all coming from TikTok. She built the store herself on the Horizon theme in late 2025, watched the first six months go better than she expected, and then watched the next four months go quietly wrong. Her mobile conversion rate had been sitting somewhere under 0.4% for a full quarter. She did not know why. She had a guess for every week of the quarter and a different guess every week.
She emailed me in May with a screenshot of her PageSpeed score, a screenshot of her Meta ads manager, and a one-line question: "is this Shopify, or is this me?"
It was Shopify, partially. It was mostly her phone.
Quick answer
The store had three shopify mobile bugs stacked on top of each other, and each one was invisible from the Shopify theme editor's mobile preview. A sticky add-to-cart bar styled in a near-background color, a chat widget parked on top of the buy button on iOS only, and a missing viewport meta tag that had silently turned every mobile CSS rule into a no-op. None of them would surface in a desktop test. All three were costing her sales the whole quarter.
What she had tried
By the time she wrote, Iris had already spent two months trying to fix the conversion problem from the wrong angle. She had A/B tested two new hero images. She had rewritten the product copy on her top three SKUs. She had paid an agency $480 for "speed optimization" that turned out to be a Lighthouse score bump from 41 to 58 with no measurable impact on the cart funnel.
She had also done what most solo merchants do when they panic: she had bought more apps. A scarcity timer. An exit-intent popup. A new chat widget because the old one "felt slow." Each app added a small bit of weight to mobile and none of them addressed what was actually broken.
The thing she had not done, because no one had told her to, was open her own store on her own phone, walk through the buy flow as a customer, and look at every screen the way a stranger would. The theme editor's mobile preview had told her the store looked fine. She trusted the preview.
The preview was lying.
Why nothing worked
The theme editor renders mobile inside a desktop browser. It uses a scaled iframe and injects its own viewport handling so the layout looks reasonable, but it does not faithfully reproduce iOS Safari's rendering quirks, Android Chrome's overflow behavior, or the way a sticky widget actually stacks on a 6.1-inch screen. The gap between "looks fine in the preview" and "broken on a real iPhone" is wide enough to hide most of the failure modes I see on these stores.
When I opened her store on my own phone, the first thing I noticed was the add-to-cart button. It was there. It was sticky to the bottom of the screen exactly as the theme advertised. But she had styled it in a soft cream tone that her brand uses for backgrounds, and her hero section was the same soft cream. The button blended into the page. I had to scroll three product cards down before I could pick it out by eye, and even then I had to look for it. On a desktop monitor with proper zoom, the button was perfectly legible. On a phone at arm's length, in the kind of light most people read in, it disappeared into the page.
That was bug one.
Bug two showed up when I tapped the buy button on a product page. The button registered the tap and the bag opened, but a heartbeat before that, my finger had clearly hit the corner of her live chat widget. The chat bubble was positioned bottom-right and was about a thumb's width across the buy button's tap target. On Android the chat sat slightly higher and the conflict was invisible. On iOS Safari it was right on top of it. iOS-only mobile failures are the hardest to find because most developers test on Android emulators or in DevTools, both of which paint the layout the way the desktop browser thinks it should, not the way the actual phone renders it.
Bug three I did not see at first. The reason was disorienting: most of her pages did look like the mobile layout. The cart drawer opened on a small screen the way you would expect. The header collapsed into a hamburger. The product cards stacked vertically. The site felt like a mobile site. But about one in three loads, on a hard refresh from a cold network, the page would briefly render at the full desktop layout, scaled down to fit the screen, before snapping back to the mobile layout a half-second later. I had to test it across four different sessions before I trusted what I was seeing.
The root cause turned out to be the meta viewport tag in theme.liquid. It was gone. Not commented out. Not malformed. Simply absent from the <head> block. Without that tag, mobile browsers default to a virtual viewport width somewhere around 980 pixels and then scale the rendered page to fit the screen. CSS media queries keyed on max-width: 749px never fire because the browser does not think it is on a 749px-wide screen. The site renders as the desktop version, miniaturized. The theme editor preview is immune to this, because the editor injects its own viewport handling before showing you anything.
The tag had not been removed by Iris. She had not edited theme code in her life. The most plausible culprit was a third-party app she had installed during her April panic, which had quietly modified theme.liquid during install and never put the line back. I cannot prove which app did it. I can say the timing lined up.
The thing that surprised me
The surprise was not any one bug. I have seen all three before. The surprise was how comprehensively the Shopify admin had told her everything was fine. The theme editor preview showed the correct mobile layout. The PageSpeed score had been climbing. The analytics dashboard reported the conversion rate without flagging it as anomalous, because Shopify analytics does not know what your mobile conversion should be. The Lighthouse audit had not flagged the missing viewport tag because Lighthouse was running against a desktop simulation when she ran it.
Every diagnostic surface she had access to was reporting green. The actual store, on the actual device her customers were using, had three independent shopify mobile bugs running at once. If you only ever look at the editor and the dashboard, you never find out. You assume the conversion gap is creative or copy or pricing, and you spend two months iterating on those. Iris had.
I have seen the same shape of problem at six other Shopify stores in the last year. Different bugs every time, but the same root cause: the merchant has never opened their store on their own phone in the wild, with a cold cache, on cellular, the way a customer would. If you want a second pair of eyes on yours before you spend more on agencies or ads, help1's chat is the right shortcut and the first fifteen minutes are free.
What we ended up doing
The three shopify mobile bugs each had their own fix path and none of them required code I had to write from scratch. We did three things, in this order, and all of it ran inside one afternoon.
-
Restyled the sticky add-to-cart bar. I set the button background to her brand's warm coral, raised the text contrast against the cream page, and added a thin shadow so it would lift visually off the hero section instead of melting into it. This took about ten minutes including testing on three screen sizes.
-
Repositioned the chat widget. Her chat provider exposed a vertical-offset setting under its mobile-only configuration. I moved the bubble up by 80 pixels on phones only, which cleared the buy button entirely and still left the bubble accessible. I also reduced the bubble size by one notch on mobile because it had been pulling more attention than her actual product imagery. About fifteen minutes.
-
Restored the viewport meta tag. I duplicated her theme first, then added
<meta name="viewport" content="width=device-width,initial-scale=1">to the top of the<head>block inlayout/theme.liquid. Saved, previewed on my phone, confirmed the desktop-flash had stopped. Published the duplicate. About five minutes plus the duplication wait.
I left her with two pieces of habit-change advice she did not really want to hear. First, every two weeks, open the store on her actual phone, in airplane mode then cellular, and walk through the whole buy flow. Second, before installing any app, duplicate the theme, install on the duplicate, do the same walkthrough, then either publish the duplicate or roll back. Both habits sound obvious. Both are what most merchants stop doing within ninety days of launch. If you want a baseline scan to surface this class of problem on your own store before you start a manual walkthrough, help1's free Shopify diagnostic checks for missing viewport tags, sticky elements with low contrast, and theme files that have been modified by apps.
What this means for your store
Most of the shopify mobile bugs I find in stores like Iris's are not subtle. They tend to be layout failures and obstruction failures that anyone holding the actual phone for five minutes would catch in the first five minutes. They are rarely edge-case CSS quirks or theme version regressions. The reason the merchant did not catch them is that they have not been doing the five minutes. The theme editor lied to them and they believed the theme editor.
The other thing worth taking seriously: at least one of the three shopify mobile bugs Iris had, the viewport tag removal, was caused by a third-party app she installed during a period of stress, never noticed, and could not have been expected to notice from the admin. That class of failure - apps quietly modifying theme code on install - is a real and growing pattern in 2026. The defense is not vigilance. It is duplicating the theme before any app install and walking the duplicate through a phone before you publish it.
You do not need an audit tool to catch most of this. You need a phone and twenty minutes. If you want a second opinion on what your phone is showing you, that is what help1's expert chat is for, and that fifteen minutes runs free.
Back to Iris
Three weeks after the fixes shipped, Iris emailed me again. Her mobile conversion rate over those three weeks was running just under 1.5%, up from somewhere in the low 0.3s. She had not changed her ads, her copy, her photography, or her catalog. She had not bought any more apps. The only thing different about her store was the three corrections we made in one afternoon.
What she said in that second email, the part I keep thinking about, was that she had stopped checking the dashboard every morning with dread. Before the fix, she had been opening Shopify analytics first thing every day, watching the conversion line, and bracing for it to keep dropping. After the fix, she said, she had gone four days without opening the dashboard at all, because she had stopped expecting the news to be bad. The mornings were hers again.
She did keep the habit of opening her store on her phone every other week. She caught a fourth shopify mobile bug on her own two months later: a new app she had installed had reintroduced a tiny banner that overlapped her cart icon on iPhone. She fixed it in nine minutes, told me about it in a one-line email, and went back to running her store.
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.