GTM Container Audit: 15-Point Checklist to Clean Up Your Tags

Your GTM container has 47 tags and nobody knows what half of them do. Here's a 15-point audit checklist to clean it up before it breaks something.

GTMGoogle Tag Manageraudittrackingtag managementcleanup

Every GTM container starts clean. Then someone adds a “temporary” tag for a test campaign. Someone else copies a tag instead of fixing the original. An agency installs their own tracking without telling you. Six months later, you have 47 tags and nobody knows what half of them do.

Here’s how to audit your container systematically and clean it up before something breaks.

The 15-Point Checklist

1. Count Your Tags

GTM → Tags → count them.

TagsAssessment
1-10Clean. Normal for a simple site.
11-25Growing. Review for duplicates.
26-50Heavy. Likely has dead or duplicate tags.
50+Critical. Audit immediately.

More tags = more JavaScript loaded on every page = slower site = lower conversion rate. Each unnecessary tag is a performance and privacy liability.

2. Check for Duplicate GA4 Tags

Search your tags for “GA4” or “Google Analytics.” You should have exactly ONE GA4 Configuration tag (or Google tag) firing on All Pages.

Common duplicates:

  • A GA4 tag from the old marketing agency AND one you installed
  • A GA4 tag via the built-in Google tag AND one via custom HTML
  • Multiple GA4 tags with different Measurement IDs (intentional for multi-property? or accident?)

Duplicate GA4 tags double-count pageviews and events. If your GA4 shows 2x the traffic you expect, check for duplicates first.

3. Verify the Conversion Linker Exists

Required for Google Ads conversion tracking. Search for “Conversion Linker” in your tags. It should:

  • Fire on All Pages (not just the conversion page)
  • Be a built-in tag type (not custom HTML)

Missing conversion linker = Google Ads can’t track conversions.

4. Look for Custom HTML Tags

Filter tags by type → Custom HTML. These are the highest-risk tags because they can contain anything:

  • Inline JavaScript from unknown sources
  • Third-party scripts that load additional scripts
  • Code that modifies the DOM or reads cookies
  • Potential XSS vectors from agencies or contractors

For each Custom HTML tag, ask: Who created this? Is it still needed? Can it be replaced with a built-in tag type?

5. Check Trigger Conditions

For each tag, click it and verify the trigger makes sense:

  • All Pages triggers: Should only be for foundational tags (GA4 config, conversion linker, consent)
  • Specific page triggers: Verify the URL pattern still matches your current site structure
  • Click/form triggers: Test that the CSS selector or element ID still exists on the page

Triggers based on element IDs like #old-form-2024 break when the site is redesigned. If GTM is not firing, stale triggers are the #1 cause.

6. Audit Firing Order (Tag Sequencing)

Some tags must fire in a specific order:

  • Consent tag → BEFORE all other tags
  • GA4 Config → BEFORE GA4 Event tags
  • Conversion Linker → BEFORE Google Ads conversion tags

In GTM, open each dependent tag → Advanced Settings → Tag Sequencing. If critical tags fire out of order, events are lost silently.

7. Check for Tags Without Triggers

GTM → Tags → filter by “0 triggers”

Tags without triggers never fire. They’re dead weight. Either they were disabled intentionally (add a note in the tag name), or someone forgot to attach a trigger. Delete or fix them.

8. Review Variables

GTM → Variables → User-Defined Variables

CheckWhy
Unused variablesDead code, clutters the container
Data Layer variablesVerify the data layer key names match your site’s actual data layer
JavaScript variablesSecurity risk — review the code
Lookup/RegEx tablesOften outdated after site changes

Variables that reference a data layer key that no longer exists will silently return undefined, causing tags to fire with empty values.

If you have a consent banner:

  1. Check that a Consent Initialization trigger exists
  2. Verify consent defaults are set (denied until accepted)
  3. Confirm all marketing/analytics tags respect consent signals
  4. Test with GTM Preview Mode + consent denied

Tags that fire regardless of consent state are a GDPR/CCPA liability. See our Consent Mode v2 guide for the complete setup.

10. Test in Preview Mode

GTM → Preview → enter your site URL

Walk through your conversion flow:

  1. Homepage → Product page → Add to cart → Checkout → Purchase
  2. At each step, check which tags fired and which didn’t
  3. Verify the data layer values match what tags expect

Pay attention to tags that fire on unexpected pages or don’t fire when they should.

11. Check Container Version History

GTM → Admin → Container → Versions

Look at the last 5-10 published versions:

  • Who published them?
  • Are there version notes explaining what changed?
  • Was there a version published by someone who no longer works with you?

Rogue container publishes from ex-agencies are a common source of mystery tags.

12. Look for Overlapping Tracking

Multiple tools tracking the same thing:

  • GA4 + an old UA tag (remove UA — it’s been sunset since 2024)
  • Meta Pixel via GTM + Meta Pixel hardcoded in the HTML
  • Hotjar via GTM + Hotjar snippet in the theme

Each duplicate adds JavaScript weight and can cause data duplication. Check your page source for hardcoded tracking that duplicates what’s in GTM.

13. Verify Cross-Domain Tracking

If your site spans multiple domains (e.g., shop.example.com and example.com):

  • GA4 → Admin → Data Streams → Configure tag settings → Configure your domains
  • GTM: Verify the GA4 tag has the correct domains listed
  • Test: Navigate between domains and check if the session ID persists

Broken cross-domain tracking creates inflated session counts and breaks attribution.

14. Document Everything

For each tag in your container, it should have:

  • A clear, descriptive name (not “Tag 1” or “Copy of GA4”)
  • A folder assignment (organize by: Analytics, Ads, Marketing, Utility)
  • Notes explaining its purpose (use the Notes field in tag settings)

Naming convention suggestion: [Platform] - [Action] - [Detail]

  • GA4 - Config - Main Property
  • Google Ads - Conversion - Purchase
  • Meta - Pixel - Standard Events

15. Check Container Size

GTM → Admin → Container → Export

The exported JSON file size indicates container bloat:

SizeAssessment
< 50 KBClean
50-200 KBNormal
200-500 KBHeavy — review for unnecessary tags
500 KB+Critical — impacting page load

Google recommends keeping containers under 200 KB. Larger containers add visible page load latency.

After the Audit

Once you’ve identified issues:

  1. Create a new workspace in GTM (don’t edit the live container directly)
  2. Fix issues one at a time — each change should be verifiable
  3. Test in Preview Mode after each change
  4. Publish with version notes documenting what you changed and why
  5. Monitor GA4 and ad platforms for 48 hours after publishing to catch regressions

Need Help?

If your container has 50+ tags and you’re not sure what’s safe to remove, run a free tracking scan first — we identify which tags are firing, which are broken, and which are duplicates. Or read our GTM debugging guide for step-by-step troubleshooting.