Why GTM Errors Are Hard to Spot
The most dangerous mistakes in Google Tag Manager are not the ones that cause obvious failures. A misconfigured trigger or a duplicate tag produces no JavaScript error, no red alert in GTM, and no warning in Google Ads. Your data just becomes quietly wrong — inflated, deflated, or mismeasured — and stays that way until someone runs a proper audit.
Here are the 10 mistakes we encounter most frequently in professional GTM audits.
1. Conversion Tag on All Pages Trigger
A Google Ads or GA4 conversion tag attached to "All Pages" fires on every page load — inflating conversions astronomically. This should be caught immediately, but it sometimes survives in containers for months because the tag owner assumes "lots of conversions = good performance."
Fix: Conversion tags must use a specific trigger — page URL contains /thank-you, custom event equals "purchase", etc. Never "All Pages."
2. Duplicate Tags from Multiple Installations
The Google Ads conversion tag exists in GTM AND hardcoded in the site's HTML. GA4 is being sent by both GTM and the native GA4 snippet in the theme. Both fire on every conversion, doubling all reported figures.
Fix: Check Network requests on a conversion page for duplicate calls. Remove one source entirely. Our Conversion Tracking Fix service finds these consistently.
3. Data Layer Variable Key Typos
The site pushes transactionID to the data layer. The GTM Data Layer Variable is configured to read transaction_id. Subtle underscore vs camelCase mismatch — the variable returns undefined on every conversion, and your transaction IDs are all missing.
Fix: In GTM Preview Mode, check the data layer push for each conversion event and confirm the exact key names (case-sensitive) match your GTM variable configurations.
4. Using "Contains" Instead of "Equals" for Thank-You Page Triggers
A trigger set to fire when Page URL "contains" /thank fires on /thanksgiving-sale, /thank-you-for-subscribing, /we-thank-you-for-your-patience — all false positives.
Fix: Use "equals" for exact thank-you page URLs, or "matches RegEx" for more precise matching. Test in Preview Mode by browsing other pages that might partially match.
5. Micro-Conversions Set as Primary
Contact page view, scroll depth 50%, and video play are all set as primary conversion actions. Smart Bidding optimises for hundreds of these easy-to-generate events while ignoring the actual lead form submissions.
Fix: In Google Ads, set micro-conversion actions to "Don't include in Conversions" (secondary). Reserve primary status for high-value, high-intent conversion events only.
6. Tags Not Firing on Dynamically Loaded Content
Click triggers set to "All Elements" fire on document ready — but the target button is loaded asynchronously after the initial page render. The trigger fires before the button exists.
Fix: For dynamically loaded content, use a Mutation Observer or rely on a custom event pushed to the data layer by the application code when the dynamic content loads.
7. Missing noscript Body Snippet
The GTM head snippet is installed, but the noscript body snippet is missing. While most users have JavaScript enabled, the noscript snippet is also important for some tag dependencies and for the Consent Mode implementation — some consent management platforms use it.
Fix: View source on your homepage and search for "noscript" near the opening body tag. If absent, add it per your installation method.
8. Publishing Without Testing
A container is published directly without running GTM Preview Mode. The new tag fires on every page instead of just the conversion page because the trigger was accidentally set to "All Pages" during configuration.
Fix: Make Preview then Verify then Publish a non-negotiable workflow. No exceptions for "quick fixes."
9. Referencing Undefined Variables in Tags
A GA4 event tag sends a parameter value using a Data Layer Variable that was never enabled. The variable returns empty string or undefined — GA4 receives the event with a blank parameter, polluting your reports with missing data.
Fix: In Preview Mode, check every variable referenced in a tag to confirm it returns the expected value before publishing.
10. Ignoring the Container Bloat
The container has 80+ tags, many paused, some obsolete from campaigns that ended two years ago. GTM loads the full container on every page — every unused tag adds weight, and stale tags create audit confusion and security risk (especially abandoned Custom HTML tags).
Fix: Archive or delete unused tags quarterly. If a tag has been paused for over 90 days with no documented reason to keep it, remove it.
Summary
These 10 mistakes are preventable with Preview Mode testing, a naming convention, a quarterly cleanup routine, and a clear policy on primary vs secondary conversion actions. Most containers we audit have at least 3 of these issues active.
For a professional GTM audit, see our Google Tag Manager Setup and Audit service.
Suspect your container has silent issues? Contact Adslytics for an audit.
Need expert tracking setup?
Our Google Tag Manager experts have delivered 500+ tracking setups with a 98% success rate.
Get a Free Consultation →