Every Google Tag Manager container accumulates dead tags over time. Campaigns end, vendors change, tracking requirements evolve, but the tags stay. They slow down your pages, create data noise, and sometimes fire in ways that violate your consent setup.
This guide covers how to audit your GTM container systematically, identify dead or problematic tags, and clean them up without breaking what still works.
What Are Dead Tags?
Dead tags fall into a few categories:
- Campaign leftovers: Conversion pixels from completed campaigns (Meta, LinkedIn, Twitter) that no one disabled
- Vendor tags: Scripts from tools you no longer use (Hotjar, Crazy Egg, Drift, Intercom) still loading on every page
- Test tags: Debug tags, test pixels, or temporary GA events that were never removed
- Duplicate tags: Two or more tags doing the same thing, usually from someone adding a “new” GA4 tag without checking if one already exists
- Orphaned tags: Tags whose triggers reference variables or conditions that no longer exist, causing them to either fire on every page or never fire at all
Step 1: Export Your Tag Inventory
In GTM, go to your workspace and look at the Tags section. For each tag, note:
- Tag name and type
- Trigger(s) attached
- Firing status (use GTM Preview mode on key pages to see which tags actually fire)
- Last modified date (look at the Version History for context)
- Consent requirements (or lack thereof)
For containers with 30+ tags, export the container JSON (Admin > Export Container) and review it in a text editor. Search for tag names, trigger IDs, and variable references to map dependencies.
Step 2: Check Firing Status
Open GTM Preview mode and navigate through your key pages: homepage, product/service pages, blog posts, contact form, checkout flow (if applicable). For each page, note which tags fire and which don’t.
Pay attention to:
- Tags that fire on every page but shouldn’t (remarketing pixels on internal pages)
- Tags that never fire on any page (broken trigger conditions)
- Tags that fire multiple times per page (usually a trigger issue)
- Tags firing before consent is granted (missing consent configuration)
Step 3: Measure Page Load Impact
Open Chrome DevTools > Network tab, filter by JS/Img, and reload the page. Sort by size and load time. Third-party scripts loaded by GTM tags show up here. Common offenders:
- Chat widgets: 200-500KB of JavaScript, often loading on pages where nobody uses chat
- Heatmap tools: Recording scripts running on every page, capturing sessions nobody reviews
- Social pixels: Multiple pixels from the same platform (duplicate Facebook Pixel IDs)
Each unnecessary script adds 100-500ms to your page load. Removing 3-5 dead tags can shave a full second off load time.
Step 4: Clean Up
For each dead tag, don’t delete immediately. Instead:
- Pause first: Set the tag’s trigger to a custom event that will never fire (like “gtm.dead”). This effectively disables it without removing history.
- Create a version: Name it “Audit cleanup – [date]” so you can roll back if something breaks.
- Monitor for 1-2 weeks: Check if any reports or dashboards break. If nothing surfaces, the tag was truly dead.
- Delete after confirmation: Remove the paused tags and their orphaned triggers/variables.
Step 5: Set Up Governance
Prevent tag bloat from recurring:
- Document every tag: who requested it, what it does, when to review it
- Set expiration dates on campaign tags (GTM doesn’t have built-in expiry, but you can use a naming convention like “2026-Q2-Meta-Retargeting”)
- Require consent settings on every new tag before publishing
- Review the container quarterly
Want a Professional Audit?
A thorough GTM audit covers more than dead tags. We check event validation, consent compliance, data quality, and page load impact across your entire container.
Our GTM & GA4 Audit service delivers a detailed findings report with prioritized fixes, a tag audit spreadsheet, and optionally implements all the changes for you.


