- GA4
- WooCommerce
- Ecommerce Tracking
- Troubleshooting
WooCommerce Google Analytics Not Working? Lost Orders
By Dolphin Analytics team · Published 29 Sept 2026
TL;DR
WooCommerce Google Analytics stops matching your orders mainly because the free Google Analytics for WooCommerce extension records a purchase in the browser, on the order received page. Orders that never reach that page in a tracked browser go missing: gateways that skip the redirect, admin-created orders, declined cookies and a conflicting second GA4 tag. We trace these gaps for client stores most weeks.
Olamide Sule, founder of Dolphin Analytics: a digital analytics expert based in London delivering solutions for agency and in-house clients.
WooCommerce Google Analytics not working usually shows up the same way in our tracking work: WooCommerce lists more orders than GA4 does, and nobody can say which ones went missing or why. Store owners and their developers end up pulling their hair out with data challenges that the plugin settings page cannot explain. We trace these gaps for WooCommerce stores regularly, and below is the order we check things for clients, written so you can run the same checks yourself. If the property needs rebuilding from scratch, our GA4 setup service covers that.
Why are WooCommerce orders missing from GA4?
WooCommerce orders go missing from GA4 because the free Google Analytics for WooCommerce extension tracks a purchase in the visitor’s browser, on the order received page. WooCommerce’s own documentation says purchase tracking “requires a payment gateway that redirects to the thank you/order received page after payment” (Google Analytics for WooCommerce documentation).
That one design choice explains most of the gap. WooCommerce creates the order on the server, whatever happens in the browser afterwards. GA4 only hears about it if a tracked browser loads the thank you page and the tag fires. Every cause below is a version of that condition failing.
Which WooCommerce orders never reach the thank you page?
Orders that skip the thank you page are invisible to the free extension. The extension’s documentation names WooPayments, Stripe, PayPal Braintree, PayPal Payments and Square as gateways that redirect correctly (Google Analytics for WooCommerce documentation). A gateway outside that list, or one configured to leave buyers on its own confirmation screen, can take payment without ever sending the buyer back.
WooCommerce’s comparison of the free and Pro extensions lists the cases the free version does not track: checkouts completed without reaching the thank you page, orders created manually by an admin, and full refunds (Google Analytics Pro vs free). Phone orders keyed in by staff fall into the second group.
Is consent mode hiding WooCommerce orders?
Consent mode can hide WooCommerce orders from GA4 when visitors decline analytics cookies. WooCommerce’s documentation states that users in the EEA, UK and Switzerland “must grant cookie consent before analytics tracking is activated” (Google Analytics for WooCommerce documentation).
How much you lose depends on the consent mode setup. Google’s consent mode guide says that in basic mode, when the user does not consent, Google tags are blocked from firing and no data is sent; in advanced mode, cookieless measurements are sent instead, which lets GA4 model conversions (Consent mode overview). Under basic mode, every declined visitor’s purchase is simply absent. Our guide to cookie consent breaking GA4 data covers how to measure that share.
Are duplicate GA4 tags breaking the plugin?
A second GA4 tag on the site is one of the commonest reasons the plugin stops tracking sales. The plugin’s own FAQ answers “My code is there. Why is it still not tracking sales?” with: “Duplicate Google Analytics code causes a conflict in tracking” (Google Analytics for WooCommerce plugin). The usual culprits are a Google Tag Manager container that also loads GA4, a theme setting with its own measurement ID, or a second analytics plugin.
When we audit WooCommerce stores, this is the fault we find most: a GTM tag
and the plugin both sending a purchase. Google deduplicates purchase events
that share a transaction ID, but only for web streams, and it warns that a
blank transaction_id makes it deduplicate every purchase sent with that
empty value
(Minimize duplicate key events).
Pick one source for the purchase event and remove the other. If you are seeing
too many purchases rather than too few, our guide to
GA4 duplicate purchase events works
through it.
Why don’t test orders show up in GA4?
Test orders often vanish because of how the test was run, not because tracking is broken. The extension’s documentation says pageviews are not tracked for logged-in admin users, recommends checking for ad blockers and browser extensions that block tracking, and advises allowing time for data to appear (Google Analytics for WooCommerce documentation).
Test properly before you conclude anything:
- Log out of WordPress, or open a private browser window.
- Turn off ad blockers and privacy extensions for your store’s domain.
- Open Tag Assistant, enter your store’s URL and connect, which WooCommerce recommends for checking what the extension sends (Google Analytics for WooCommerce documentation).
- Place an order with a gateway that returns you to the thank you page.
- In GA4, open Admin, then under Data display click DebugView,
and click the
purchaseevent to see its parameters (DebugView).
If DebugView shows nothing at all, fix that first with our guide to GA4 DebugView not working.
Is PayPal or Stripe taking the credit for the order?
Sometimes the order reaches GA4 but the source is wrong. Google’s help page on unwanted referrals uses exactly this case: an ecommerce site where users return from a third-party payment processor’s domain after checkout. The fix sits at Admin > Data collection and modification > Data streams > your web stream > Configure tag settings > Show all > List unwanted referrals (Identify unwanted referrals). Our guide to PayPal and Stripe showing as referrals covers the setup in full.
How do you find which WooCommerce orders GA4 missed?
Compare order numbers, not totals. A total tells you there is a gap; the list of missing order numbers tells you which cause you have. Work through these steps for a single recent day:
- In WordPress, go to WooCommerce > Orders and filter to that day. Note each order number, its status and its payment method (WooCommerce order statuses).
- In GA4, go to Explore, and under Start a new exploration select the Free form template (Free-form exploration).
- Add Transaction ID as a row dimension and Ecommerce purchases as a value, and set the date range to the same day.
- Mark every WooCommerce order number with no matching transaction ID.
- Group the missing orders by payment method, status and whether an admin created them.
The pattern points at the cause. Missing orders clustered on one gateway point at the thank you page redirect. Admin-created orders missing is expected on the free extension. Missing orders spread evenly across gateways point at consent or a tag conflict. Remember that WooCommerce’s own Analytics reports leave out excluded order statuses, which you can edit on its settings page (WooCommerce Orders report), so compare against the Orders screen rather than a report.
Do you need the free extension or the Pro version?
The free extension is enough when every order ends on the thank you page and you only need the core shopping events. WooCommerce’s comparison shows that Google Analytics Pro for WooCommerce adds tracking for checkouts that do not reach the thank you page, admin-created orders and fully refunded orders (Google Analytics Pro vs free).
| Order type | Free extension | Pro version |
|---|---|---|
| Checkout ends on the thank you page | Tracked | Tracked |
| Checkout does not reach the thank you page | Not tracked | Tracked |
| Order created manually by an admin | Not tracked | Tracked |
| Order fully refunded | Not tracked | Tracked (full refunds only) |
Source: WooCommerce, Google Analytics Pro vs free.
Pro gets there by working from order status. Its documentation says any order
marked “processing” or “completed” has its purchase event tracked, and setup
needs a Measurement Protocol API secret from your GA4 property
(Google Analytics Pro documentation).
The trade-off is attribution. Google’s Measurement Protocol guide says a
server-side event is joined to the visitor’s browser activity, and adopts
their privacy settings, through the client_id it carries
(Measurement Protocol).
A server-side purchase sent without the right client_id lands in GA4 with no
source attached.
There is a third route. Google describes the Measurement Protocol as a way to send events directly to GA4 servers, meant to augment browser tagging through gtag or Tag Manager rather than replace it. Stores with real ad spend riding on the numbers often push the purchase into a GTM data layer and back it with a server-side send for the orders the browser misses. Our GA4 ecommerce data layer guide covers the browser half.
When to call someone
Call someone when the missing orders do not fall into one clean group, or when the fix means changing code nobody on the team owns. The thresholds we use: missing orders are spread across every gateway after you have ruled out consent; a GTM container and the plugin both send purchases and you cannot tell which one your ad platforms read; you need server-side tracking for off-site or offline payments; or GA4 revenue still disagrees with WooCommerce after the order numbers match.
We set up and repair WooCommerce tracking in GA4 and Google Tag Manager for agencies and in-house teams, from the plugin settings through the data layer to the purchase event. Here is the scale of that work.
We've set up hundreds of GA4 properties and Tag Manager containers for agency and in-house clients.
If you want a quick outside view first, Sonar shows which tags and pixels load on your store the way a visitor’s browser sees them. Tell us what’s broken, or book a call. If you already know you need someone inside the account, our paid GA4 audit reviews your GA4 and GTM setup and ends in a written findings report.
Frequently asked
Why is WooCommerce Google Analytics not tracking sales?
The free Google Analytics for WooCommerce extension tracks a purchase only when the payment gateway returns the buyer to the thank you (order received) page. Orders that skip that page, orders created by an admin, and orders from visitors who declined analytics cookies never reach GA4. A second GA4 tag on the same site can also break the plugin's tracking.
Should I use the free Google Analytics for WooCommerce extension or the Pro version?
The free extension is enough when every order ends on the thank you page and you only need the core shopping events. WooCommerce's own comparison shows the Pro version also tracks checkouts that do not reach the thank you page, admin-created orders and full refunds. Stores with heavy ad spend often go further and move purchase tracking into a GTM data layer.
Can I track WooCommerce purchases in GA4 without a plugin?
Yes. You can push the purchase into a GTM data layer, or send it server to server with the GA4 Measurement Protocol. Google says the Measurement Protocol is meant to augment browser tagging, not replace it, and stores with real ad spend often run both.
Why do my test orders not show up in GA4?
The free extension does not track pageviews for logged-in admin users, so test while logged out of WordPress. Ad blockers and browser extensions can also block the tag. Log out or use a private window, turn off blockers, and check the event in Tag Assistant or DebugView rather than the standard reports.
Who can fix WooCommerce GA4 tracking for us?
We fix WooCommerce and GA4 tracking for agencies and in-house teams, from the plugin settings through a GTM data layer to the reports. Tell us what's broken through the form on our homepage or book a call. If you already know you need someone inside the account, our paid audit reviews your GA4 and GTM setup and ends in a written findings report.