9 Common Google Tag Manager Issues I Fix Every Week (And How to Avoid Them)

… Last Updated:

Attempting to fix errors in GTM
Off Station Mishap Drill” by DVIDSHUB is licensed under CC BY 2.0 .

After auditing hundreds of Google Tag Manager setups, I see the same problems over and over again. These issues cause data loss, privacy compliance problems, and wasted marketing budgets. Here are the most common GTM mistakes I encounter and how to fix them properly.

The Problem: Most GTM Setups Are Broken

I regularly audit Google Tag Manager implementations for clients, and honestly? About 80% have significant issues that are quietly sabotaging their data collection and marketing efforts.

The good news? Most of these problems are fixable once you know what to look for.

Issue #1: Outdated Triggers Still Active

What I see:

  • Old pageview triggers still firing
  • Abandoned campaign triggers cluttering the workspace
  • Multiple similar triggers doing the same job

Why it’s a problem:

  • Creates duplicate data
  • Slows down page load times
  • Makes debugging nearly impossible

The fix:

Audit Process:
1. Go to Triggers → Click on each trigger
2. Check "Connected Tags" section
3. If no tags are connected → Delete or archive
4. For similar triggers → Consolidate into one well-named trigger

Best practice: Archive old triggers instead of deleting them. You might need the configuration later.

Issue #2: Outdated Pixels and Tags

What I see:

  • Facebook Pixel events from 2019 still firing
  • Universal Analytics tags (GA3) alongside GA4
  • Old conversion tracking codes that no longer work

Why it’s a problem:

  • Wastes server resources
  • Can conflict with new implementations
  • Creates confusing data in reports

The fix: Regular GTM housekeeping:

  • Quarterly reviews of all active tags
  • Archive unused tags (don’t delete – you might need the setup later)
  • Update pixel versions to current standards
  • Remove deprecated code (like Universal Analytics)

Issue #3: Custom HTML When Templates Exist

What I see:

html

<!-- Bad: Custom HTML for Google Analytics -->
<script>
  gtag('config', 'GA_MEASUREMENT_ID', {
    page_title: 'Custom Title',
    page_location: window.location.href
  });
</script>

Why it’s a problem:

  • Harder to maintain and debug
  • Misses built-in error handling
  • Doesn’t follow GTM best practices
  • Creates inconsistent implementations

The fix: Use built-in templates whenever possible:

  • Google Analytics 4 Configuration tag (not Custom HTML)
  • Google Analytics 4 Event tag for custom events
  • Facebook Pixel template instead of custom code

When to use Custom HTML: Only when no template exists for your specific need.

Issue #4: Custom HTML Workarounds That Create Problems

What I see:

  • Complex JavaScript in Custom HTML tags trying to work around GTM limitations
  • DOM manipulation that breaks other tags
  • Timing issues from poorly written custom code

Real example I fixed recently:

html

<!-- Problematic custom HTML -->
<script>
  setTimeout(function() {
    // Trying to wait for other tags to load
    if (typeof gtag !== 'undefined') {
      gtag('event', 'custom_event');
    }
  }, 2000);
</script>

Why it’s broken:

  • Arbitrary delays don’t guarantee other tags have loaded
  • Creates race conditions
  • Unreliable timing

The better approach: Use GTM’s built-in sequencing and trigger conditions:

  • Set up proper trigger conditions
  • Use tag sequencing for dependencies
  • Leverage GTM’s built-in timing controls

Issue #5: Consent and Initialization Misfiring

What I see:

  • Tags firing before consent is given
  • GA4 initialization happening multiple times
  • Events firing before the configuration tag

The problem: Many people misunderstand GTM’s firing order:

  1. Consent Initialization (earliest possible)
  2. Initialization (after consent, before pageview)
  3. Page View (after initialization)

Common mistake:

❌ GA4 Event tag set to fire on "Consent Initialization"
✅ GA4 Event tag should fire on "Page View" or later

The fix:

  • Consent tags → Consent Initialization trigger
  • GA4 Configuration → Initialization trigger
  • GA4 Events → Page View or custom triggers
  • Marketing pixels → After consent is granted

Issue #6: Not Using Constants for Tracking IDs

What I see:

❌ GA4 Measurement ID hardcoded in 15 different tags: "G-XXXXXXXXXX"

Why it’s a problem:

  • Nightmare to update when IDs change
  • Easy to make typos
  • Impossible to manage across environments

The fix: Create GTM Variables for all tracking IDs:

Variable Name: "GA4 - Measurement ID"
Variable Type: Constant
Value: G-XXXXXXXXXX

Variable Name: "Facebook - Pixel ID"  
Variable Type: Constant
Value: 1234567890

Pro tip: Use different values for development vs. production environments.

Issue #7: Poor Organization with Folders vs. Naming

What I see:

  • 47 folders with vague names like “Marketing” and “Analytics”
  • Tags named “GA4 Tag 1”, “GA4 Tag 2”, “GA4 Tag 3”

Why folders aren’t the solution:

  • Hard to search and find specific tags
  • Doesn’t scale as your setup grows
  • Folders hide the actual purpose of tags

Better naming convention:

❌ Bad: "GA4 Tag" (in folder "Analytics")
✅ Good: "GA4 - Event - Purchase Complete - Ecommerce"

❌ Bad: "Facebook" (in folder "Social")  
✅ Good: "Pixel - Meta - Add to Cart Event"

My naming system: [Platform] - [Event Type] - [Specific Purpose] - [Page/Section]

Examples:

  • GA4 Config - Main Property - All Pages
  • GA4 Event - Form Submit - Contact Form
  • Meta Pixel - Purchase Event - Checkout Complete

Issue #8: No Debugging or Testing

What I see:

  • Tags published without testing
  • No preview mode usage
  • No verification that data is reaching platforms

The problem: You can’t improve what you can’t measure, and you can’t trust data you haven’t verified.

Essential testing process:

  1. Use Preview Mode before publishing anything
  2. Check the dataLayer in browser dev tools
  3. Verify data in GA4 DebugView (not just real-time reports)
  4. Test on multiple pages and devices
  5. Document what you tested and when

Tools I use for debugging:

  • GTM Preview Mode (obviously)
  • GA4 DebugView for real-time verification
  • Facebook Pixel Helper browser extension
  • dataLayer Inspector for advanced debugging

Issue #9: Over-Reliance on DOM for Tagging

What I see:

  • Click triggers based on CSS selectors that break when the site updates
  • Form submission tracking that depends on fragile DOM elements
  • E-commerce tracking scraped from page content instead of dataLayer

Example of fragile tagging:

javascript

// This breaks when developers change the CSS
Click Element: div.button.red.checkout-btn.large

Why DOM-based tracking is risky:

  • Breaks when developers update the site
  • Unreliable across different page templates
  • Hard to maintain and debug

Better approaches:

  1. dataLayer events pushed from the website code
  2. GTM Element ID triggers (ask developers to add stable IDs)
  3. Custom attributes specifically for tracking
  4. URL-based triggers for page-specific events

Work with developers: Ask your dev team to implement:

javascript

// Reliable dataLayer push for e-commerce
dataLayer.push({
  'event': 'purchase_complete',
  'ecommerce': {
    'transaction_id': '12345',
    'value': 25.42,
    'currency': 'USD'
  }
});

How to Audit Your Own GTM Setup

Monthly GTM health check:

  1. Review active tags – Are they all still needed?
  2. Check for errors in the GTM interface
  3. Test critical conversion tracking in preview mode
  4. Verify data is reaching your analytics platforms
  5. Update documentation of what each tag does

Quarterly deep dive:

  1. Archive unused tags and triggers
  2. Review and improve naming conventions
  3. Test on multiple devices and browsers
  4. Audit consent implementation
  5. Check for new template options for custom HTML tags

The Cost of Broken GTM

These aren’t just technical issues – they have real business impact:

  • Lost conversion data = inability to optimize campaigns
  • Incorrect attribution = wasted ad spend
  • Privacy compliance issues = legal risk
  • Page speed problems = lower search rankings
  • Unreliable data = poor business decisions

When to Get Professional Help

DIY if:

  • You have basic GTM knowledge
  • Your setup is relatively simple
  • You have time to learn and test properly

Get expert help if:

  • You’re losing money due to tracking issues
  • Your setup is complex (multi-domain, lots of integrations)
  • You need compliance with privacy regulations
  • You don’t have time to learn GTM properly

Next Steps

Immediate actions:

  1. Audit your current GTM workspace using the checklist above
  2. Fix the most critical issues (consent, duplicate tags)
  3. Implement proper naming conventions going forward
  4. Set up regular testing routine

Long-term improvements:

  1. Work with developers to implement dataLayer events properly
  2. Create documentation of your GTM setup
  3. Train team members on proper GTM practices
  4. Plan regular audits to catch issues early

Professional GTM Services

This tutorial covers the most common issues I see, but every business has unique tracking needs. If you’re dealing with complex GTM implementations, multi-domain tracking, or need help ensuring privacy compliance, I offer comprehensive GTM audits and implementation services.

What’s included in a professional GTM audit:

  • Complete workspace review and cleanup
  • Privacy compliance assessment (GDPR, CCPA)
  • Performance optimization recommendations
  • Documentation of all tags and triggers
  • Training for your team on best practices

Common GTM projects I handle:

  • Multi-domain e-commerce tracking setup
  • Privacy-compliant consent management
  • Advanced GA4 configurations
  • Custom event tracking implementations
  • GTM workspace migrations and consolidations

Having GTM issues that are impacting your data quality?  Contact Knihter for a comprehensive GTM audit and implementation service. We specialize in complex tracking setups and privacy-compliant implementations.

Related Services: