Every third-party tag on your page competes for three resources: network bandwidth (to download the script), CPU time (to parse and execute the JavaScript), and main thread availability (which determines whether the browser can render content and respond to user input). When these resources are consumed by tags, your page loads slower, responds slower, and shifts content — all of which Google measures through Core Web Vitals.
A page that scores “Good” on Core Web Vitals with zero third-party tags can easily drop to “Poor” when 15–20 tags are added. The question is not whether tags affect performance (they do) but which tags have the most impact and what acceptable thresholds look like.
These benchmarks represent the 75th percentile (P75) impact measured across 1,000+ sites on mid-range mobile devices (Moto G Power equivalent) over 4G connections. P75 means 75% of observations were at or below this value. The 25% above P75 are the slow tail — users on slower devices or networks.
| Tag | Script Size (KB) | Load Time (ms) | Main Thread (ms) | LCP Impact (ms) |
|---|---|---|---|---|
| Google Analytics 4 (gtag.js) | 82 | 120 | 45 | +80 |
| Google Analytics (analytics.js) | 73 | 110 | 35 | +65 |
| Adobe Analytics (AppMeasurement) | 145 | 220 | 85 | +180 |
| Mixpanel | 68 | 95 | 30 | +55 |
| Amplitude | 72 | 100 | 35 | +60 |
| Segment (analytics.js) | 95 | 140 | 50 | +110 |
| Tag | Script Size (KB) | Load Time (ms) | Main Thread (ms) | LCP Impact (ms) |
|---|---|---|---|---|
| Meta Pixel (fbevents.js) | 58 | 105 | 40 | +120 |
| Google Ads Conversion | 45 | 85 | 30 | +90 |
| Google Ads Remarketing | 92 | 160 | 60 | +180 |
| TikTok Pixel | 65 | 110 | 35 | +150 |
| LinkedIn Insight Tag | 52 | 95 | 30 | +110 |
| Twitter/X Pixel | 48 | 90 | 25 | +100 |
| Pinterest Tag | 55 | 100 | 35 | +115 |
| Criteo OneTag | 120 | 200 | 65 | +280 |
| DoubleVerify | 85 | 150 | 55 | +200 |
| MOAT Analytics | 78 | 135 | 50 | +170 |
| Tag | Script Size (KB) | Load Time (ms) | Main Thread (ms) | LCP Impact (ms) |
|---|---|---|---|---|
| Hotjar | 115 | 180 | 75 | +340 |
| FullStory | 135 | 210 | 90 | +360 |
| VWO | 140 | 230 | 80 | +400 |
| Optimizely | 125 | 200 | 70 | +350 |
| Google Optimize (legacy) | 35 | 65 | 20 | +45 |
| Crazy Egg | 80 | 140 | 55 | +220 |
| Lucky Orange | 90 | 155 | 60 | +250 |
| Tag | Script Size (KB) | Load Time (ms) | Main Thread (ms) | LCP Impact (ms) |
|---|---|---|---|---|
| Intercom | 185 | 280 | 110 | +380 |
| Drift | 195 | 300 | 120 | +420 |
| Zendesk Chat | 105 | 170 | 60 | +260 |
| Freshdesk Widget | 95 | 155 | 55 | +240 |
| HubSpot Chat | 110 | 175 | 65 | +270 |
| Tawk.to | 75 | 125 | 45 | +190 |
A performance budget sets a maximum acceptable impact for all third-party tags combined. Start with your CWV targets and work backward:
Tag performance varies. A vendor updates their JavaScript library and it becomes 50% heavier. A CDN has regional latency spikes. A tag that loaded in 100ms last month now loads in 300ms. Without continuous monitoring, you do not know until your CrUX scores drop and your search rankings decline.
Automated tag performance monitoring measures per-tag load time and main thread impact on every page load. When a tag exceeds its budget threshold, an alert fires. You fix it before it affects your Core Web Vitals scores.
Across every tag, every page, 24/7. Set it up in 5 minutes. No GTM dependency. No developer required.
Start 14-day free trial →Across every tag, every page, 24/7. Set it up in 5 minutes.
No GTM dependency. No developer required.