Performance

Tag weight

Tag weight is the total cost of a tag manager container and every script it loads: bytes, requests, and main-thread time. It often outweighs the site's own code.

How it is measured

Load the page with the tag manager enabled and then blocked, and compare transfer size, request count, and TBT. Lighthouse's 'Reduce the impact of third-party code' and the Performance panel's grouping by domain attribute main-thread time to each vendor.

Count the container itself too, since GTM's script grows with each tag. Export the container and list tags, triggers, and fire counts. Tags set to fire on All Pages that only matter at checkout are the usual waste.

Worked example

A furniture retailer's GTM container is 212 KB and loads 19 tags: two analytics, three ad pixels, a heatmap, chat, a review widget, an A/B tool, and others. Together they add 1.4 MB over 63 requests and 2.2 s of main-thread time on a throttled phone. Blocking GTM in a lab run drops TBT from 1,900 ms to 310 ms.

An audit finds 6 tags from retired campaigns and 4 that fire everywhere but are used only on `/checkout`. Removing the first six and scoping the others cuts tag weight to 0.7 MB and TBT to 800 ms.

How it differs

Tag weight is the summed cost of the container and its children. A single third-party script is one item inside it. A tag manager hides individual costs behind one request to its own host, so the Network panel shows far more than the container file.

Common errors

Never auditing the container. Giving marketing publish access with no performance review. Firing every tag on every page. Leaving paused tags that still load code. Judging weight by the container's file size alone.

In practice

Export your container and list every tag with an owner and the last date anyone opened its report. Remove the unowned ones, scope the rest by page type and trigger, and re-measure TBT with the manager on. Repeat each quarter.

See also

Third-party script, Tag manager

Sources

Count this on a real site.

Watch my website