Share

Google Tag Manager mistakes rarely announce themselves. Nothing crashes, no error message appears, the site keeps working exactly as visitors experience it. What breaks is quieter: a number in a report that's slightly wrong, or wildly wrong, and nobody notices until a decision gets made based on it. I've audited a lot of containers for service businesses at this point, and the same handful of mistakes show up again and again, often stacked two or three deep in the same account.

This isn't a list of exotic edge cases. It's the ordinary stuff that accumulates in any container nobody has looked at in six months.

Duplicate tags firing on the same event

The single most common Google Tag Manager mistake I find is two tags doing the same job. Most often it's two GA4 Configuration tags, one added by whoever built the original site, another added later by an agency or freelancer who didn't check what already existed before adding their own. Both fire on every pageview. Both send data to the same property. The result is pageviews, and often events, counted twice, which quietly cuts every conversion rate roughly in half without anyone changing anything about the actual site.

The fix is mechanical once you know to look for it. Open the container, filter by tag type, and check for more than one tag of the same category doing the same job. It takes five minutes and it's worth doing on any account you didn't set up yourself from scratch, because inherited containers are where this shows up most often.

Triggers scoped too broadly

A trigger set to fire on "All Pages" when it should only fire on a thank-you page, or a Click trigger with no restriction on which links it applies to, is a mistake that looks harmless until the numbers stop making sense. I've seen a phone click trigger built with a Click trigger that matched any link containing the word "call" in its text, which also matched a blog post title mentioning "call us anytime" in a completely unrelated context, quietly inflating phone click conversions with clicks that were never phone clicks at all.

The mechanism worth understanding here: GTM triggers evaluate a condition against every matching interaction on a page, not just the one you had in mind when you built it. A trigger scoped loosely doesn't just risk missing data, it risks capturing the wrong data and reporting it as if it were the real thing. Every trigger should be built and then tested in Preview mode against the specific page and specific element it's meant to catch, not assumed to work because the logic sounded right when you wrote it.

Work With John

Your site should be your best salesperson. If it is not, that is a fixable problem.

I work with US service businesses and B2B brands to build SEO systems that produce consistent, compounding leads. I will tell you exactly what is broken. No pitch.

Book a free strategy call

No naming convention, so nobody can tell what anything does

This one doesn't break tracking directly, but it's the reason every other mistake on this list survives undetected for months. A container full of tags named "Tag 3," "GA4 event," and "New Tag Copy" tells you nothing about what fires where. When something breaks, whoever's debugging has to click into every single tag to understand the container before they can even start looking for the actual problem.

A working convention is simple: type, then what it tracks, then where. GA4 - Phone Click - Sitewide. Ads - Form Conversion - Contact Page. It costs nothing to set up and it's the difference between a ten-minute investigation and a two-hour one when a client asks why a number looks wrong.

Publishing without testing in Preview mode first

Preview mode exists specifically to show you which tags will fire, on which triggers, before you commit a change live. Skipping it and publishing directly is how a single mistyped trigger condition goes live for weeks before anyone notices a conversion count has dropped to zero. I've seen this exact scenario: someone edited a form submission trigger, made a small typo in the CSS selector it was watching for, and published without checking Preview first. The form kept working perfectly for every visitor. The trigger just silently stopped matching anything, and conversions dropped to zero for eleven days before a client asked why their lead count looked strange.

The habit costs about ninety seconds per publish: open Preview, click through the specific interaction the change affects, confirm the tag fires as expected, then publish. It's the single most valuable habit in this entire list, because it catches nearly every other mistake here before it goes live.

Orphaned tags from vendors you no longer use

Every service business accumulates a few of these: a tag for a chat widget you switched away from two years ago, a remarketing pixel for an ad platform you stopped using, a tracking script a past marketing hire installed and never removed. These tags don't just clutter the container. Some of them are actively firing scripts that slow the page down for zero benefit, and a few, depending on the vendor, may still be sending data somewhere you're no longer paying attention to or consenting to under your privacy policy.

A twice-yearly pass through the container asking "do we still use this vendor" catches most of these. Pause the tag first rather than deleting it outright, confirm nothing depends on it for a couple of weeks, then remove it for good once you're confident it's safe.

Depending on where your traffic comes from, tags that fire before a visitor has made a consent choice can be a real compliance problem, not just a data quality one. GTM has built-in consent mode settings that let you gate tags behind a visitor's actual consent state rather than firing everything by default the moment the page loads. A surprising number of containers I've reviewed have consent settings either not configured at all, or configured once during initial setup and never revisited as new tags were added on top.

This is worth a specific check rather than an assumption: open each tag's consent settings and confirm they match what your cookie banner or privacy tool is actually telling visitors. A tag added six months after the consent setup was done is easy to add without remembering to configure its consent behavior to match everything else.

Variables that reference the wrong data layer key

A subtler mistake, and one that's harder to spot than a duplicate tag, is a variable pointed at a data layer key that no longer matches what the site actually pushes. This happens most often after a website redesign or a form tool migration, where the new form pushes a slightly different data layer structure than the old one did, but nobody updated the GTM variables that were built around the original structure.

The symptom is specific: Preview mode shows the tag firing exactly when it should, which makes it look fine at a glance, but the parameter attached to the event, the page name, the form name, the service selected, comes through blank or as "undefined" in GA4's DebugView. I walked into this with a client whose form conversion events were firing reliably, correctly counted, but every single one showed no data in the field meant to record which of their four service pages the lead came from. The team had switched form vendors eight months earlier. Nobody had gone back and confirmed the new vendor's data layer used the same key names the original variables were built around. The fix was a ten-minute variable update. Finding it took longer, because the tag firing correctly masked the fact that its payload was empty.

This is the specific reason checking Preview mode alone isn't enough. Preview confirms a tag fired. It doesn't confirm the data attached to that firing is actually correct. Pairing Preview with GA4's DebugView, which shows the event and its parameters as GA4 actually received them, is the only way to catch this category of mistake before it shows up as a mysteriously empty column in a report months later.

How to run your own quick audit

You don't need a full agency review to catch most of this. Open your container and do four things: filter tags by type and look for duplicates, click through your two or three most important triggers and confirm their scope isn't broader than intended, run Preview mode on your homepage and your contact page and watch what actually fires, and check the last five published versions for what changed and when. Most of the mistakes above surface within twenty minutes of doing this honestly.

If you're building a container from scratch rather than untangling an existing one, starting with a clean naming convention and folder structure from day one avoids most of this list entirely, which I cover in more detail in Google Tag Manager for service businesses: how to set up the container the right way. And if you're still deciding whether you even need GTM versus a simpler gtag snippet, that decision is worth making deliberately rather than by accident, covered in GTM vs gtag: which tagging approach actually fits a service business site.

Why this is worth the afternoon

None of these mistakes are dramatic on their own. A duplicate tag here, an overscoped trigger there, none of it looks like an emergency. But stacked together across a container nobody has audited in a year, they add up to a reporting dashboard that quietly lies to you in several directions at once, usually making things look both better and worse than reality depending on which number you're looking at. For a service business making decisions about ad spend or which service line to push based on conversion data, that's not a small problem.

Once your container is clean, the data it produces is only useful if you're actually connecting it to search performance and to what happens after a lead comes in. My resource on how to read a Google Search Console report rounds out the search side of the picture, and if that report review turns up problems worth fixing properly, that's the kind of work covered under SEO consulting. For the rest of what I've written on this topic, the Analytics & Data section covers the full set.