Shopify Analytics vs GA4: Why the Numbers Differ and Which to Trust
Shopify Analytics vs GA4 never agree. Here is why sessions, orders and revenue differ, which one to trust for what, and how to reconcile a gap that looks wrong.
date
You open Shopify Analytics and see one number for last week. You open GA4 and see a different one. Sessions are off by a fifth, revenue is off by a tenth, and the conversion rate on one dashboard looks like a different business from the other. This is the Shopify Analytics vs GA4 problem, and every store owner we work with in Glasgow and beyond has hit it.
The gap is permanent. The two tools measure different things, in different ways, from different places. The problem is not the gap itself. The problem is that not understanding it stops you trusting either dashboard, and a store that does not trust its data stops making decisions. Here is why the numbers differ, what a normal gap looks like, and a rule you can work to.
Sessions are defined differently
Both tools end a session after 30 minutes of inactivity, so on the surface they should agree. They do not. GA4 is event based: a session starts when it sees a session_start event, it can be reset by a new campaign parameter, and its timeout can be changed per data stream by whoever set up your property. Shopify counts sessions on its own server side model, and in September 2026 it updated that model so a visit no longer needs a conventional storefront pageview to count. A shopper who lands straight on checkout from a cart link is a session in Shopify but may not be one in GA4.
Then there is the bigger factor. GA4 only knows about a session if its script loaded and its cookie survived. Shopify knows about every request that hit its servers. That alone means Shopify almost always reports more sessions than GA4, and since conversion rate is orders divided by sessions, the two conversion rates cannot match either.
Attribution: the Shopify GA4 discrepancy that causes the most arguments
Shopify's marketing reports default to last non-direct click with a 30 day lookback. The order goes to the most recent channel that was not a direct visit, and if nobody bought within 30 days the stored referrer resets. You can switch the report to other models, but most merchants never do.
GA4 defaults to data driven attribution, which spreads credit across touchpoints in its own lookback window. So the same order can be a Google Ads sale in GA4 and an email sale in Shopify, and both tools are right by their own rules. If you are comparing channel revenue across the two dashboards you are not comparing like with like. Pick one model per question and stay in one tool to answer it.
Consent banners remove GA4 data that Shopify still records
This is the largest single cause of the gap for UK stores. Under UK GDPR and PECR, analytics cookies need consent. When a visitor clicks reject, or ignores the banner entirely, GA4 either receives nothing or receives cookieless pings that Consent Mode models into estimates. Shopify's own analytics keep recording the session and the order because they run first party on the platform. Industry surveys through 2025 put explicit opt out rates on compliant European banners somewhere between a third and a half of visitors, with more lost to people who never make a choice. Ad blockers take a further slice on top.
If that number sounds high, it is why so many stores now move their measurement server side. We covered the setup options in server side tracking on Shopify: GA4, Meta CAPI and Consent Mode v2. It narrows the gap, but it never closes it. Consent still applies.
Checkout, cross domain and the last mile
Shopify's checkout runs on a different domain from most storefronts, and on older setups that broke GA4's session on the way in. The Google and YouTube channel app and Shopify's customer events pixel handle this far better than the legacy tags did, but plenty of stores still run old Google Tag Manager containers alongside the new pixel. Double firing purchase events inflates GA4 revenue. Purchase events that never fire deflate it. Either way, GA4's revenue number is a copy of what a browser managed to send, not a record of what was sold.
Refunds, cancellations, tests, bots and settings
A handful of smaller factors add up to a surprising amount of ecommerce reporting drift on Shopify:
- Refunds and cancellations. Shopify adjusts net sales when you process a refund. GA4 only knows about a refund if someone sends it a refund event, and almost nobody does. GA4 revenue is therefore permanently gross.Test and draft orders. Bogus gateway orders and draft orders can appear in one tool and not the other depending on how you filter.Bots and internal traffic. GA4 filters known bots automatically and lets you define internal traffic rules. Shopify applies its own filtering. The two lists are not the same.Time zone and currency. A store on Europe/London with a GA4 property left on US Pacific time will disagree on which day an order belongs to. Multi currency stores can also report GA4 revenue in the presentment currency while Shopify reports in the store currency.Sampling and thresholding. GA4 Explorations on a standard property sample above 10 million events per query, and if Google Signals is on, data thresholds hide rows with low user counts. Shopify does neither.
The rule: Shopify for money, GA4 for behaviour
Here is the rule we hold clients to. Shopify is the source of truth for orders, revenue, average order value and refunds. It has the actual transaction record. GA4 is the better tool for behaviour: which pages people saw, where funnels leak, how channels compare against each other under a consistent model, and what happened on the site before someone bought. If you want to know what you sold, ask Shopify. If you want to know why people did not buy, ask GA4.
Never put a Shopify metric and a GA4 metric on the same chart. The gap between them is not an insight. It is two rulers of different lengths.That means no GA4 sessions divided by Shopify orders to make a conversion rate. No Shopify revenue split by GA4 channel. Each tool's ratios are only valid inside that tool, because the numerator and denominator were collected the same way. We go deeper on which store metrics deserve your attention in Shopify Analytics: the metrics that actually matter.
What size of gap is normal, and how to reconcile one that is not
From the stores we have audited and from published benchmarks, GA4 typically reports 10 to 20 percent fewer sessions and 10 to 20 percent less revenue than Shopify once consent and blockers are accounted for. A well configured server side setup can bring that towards the 5 to 10 percent range. A gap above 30 percent, or a gap that suddenly changes size, usually means something is broken rather than merely different.
When the gap looks wrong, work through it in this order:
- Check the date range, time zone and currency on both tools match before anything else. Half of the panicked emails we get end here.Compare order counts, not revenue. Orders are a cleaner test because refunds and currency do not affect them.Look for double purchase events in GA4's realtime view by placing a test order. Two events per order means an old tag is still firing.Check your consent tool's report. If accept rates dropped after a banner change, the GA4 drop is real and expected.Segment by device. A gap concentrated on iOS Safari points to tracking prevention, not a tagging error.Only then check the pixel or tag itself, and check it on checkout as well as the storefront.
Why this matters more than it seems
Most Shopify brands we meet do not have a traffic problem. They have a conversion problem, and the fastest way to fix a conversion problem is disciplined testing. Testing stalls the moment a team stops trusting the numbers, because every result gets argued about instead of acted on. Getting your measurement straight is not the glamorous part of conversion rate optimisation, but it is the part that has to come first.
It is why measurement clean up is one of the first things we do inside our Conversion Growth Retainer. After 12 years and more than 100 Shopify projects, we have learned that a store with clear, honestly interpreted data will out test a store with twice the traffic and a dashboard nobody believes.
Takeaway: stop trying to make Shopify and GA4 agree. Give each tool one job, keep their numbers on separate charts, and treat a gap over 30 percent as a fault to fix. If your dashboards disagree and you cannot tell whether it is normal or broken, get in touch and we will take a look with you.
Related articles
view all(01) Shopify Analytics: The Metrics That Actually Matter
Most Shopify stores track the wrong numbers. Here are the Shopify analytics metrics that actually diagnose conversion problems and drive real growth.
read article(02) Shopify Customer Accounts and Loyalty: Why Most Stores Get It Wrong
Most Shopify stores treat customer accounts as an afterthought. Here's how to turn them into a retention tool that drives repeat purchases.
read article(03) Selling Internationally with Shopify Markets: A Practical Guide
Shopify Markets lets you sell internationally from one store. Here's what currencies, localisation, duties and domains actually involve.
read articleStay ahead of the Shopify curve
Uncover Insights brings the latest Shopify trends, practical tips, and a look behind the scenes straight to your inbox.
We won't send you spam. Unsubscribe at any time.