Guide
GA4 not tracking on WooCommerce
A WooCommerce plugin says GA4 is connected. The collect request never leaves. How to tell a missing event from a blocked one, then confirm it.
Last reviewed September 2026.
What “connected” usually means
A WooCommerce plugin with a measurement ID stored is not the same as a collect request leaving the page. The plugin UI will stay green while the theme, a cache plugin, or a consent banner stops the event.
1. See what was actually inserted
View source on the homepage and a product page. You are looking for aG- ID in a gtag snippet, or a GTM container that is supposed to fire GA4. If neither is in the HTML, the plugin is not outputting the tag on that template — fix the output, not the ID.
2. Library versus collect
Filter the network panel for gtag/js, gtm.js, then/g/collect. Two observations, always. A 200 on the library with no collect is the silent-tag case. How to tell if a pixel is working is the same test for any vendor.
3. Consent and cache
A banner change is the other common cause on WooCommerce: every tag waits for a consent state that never resolves. The page still renders. Orders still arrive.Consent mode blocking analytics separates that from a broken tag.
Full-page cache that serves a logged-in admin snippet to visitors, or that strips inline scripts, will also produce “connected” with no collect. Bypass cache on one request before you change the ID.
4. Checkout is a different template
WooCommerce checkout is often checkout/form-checkout.php or a block theme equivalent, sometimes with gateway fields on the same page. A tag that fires on the shop loop can be absent there. If card fields are on your own page, that page may also be in PCI scope —SAQ A or SAQ A-EP is the questionnaire question, not a determination.
Confirm it with a scan
Four page types, a real browser, no account. A scan will not fix the tag. It will tell you whether it is firing now.