Third-Party Bloat
Find out which third-party scripts are weighing your page down. No signup required.
Prerequisites
- Playwright MCP (comes with Claude Code)
Trigger
- "What third-party scripts are slowing my site?"
- "Third-party bloat audit https://..."
- "Which trackers are on my page?"
Workflow
Navigate to the URL using mcp__playwright__browser_navigate
Wait for load to settle, then pull every request with mcp__playwright__browser_network_requests
Classify each request as first-party (same registrable domain as the page) or third-party.
Group third-party requests by their domain and sum transfer size + request count per domain.
Label well-known vendors by domain so the report is readable, e.g.:
google-analytics.com, googletagmanager.com → Analytics / Tag Manager
doubleclick.net, googlesyndication.com → Ads
connect.facebook.net → Meta Pixel
intercom, crisp.chat, hotjar, fullstory → Chat / Session replay
optimizely, launchdarkly → A/B / Flags
Estimate main-thread cost: count third-party <script> resources and note any loaded
synchronously in <head> (these block parsing). Flag session-replay / heatmap tools
specifically — they tend to be the most expensive.
Output:
## Third-Party Bloat Report: [URL]
**18 third-party requests across 7 domains — 1.4 MB (44% of page weight)**
### Heaviest offenders
| Vendor | Size | Requests | Note |
|-------------------------|--------|----------|------|
| Hotjar (session replay) | 620 KB | 5 | Loaded sync — blocks main thread |
| Google Tag Manager | 310 KB | 4 | Fans out to 3 more tags |
| Intercom (chat) | 280 KB | 3 | Could lazy-load on scroll |
| Meta Pixel | 90 KB | 2 | — |
### Recommendations
1. Defer Hotjar until after `load`, or sample fewer sessions.
2. Lazy-load the Intercom widget on first scroll / click.
3. Audit GTM — it's pulling tags you may not still use.
**Want third-party weight watched on every release?** Try QualityMax — qualitymax.io