Shopify's reports are accurate. They're also answering a narrower question than most people think, which is why they never match GA4 and why the gap isn't a bug.

Shopify's analytics are not wrong.
That's worth saying first, because most posts on this topic open by implying the numbers are broken and you need to buy something. They aren't broken. They're precise, they're free, and they're already in your admin.
The problem is narrower and more annoying. Shopify answers one question extremely well, and most of the questions you actually have are a different question.
What Shopify is counting
Shopify is an order system that grew a reporting layer. That heritage shows up everywhere in the numbers.
It counts orders with total confidence. It knows exactly what was sold, for how much, to whom, with what discount, at what point in time. That data is as close to ground truth as you will get.
It counts sessions with much less confidence, because a session isn't a thing that happens in the order system. It's a thing that happens in a browser, which Shopify observes from a distance through a script that ad blockers, privacy settings and a suspicious number of iOS defaults will interfere with.
So Shopify's conversion rate is a confident numerator sitting on top of a shaky denominator.
Keep that sentence in mind, because it explains most of what follows.
Why your numbers never match GA4

Here's the argument every ecommerce team has had at least once. Shopify says the store did $84,000. GA4 says $71,000. Somebody is asked to find out which is right, spends two days on it, and reports back that they're both right.
They are. The two systems are measuring different events.
Shopify counts an order when the order is placed. Attribution belongs to whatever session the order happened in.
GA4 counts a conversion against the session it attributes the journey to, which may be a different session, on a different day, from a different source. It also applies its own attribution model, drops sessions that never fired the tag, and times sessions out on its own schedule.
Then there's everything around the edges. Refunds get handled differently. Draft orders and point-of-sale orders show up in Shopify and not in GA4. Test orders sit in one and not the other. Currency conversion can happen at different moments.
The gap is usually somewhere between 5% and 20%, and it isn't a sign that something is misconfigured. It's the shape of the two systems.
The practical answer is boring and it works: pick one as the source of truth for revenue, write it down, and stop relitigating it. Shopify for money, because it owns the orders. GA4 for behavior and traffic sources, because it owns the sessions. Anyone who brings a contradicting number to a meeting gets asked which system it came from before anyone argues about it.
The reports worth opening
Most of the Shopify analytics section goes unused. Three reports carry most of the value.
Sessions by device. Open this one first, and expect to be irritated. Median session conversion on Shopify sits around 1.9% on desktop and 1.2% on mobile. If most of your traffic is mobile, which it is, then your blended conversion rate is mostly a mobile number wearing a disguise. Teams optimize on desktop because that's what's on the monitor in front of them.
Sessions by referrer and by landing page, together. Either alone is a vanity metric. Together they tell you which acquisition source lands on which page and what happens next, which is the only version of this that leads to a decision.
Returning customer rate. The quietest important number in the admin. It decides whether discounting a first order is acquisition or just a smaller sale, and it changes what every other metric is worth.
The reports that mislead
Average order value, alone. AOV goes up when you lose small orders. A store that just got worse at converting budget buyers shows a rising AOV and a falling revenue line. Always read it next to order count.
Conversion rate over short windows. Daily conversion rate on a store doing a few hundred sessions a day is mostly noise. People still make decisions on it, usually on a Monday, usually about something that happened on a Saturday.
Top products by revenue. It tells you what sold. It doesn't tell you what got looked at and rejected, which is where the money you're not making lives.
The live view. It's fun. It has never once changed a decision.
What it structurally can't tell you
This is the real limit, and no amount of clicking around the admin gets past it.
Shopify records what happened. It has no view of what people saw. It doesn't know that your shipping cost appears after the customer has already committed mentally, or that your size guide opens a modal that traps people on mobile, or that your third product image is the one that answers the objection and it sits below the fold on a phone.
Analytics can tell you there's a drop between the product page and the cart. It can't tell you that the drop is caused by a price that looks higher than the competitor a tab away.
That's a different kind of question, and it needs someone to look at the pages the way a customer sees them, on the device they see them on. That's the work our audit does: 500 checks across the store, mobile and desktop, every page, scored against a pass bar rather than an opinion. Then we build the change and adjudicate it against real revenue, so the answer arrives as a number.
You can do this without a tool. Open your own store on your own phone, on cellular data, as a first-time visitor, and try to buy something. Most founders find two or three things in twenty minutes. The catch is that you'll do it once, and the store changes every week.
Where the paid tools fit
If you need attribution across paid channels, Triple Whale and Northbeam both do that job for Shopify brands and either is a reasonable buy once ad spend is large enough that guessing is expensive. If you want privacy-friendly session analytics without the GA4 learning curve, Plausible and Fathom are clean.
None of those change anything on your store. They're measurement, and measurement is the half of the problem that already has good answers. The half that doesn't is turning a finding into a shipped change with a verdict attached, which is where we sit and why we built it that way.
The short version
- Shopify counts orders with certainty and sessions with much less. Its conversion rate inherits both.
- Shopify and GA4 will never match. Pick one for revenue, one for behavior, and move on.
- Read device-split conversion before anything else. Your blended number is hiding mobile.
- Read AOV next to order count, always.
- No report in the admin can tell you what the visitor saw. That gap is the whole job.



