· 11 min read

My WooCommerce Sales Aren’t Showing in Google Analytics — Here’s Why

My WooCommerce Sales Aren’t Showing in Google Analytics — Here’s Why | Ecomm Decoded

WooCommerce and Google Analytics speak different languages by default — and nobody tells you that when you’re setting up your store.

Thank you for reading this post, don't forget to subscribe!

Your WooCommerce sales aren’t showing in Google Analytics because the connection between your store and GA4 is either broken, misconfigured, or never fully set up in the first place.

That sounds blunt. It is. WooCommerce doesn’t send purchase data to GA4 automatically. Something has to bridge that gap — a plugin, a Google Tag Manager setup, or the GA4 Measurement Protocol — and each method has its own failure points. Most stores have at least one of them.

I’ve audited WooCommerce stores across a wide range of revenue levels. The tracking problems I find are rarely exotic. They’re the same handful of issues showing up in different combinations — usually because the setup happened once, nobody verified it, and the store kept changing around it.

Here’s how to find which one you have.

TL;DR WooCommerce sales go missing in GA4 for five main reasons: no plugin bridging the gap, the wrong plugin or a misconfigured one, duplicate events from two active tracking methods, the GA4 Measurement ID pointing at the wrong property, or the purchase event firing on the wrong order status. You can diagnose the right one in under 20 minutes. The fix is almost always straightforward once you know what you’re looking at.

Missing Revenue Data Isn’t a Reporting Problem. It’s a Business Problem.

When your WooCommerce sales don’t appear in Google Analytics, the obvious symptom is a dashboard with no purchase data. The less obvious symptom is every decision you make about ad spend, product performance, and channel attribution being based on nothing.

You can’t see which traffic source drove that order. You can’t see if your conversion rate changed after the redesign. You can’t tell if the campaign that felt like it worked actually worked. You’re running the business on intuition and Stripe notifications.

$0

What GA4 reported for one WooCommerce store’s purchases for over four months.
What WooCommerce actually processed: $340K. The purchase event trigger had the wrong URL condition.

The part that makes this expensive isn’t the missing number in GA4. It’s the decisions that got made — or didn’t get made — while that number was missing. Ad budgets that didn’t scale when they should have. Product lines that looked flat when they were growing. Campaigns that got cut before they had a fair run.

Broken tracking is a tax on every marketing decision you make. It just doesn’t show up on any invoice.

Why WooCommerce Sales Aren’t Showing in Google Analytics

1. Nothing Is Actually Connecting WooCommerce to GA4

This is the most common starting point, especially for stores that migrated from UA to GA4 and didn’t redo the setup. WooCommerce doesn’t have a built-in GA4 integration. It requires either a dedicated plugin — like the WooCommerce Google Analytics Integration plugin or MonsterInsights — or a manual Google Tag Manager implementation with custom purchase event tags.

If you added the GA4 tracking snippet to your site header and called it done, you have pageview and session tracking. You don’t have purchase tracking. The purchase event in GA4 requires specific e-commerce parameters — transaction ID, revenue, items array — that a basic tag doesn’t send.

Check your active plugins first. If you don’t see a dedicated WooCommerce + Google Analytics plugin in the list, and you haven’t built a GTM setup specifically for purchase events, this is almost certainly your problem.

2. The Plugin Is Active But Not Properly Configured

Having the right plugin installed isn’t the same as having it set up correctly. The two places this breaks most often: the GA4 Measurement ID is missing or wrong, and enhanced e-commerce tracking isn’t enabled.

For the WooCommerce Google Analytics Integration plugin, you need to enter your GA4 Measurement ID under WooCommerce → Settings → Integration. That ID starts with G-. If it’s blank, or if it still has a UA-XXXXXXXX ID from before the GA4 migration, no purchase data is going anywhere.

For MonsterInsights, enhanced e-commerce tracking is a Pro feature. If you’re on the free version, you get session data but not transaction data. It’s a common source of confusion — everything looks connected, but the purchase events are silently excluded from the free plan.

From the Field I worked with a WooCommerce store that had MonsterInsights installed and showing green across the board. Pageviews, sessions, bounce rate — all there. Revenue: nothing. They’d been on the free plan since they installed it two years prior, upgraded their WooCommerce setup multiple times, and never realized purchase tracking required the paid version. They assumed “connected” meant “fully connected.” The fix was a plan upgrade and a five-minute configuration step. The data gap was 26 months. Connected and configured are not the same thing.

3. You Have Two Tracking Methods Active at the Same Time

This is the opposite problem — and it creates data you can’t trust even when it looks like it’s working.

The scenario: a WooCommerce plugin is handling purchase events, and there’s also a GA4 purchase tag in Google Tag Manager firing on the order confirmation page. Both fire on the same order. GA4 receives two purchase events with the same transaction ID and, depending on how your de-duplication settings are configured, either counts the order twice or drops one event inconsistently.

The result is revenue data that sometimes matches WooCommerce, sometimes doesn’t, and has no clear pattern. The inconsistency itself is the tell. If your GA4 revenue matches WooCommerce on some days and is off by 30–60% on others, duplicate tracking is usually the cause.

The fix is to pick one method and disable the other. Either use a plugin exclusively and remove the GTM purchase tags, or use GTM exclusively and disable the plugin’s GA4 integration. Not both.

4. The GA4 Measurement ID Points to the Wrong Property

This one is quiet and easy to miss. The purchase events are firing correctly — they’re just going to a property you’re not looking at.

It happens most often after a GA4 property migration or a developer environment swap. Someone creates a staging property for testing, configures the plugin or GTM container with the staging Measurement ID, and pushes to production without updating the ID. Every purchase event from that point on goes to a test property. The production GA4 account shows nothing.

It also happens when a store has had multiple people touch the setup over time. The plugin is configured with an ID that used to be correct. The GA4 property was recreated, or the data stream was reset, or the account was transferred — and the ID was never updated in WooCommerce.

This takes two minutes to check. Compare the Measurement ID in your plugin settings or GTM configuration against the Data Stream ID in GA4 Admin → Data Streams. They should be identical.

5. The Purchase Event Is Firing on the Wrong Order Status

WooCommerce has multiple order statuses: pending, processing, on-hold, completed, failed, refunded. GA4 should track a purchase when an order is confirmed — not when it’s completed, not when it’s pending, and definitely not on failed orders.

Some plugin configurations fire the purchase event only when an order reaches “completed” status. If your fulfillment process takes days — or if you manually mark orders complete — there’s a lag between the order happening and GA4 recording it. In some configurations, the customer never returns to the confirmation page, so the event never fires at all.

Others fire on “processing” status, which is correct for most stores but can create phantom events for orders that later fail or get cancelled. Neither outcome gives you clean data.

The right configuration: fire the purchase event when the order confirmation page loads — specifically the WooCommerce thank-you page at /checkout/order-received/ — which happens immediately after a successful payment, regardless of fulfillment status. If you’re using GTM, the trigger should be a page URL containing order-received, not an order status hook.


How to Diagnose the Problem in 20 Minutes

Start here before touching any configuration. Knowing exactly what’s broken saves you from fixing the wrong thing.

The WooCommerce Tracking Audit
  1. Compare transaction counts. In GA4, go to Reports → Monetization → Ecommerce Purchases and note the transaction count for the last 30 days. In WooCommerce, go to WooCommerce → Reports → Orders → filter by the same date range. If GA4 shows zero or the numbers are more than 5% apart, you have a tracking problem — not a bad month.
  2. Check what’s bridging the gap. In your WordPress admin, go to Plugins → Installed Plugins and search for “Google” or “Analytics.” Note every active plugin that relates to tracking. Then open GTM (if you use it) and look for any GA4 tags configured with purchase or transaction triggers. You should have exactly one method active — not zero, not two.
  3. Verify the Measurement ID. Find the GA4 Measurement ID in your plugin settings or GTM configuration. It should start with G-. Open GA4 → Admin → Data Streams → your web stream. The Measurement ID shown there must match exactly. If they differ by even one character, your events are going nowhere useful.
  4. Test a live purchase event. Open GA4 → Configure → DebugView. In a separate browser window or incognito tab, place a small test order on your WooCommerce store and complete the checkout. Watch DebugView in real time. You should see a purchase event appear within 30 seconds of landing on the order confirmation page. If nothing appears, the event isn’t firing. If it appears twice, you have duplication.
  5. Check the thank-you page URL. After completing a test order, note the exact URL of the order confirmation page. It should contain /checkout/order-received/. If you have a custom thank-you page, a page builder redirect, or a third-party checkout flow, the default plugin trigger may not match — and the purchase event may never fire.

What to Do Once You’ve Found It

No tracking method active: Install the WooCommerce Google Analytics Integration plugin (free, from WooCommerce.com), enter your GA4 Measurement ID under WooCommerce → Settings → Integration, enable enhanced e-commerce tracking, and save. Run a test order and verify the purchase event in DebugView before calling it done.

Plugin misconfiguration: If the Measurement ID field is blank or has a UA-format ID, update it with the correct G-XXXXXXXXXX ID from your GA4 Data Stream settings. If you’re on MonsterInsights free and need purchase tracking, you’ll need to either upgrade to Pro or switch to a plugin that includes it in the free tier.

Duplicate tracking: Decide on one method and stick with it. If you prefer using GTM for flexibility, disable the GA4 integration in your WooCommerce plugin settings and keep the GTM setup. If you prefer the plugin approach, remove the purchase event tags from GTM. Publish any GTM changes after you make them — changes don’t go live until the container is submitted and published.

Wrong Measurement ID: Update the ID in your plugin settings or GTM configuration to match the live property’s Data Stream ID exactly. If the data has been going to a test property, that property’s data can’t be migrated — but at least you stop the bleed from today forward.

Wrong order status trigger: If you’re using GTM, update the trigger to fire on page URL containing order-received rather than on an order status change hook. If you’re using a plugin, check its settings for “purchase event trigger” or “conversion tracking trigger” and confirm it’s set to fire on the thank-you page load, not on order fulfillment.


The Honest Truth About WooCommerce Tracking

WooCommerce’s flexibility is also its tracking liability. Shopify’s checkout is controlled and predictable. WooCommerce’s checkout can be modified by any plugin, page builder, or custom theme — and each modification is a new opportunity for the tracking layer to break quietly.

The stores I audit with the worst tracking problems aren’t small or inexperienced. They’re stores that have grown, changed themes, added plugins, and built checkout customizations over years — with no one explicitly responsible for verifying that the tracking kept up with every change.

The setup that worked two years ago may not work today. A WooCommerce major version update, a new payment gateway, a checkout page rebuild — any of these can silently break the purchase event without triggering any error or notification.

The check I’d recommend: once a quarter, run the transaction count comparison between GA4 and WooCommerce. Pick a 30-day period. If the gap is more than 5%, dig in. It takes five minutes and will catch most category-one tracking failures before they run for months.

And before you make any significant marketing investment — new ad campaigns, conversion rate work, channel expansion — verify the tracking is clean. You can’t optimize what you can’t measure. And you can’t trust measurement you haven’t verified.

Your WooCommerce tracking needs a proper audit.

My Tracking & Analytics Sprint covers your full GA4 setup — purchase event accuracy, Measurement ID verification, duplicate event detection, cross-domain configuration, and a line-by-line comparison of GA4 vs. WooCommerce revenue. Delivered in 14 days with a specific fix list, not a report full of maybes.

See the Tracking & Analytics Sprint →
JV
Jenn Velez — Ecomm Decoded 10+ years in e-commerce operations. I work with DTC founders and e-commerce managers doing $500K–$5M — diagnosing what’s actually broken in their store before they scale it. Based in Sydney, Australia. About Jenn →

Ready to fix what's broken?

Stop guessing and get a real diagnosis. Book a Growth Audit or jump straight into a Sprint.