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.

Scan a store

All guides · How the scanner works · Watch the store