Most GTM containers don’t fail suddenly. They degrade slowly, one undocumented tag and one “quick fix” trigger at a time, until nobody on the team fully understands what’s actually firing anymore. Here are the 7 signs we look for first during an audit – if two or more of these sound familiar, it’s worth a proper look before the data damage compounds.
1. Tags with no clear owner or purpose
Open your container and count how many tags you could confidently explain the purpose of without clicking into them. If it’s less than half, that’s not a documentation problem – it’s a sign nobody currently has full visibility into what your container is actually doing to your site and your data.
2. Duplicate or near-duplicate tags
The same GA4 event fired by two separately-configured tags, created months apart by different people who didn’t realise the first one already existed. This silently inflates your event counts and skews every report built on top of that event, often for a long time before anyone notices the numbers look “too good.”
3. No consistent folder or naming structure
A container with 80 tags named “GA4 Event,” “GA4 Event Copy,” “GA4 Event Copy 2,” and no folder organisation isn’t just visually messy – it actively makes it harder to safely change anything, because nobody can quickly confirm what else might be affected by a given trigger.
4. Triggers that fire on overly broad conditions
A trigger scoped to “All Pages” when it should be scoped to a specific URL pattern is a common source of tags firing where they shouldn’t – wasted server-side processing at best, incorrect data at worst. This is especially costly for consent-gated tags, where an overly broad trigger can mean a tag fires for users who never consented.
5. Heavy reliance on built-in variables instead of a structured dataLayer
If most of your custom event tracking pulls from URL parsing or DOM scraping (Click Text, Page URL, Click Classes) rather than an actual structured dataLayer push, your tracking is fragile – any front-end redesign or copy change can silently break tracking with no error, no warning, just quietly wrong numbers.
6. No version history or change notes
GTM’s built-in version history exists, but if nobody’s been using the description field when publishing, you have a version history with no context – which means diagnosing “when did this break” becomes a slow manual comparison exercise instead of a five-minute lookup.
7. Inconsistent consent gating across similar tags
If your GA4 configuration tag correctly requires analytics_storage consent but a related custom event tag doesn’t have the same requirement configured, you have a compliance gap that looks fine on the surface – the “main” tag respects consent, but a related one quietly doesn’t.
What an audit actually checks
A proper audit isn’t just “does the tag fire” – it’s tag-by-tag consent configuration review, trigger scoping verification, dataLayer integrity checks against what’s actually documented, and a comparison of what’s live in the container against what’s live in your GA4 event definitions, to catch drift between the two. The output should be a prioritised list of what’s actually broken versus what’s just untidy – those require very different urgency.