What we check
In the HTML: the scan looks for the loaders of seven known trackers, gtm.js, gtag.js, Meta fbevents.js, Hotjar, LinkedIn Insight, Microsoft Clarity and HubSpot, downloads up to six of them itself (three-second limit each) and adds up their size. Up to 100 KB means "ok", up to 200 KB "to review", above that critical. If it finds no known loader, the line is a note: nothing to measure. The figure is an estimate, and the line says so.
What the scan cannot see: everything the container loads afterwards, meaning the actual tags in the tag manager, plus chat widgets, A/B tests and embeds. It measures transfer size or raw size, depending on what the server reports, and never the compute time a script costs in the browser.
Why it matters
Tracking scripts run on every page, for every visitor, before any content. A container with 60 tags can cost more time on a mid-range Android device than rendering the page itself. And the load is only the visible symptom. Behind 200 KB of tracking there are usually three tools measuring the same thing, session recording on pages nobody analyses, and a container nobody has tidied in three agencies. Each of those scripts is also an entry in the privacy policy that someone has to maintain.
Common causes
- Several analytics tools measure the same thing in parallel, GA4 plus heatmap plus session recording plus product analytics.
- Tag manager containers grew for years, nobody ever deleted a tag.
- Session recording tools load on every page although only the checkout was meant to be studied.
- Consent, chat, and personalisation widgets each bring their own library along.