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 Health Score

0/100

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

DO
  • 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
DON’T
  • 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.