CHECKLIST
GTM audit checklist
The audit I run in week one of every engagement. Order matters — inventory before judgment.
1. Inventory (find everything that fires)
- Export container JSON; list every tag, trigger, and variable
- Crawl key templates with the Network tab open — find tags injected outside GTM (hardcoded, CMS plugins, third-party embeds)
- Check for a second GTM container or legacy analytics snippets (UA, old pixels)
- Map every tag to an owner and a business purpose; no owner = removal candidate
2. Data layer
- Is there a documented data layer spec? (Usually: no. That's finding #1.)
- Are values pushed before GTM loads on every template?
- Consistent types? (
"12.99"vs12.99breaks downstream) - Ecommerce objects match GA4's schema, not UA's leftover format
3. Triggers & tags
- Duplicate firing: same event, two tags, or one tag on two overlapping triggers
- All-pages triggers on tags that should be scoped
- Paused tags older than 6 months — delete, don't hoard
- Naming convention exists and is followed (see the GA4 naming guide below)
4. Consent & privacy
- Do non-essential tags wait for consent state? Prove it with network logs (see consent checklist)
- Consent initialization fires before any tag decision
- PII in URLs, data layer, or custom dimensions (emails in query strings are everywhere)
5. QA & governance
- Who can publish? (More than 3 people = incidents waiting)
- Are versions named and described, or all "Untitled change"?
- Test plan for releases, or does everyone test in production?
The audit always finds tags nobody remembers adding. Inventory before architecture.