Cookie Banner Performance: Core Web Vitals Benchmark
Date: May 30, 2026 Author: GetCookies Team Category: Technical Reading Time: 12 min
"Does this cookie banner slow down my site?"
It's the #1 question developers ask. And for good reason. Interaction to Next Paint (INP) and Largest Contentful Paint (LCP) are Google ranking factors. A heavy CMP can tank your SEO scores.
We benchmarked GetCookies against the industry giants (OneTrust, Cookiebot, Termly). Here is the data.
The Weight Class
- GetCookies: 1.2 KB (Loader) / 18 KB (Full UI).
- Cookiebot: 46 KB (Base).
- OneTrust: 140 KB+ (Base).
Benchmark Results (Lighthouse Mobile)
| Metric | No Banner | GetCookies | Competitor A | Competitor B |
|---|---|---|---|---|
| LCP | 1.2s | 1.2s | 1.8s | 1.5s |
| TBT | 0ms | 10ms | 150ms | 80ms |
| INP | 20ms | 25ms | 110ms | 60ms |
Why the Difference?
- The "Stubb" Loader: GetCookies loads a tiny ~1.6 KB stub immediately. This stub queues commands (like GTM events) but does not render pixels. The heavy lifting happens off the main thread.
- No Layout Shift (CLS): Competitors often inject a top bar that pushes content down, causing a Cumulative Layout Shift penalty. GetCookies uses a floating overlay or a bottom bar with
position: fixedto ensure zero layout shift. - Modern JS: We ship ES2026 modules. Competitors often ship bloated ES5 bundles to support Internet Explorer 11 (which is dead).
Optimization Tips for Any CMP
- DNS Prefetch: Add
<link rel="dns-prefetch" href="https://js.getcookies.io">to your head. - Async vs Defer: Always use
async.defermight execute too late (after other scripts have already fired illegally). - Self-Hosting: For maximum speed, proxy the script through your own Cloudflare worker (GetCookies Enterprise supports this).
Conclusion
Compliance shouldn't cost you performance. If your current CMP is adding 100ms+ to your Total Blocking Time (TBT), it is hurting your SEO. Switch to a performance-first architecture.