GTM Container Linter
Upload your GTM container JSON export and get an instant audit with actionable recommendations
Drop your GTM container JSON file here
Export from GTM: Admin → Export Container → Choose version → Export
— or —
Container Overview
Issues Found
What Is a GTM Container Audit?
A GTM container audit is a systematic review of your Google Tag Manager setup to identify misconfigurations, unused elements, and deviations from best practices. As containers grow over time with contributions from multiple team members, they accumulate technical debt: orphaned tags, duplicate tracking codes, inconsistent naming, and triggers that never fire.
Regular audits help maintain a clean, efficient container that loads faster, tracks accurately, and is easier for your team to manage. This linter automates the most common checks that experienced GTM consultants perform during manual reviews.
Why Audit Your GTM Container?
Performance
Unused tags and duplicate code slow down page load. A clean container means faster sites and better Core Web Vitals.
Data Accuracy
Misconfigured tags can send duplicate events or miss conversions entirely. Auditing catches tracking gaps before they affect reports.
Team Collaboration
Consistent naming conventions and organized folders make containers readable for every team member, not just the person who set them up.
Compliance
Identify tags firing without proper consent setup and scripts loading from unexpected third-party domains.
Checks Performed
| Check | Severity | Description |
|---|---|---|
| Tags without triggers | Error | Tags that have no firing trigger will never execute |
| Unused variables | Warning | Variables not referenced by any tag or trigger add clutter |
| Unused triggers | Warning | Triggers not attached to any tag serve no purpose |
| Duplicate tags | Error | Multiple tags of the same type with identical configuration |
| Empty Custom HTML tags | Error | Custom HTML tags with no code content |
| Naming convention issues | Info | Inconsistent naming patterns across tags, triggers, and variables |
| Missing pause/blocking | Info | Tags without blocking triggers (consent consideration) |
| All Pages trigger overuse | Warning | Many tags on All Pages trigger can impact performance |
| Custom JS variable complexity | Info | Overly complex JavaScript in variable definitions |
| Tag sequencing issues | Warning | Tags dependent on sequencing that reference paused tags |
GTM Container Best Practices
- Use consistent naming:
[Type] - [Category] - [Detail] - Organize tags into folders by vendor or function
- Set up blocking triggers for consent management
- Remove unused tags, triggers, and variables regularly
- Use built-in tag types instead of Custom HTML when possible
- Document complex Custom HTML and Custom JS with comments
- Leave orphaned tags with no triggers attached
- Duplicate GA4 Config tags across multiple triggers
- Use All Pages trigger for every tag without consideration
- Add sensitive data (API keys, passwords) in tag configurations
- Ignore naming conventions as the container grows
- Skip version descriptions when publishing changes
Related Articles
Frequently Asked Questions
In Google Tag Manager, go to Admin → Export Container. Select the latest version or workspace, then click Export. This downloads a JSON file that you can upload to this linter.
No. All analysis happens entirely in your browser. Your container JSON is never uploaded or transmitted anywhere. You can verify this in your browser’s Network tab.
A variable is considered unused if its name does not appear in any tag parameter value or trigger condition within the exported container. Note that variables used only in Custom HTML/JS code blocks via manual references may show as unused — review these manually.
The health score measures container hygiene, not tracking functionality. A container can track correctly while still having unused elements, naming inconsistencies, and missing best practices that make it harder to maintain long-term.
Yes, you can export and analyze server-side containers the same way. The linter checks the JSON structure regardless of container type. Some checks (like Custom HTML) are more relevant to web containers.
For actively managed containers, we recommend quarterly audits. If multiple people make changes or you frequently add new tracking, monthly checks help catch issues early. At minimum, audit before and after major site redesigns.