← Back to Blog GTM · Tracking

Google Tag Manager Audit: 8 Broken Tags You Probably Have Right Now

6 min read ConvertLab360
Key Takeaways
  • A duplicate conversion tag (one in HTML + one in GTM) doubles every conversion count, making ROAS look 2× better than reality.
  • All Pages trigger on a conversion tag is the most common GTM mistake — verify every conversion tag fires only on its intended trigger.
  • Missing dataLayer.push() events means your GA4 funnel events may be completely empty despite tags existing in GTM.
  • Consent Mode v2 must be wired between your CMP and GTM — a disconnected setup means user consent choices are silently ignored.
  • Stale tags from old campaigns accumulate and slow page load — prune any tag older than 6 months not in active use.

A broken GTM container is worse than no tracking at all — because you think you have data when you don't. Every optimization decision you make on corrupted data makes your account less efficient, not more. Here are the 8 issues we find most often in GTM audits.

1. All Pages Trigger Firing on Specific Events

The most common GTM mistake: a conversion tag configured to fire on a specific button click, but accidentally paired with an All Pages trigger. The result is the tag fires on every page load, massively inflating your conversion data. Your Google Ads CPA looks excellent. Your actual CPA is dramatically higher.

Fix: in GTM Preview, filter by "Tag Fired" and examine what triggers each conversion tag. Every conversion tag should have a specific trigger — a click class, a page URL, a dataLayer event — never All Pages.

2. Duplicate Conversion Tags

You had a developer install the Google Ads conversion tag directly in the page HTML. Then someone added it again in GTM. Now every conversion fires twice. Your Google Ads ROAS looks great — your actual ROAS is half that. This is one of the most damaging tracking errors because it quietly corrupts every optimization decision Smart Bidding makes.

Fix: check the page source for hardcoded gtag() calls. If you find a conversion tag in both the HTML and GTM, remove one. Use GTM as the single source of truth for all tracking.

Suspect your tracking data isn't accurate? ConvertLab360 audits your entire GTM container and GA4 setup — we find misconfigurations, duplicates, and missing events in one session.

3. dataLayer.push() Not Implemented

Your GTM container has event-based triggers configured — add_to_cart, begin_checkout, purchase — but the website never pushes these events to the dataLayer. The tags exist but never fire. Your GA4 funnel report shows zero events past the first step, not because users aren't proceeding, but because the events were never sent.

Fix: audit your website's front-end code for dataLayer.push() calls. Compare what the developer implemented against what GTM expects. Missing events are almost always a dev handoff problem — the GTM config was built based on a spec, but the dataLayer calls were never coded.

4. Missing PII Redaction

If your GTM tags capture URL parameters or form field values, you may be sending personally identifiable information — email addresses, phone numbers, names — to Google Analytics or other platforms. This creates GDPR and CCPA liability. GA4 will often flag this and refuse to process the data, resulting in gaps in your reports.

Fix: enable GA4's "Redact query parameters" setting. In GTM, avoid capturing full page URLs as custom dimensions without first stripping PII. Never use form field capture variables on fields that could contain email or phone data.

5. Consent Mode Not Wired to GTM

Consent Mode v2 requires integration between your CMP (Consent Management Platform — OneTrust, Cookiebot, etc.) and GTM. Most implementations we audit have the CMP installed and the banner displaying, but the consent signal is never passed to GTM. Meaning: users decline tracking, the banner thanks them, and the tags fire anyway.

Fix: use a CMP that has a native GTM integration or use the CMP's GTM template from the Community Template Gallery. Test with GTM Preview: look for the consent_update dataLayer event after clicking "Accept" and "Decline." Both should fire with the correct consent state.

6. Stale Tags from Old Campaigns

GTM containers accumulate tags from campaigns, A/B tests, and platforms that no longer exist — Bing Ads pixels from 2021, an abandoned Hotjar implementation, a LinkedIn Insight tag from a test that never ran. Each stale tag executes on every page load, adding latency and creating debugging confusion when something breaks.

Fix: quarterly GTM cleanup. Any tag with no trigger, not paused, and no notes explaining why it exists should be investigated and deleted. Use GTM's "Last modified" column to spot tags that haven't been touched in 12+ months.

7. Variables Not Set Correctly

Custom JavaScript variables that extract values from the dataLayer, page DOM, or cookies are common sources of undefined values and silent tag failures. A variable returns "undefined" and the tag fires with no value — your e-commerce revenue tracking shows $0 for transactions where the order value wasn't correctly passed.

Fix: in GTM Preview, click through a conversion event and inspect each variable's value in the Variables tab. Any variable showing "undefined" or an unexpected value needs investigation. The most common causes: wrong dataLayer key name (case-sensitive), variable type mismatch, or timing issues where the tag fires before the dataLayer is populated.

8. Version Control Ignored

GTM has full version history — every published container gets a version number with a timestamp and author. Most teams ignore this entirely and publish over the same version repeatedly, making it impossible to roll back when something breaks. When a tag causes a conversion spike or crash, you need to be able to identify exactly what changed and when.

Fix: treat GTM like code. Write a meaningful description every time you publish a version. Create a "tag audit" workspace before making multiple changes. Test in Preview before publishing. Roll back immediately if a publish causes unexpected changes in conversion volume (±30% within 24 hours is a red flag).