Google Tag Manager: impact on page speed
Category: Tag management
Google Tag Manager loads a container that in turn loads and runs other tags such as analytics, ad pixels and heatmaps. Its cost depends far more on what is inside the container than on the container script itself.
On 67 % of the 5509 homepages measured, Google Tag Manager is among the five heaviest third parties. Where it is, it takes a median of 430 ms of main-thread time; on the heaviest quarter of those sites it takes 810 ms or more.
67 %
of homepages: among the five heaviest third parties
430 ms
median main-thread time
810 ms
main-thread time on the heaviest quarter (p75)
466 KB
median transfer size
Distribution across homepages
Percentiles across 3696 homepages with Google Tag Manager.
| Percentile | Main-thread time | Transfer size |
|---|---|---|
| p25 |
212 ms
|
220 KB |
| Median |
430 ms
|
466 KB |
| p75 |
810 ms
|
714 KB |
| p90 |
1,300 ms
|
1.0 MB |
In context
By median main-thread time, Google Tag Manager ranks second of 72 third parties in the benchmark, lighter than YouTube and heavier than Google CDN.
On 69 % of the homepages where it appears, Google Tag Manager alone uses 250 milliseconds of main-thread time or more, the mark from which Lighthouse flags third-party code.
Homepages with Google Tag Manager weigh 4.8 MB at the median (JavaScript: 1.8 MB), homepages without it 3.2 MB (JavaScript: 987 KB).
Often loaded together with
Share of homepages with Google Tag Manager where the other tool is also among the five heaviest third parties.
- Facebook 37 %
- Google/Doubleclick Ads 19 %
- Google Analytics 16 %
How to spot Google Tag Manager on your page
In the network panel the container appears as gtm.js from googletagmanager.com, followed by everything it injects. Main-thread time attributed to Google Tag Manager therefore often includes the work of tags inside it, so the number says as much about the container's contents as about the tool. A container that has grown over several agencies and campaigns is the typical case where a cleanup pays off faster than any code change on the site itself.
How to reduce the impact of Google Tag Manager
- Audit the container and remove tags, triggers and variables that no longer feed a report anyone reads.
- Replace "All Pages" triggers with page-specific or event-based triggers wherever a tag is only needed in one place.
- Avoid Custom HTML tags that inject further scripts; prefer built-in tag templates.
- Consider server-side tagging to move vendor tags out of the browser.
Frequently asked questions
How can I load Google Tag Manager with less impact?
Audit the container and remove tags, triggers and variables that no longer feed a report anyone reads. Replace "All Pages" triggers with page-specific or event-based triggers wherever a tag is only needed in one place.
Does Google Tag Manager affect Core Web Vitals?
Google Tag Manager itself rarely moves a Core Web Vital. What it loads does: tags that fire on page load run on the main thread while the page is still rendering and handling the first taps, which shows up in INP, and tags that insert banners or widgets above the content cause layout shifts. Container size and trigger timing therefore matter more than the container script.
Method and sample: Third-Party Benchmark.