How fast is your cookie banner on TanStack Start?
Only c15t, Cookie Control, Didomi, Enzuzo, iubenda, Ketch, OneTrust, Osano, Usercentrics and CookieYes ran on TanStack Start. See every CMP on Next.js
Sorted by “How fast does the banner appear?”, lowest first.
| GoodNeeds improvementPoor | |||||
|---|---|---|---|---|---|
| No consent managerThe same test page, for reference | No banner | Good: 112 ms | Baseline | – | |
| 54 ms | Good: 144 ms+24 ms vs no CMP | +0 msvs no CMP | Good: 16 ms | ||
| 279 ms | Good: 124 msSame as no CMP | +0 msvs no CMP | Good: Under 16 ms | IAB GPP: Unknown | |
| 380 ms | Good: 116 msSame as no CMP | +10 msvs no CMP | Good: 24 ms | IAB GPP: Unknown | |
| 398 ms | Good: 116 msSame as no CMP | +0 msvs no CMP | Good: 32 ms | ||
| 447 ms | Good: 108 msSame as no CMP | +51 msvs no CMP | Good: 16 ms | ||
| 463 ms | Good: 116 ms+4 ms vs no CMP | +42 msvs no CMP | Good: 24 ms | IAB GPP: Unknown | |
| 623 ms | Good: 116 msSame as no CMP | +1 msvs no CMP | Good: 16 ms | ||
| 637 ms | Good: 116 msSame as no CMP | +5 msvs no CMP | Good: 40 ms | ||
| 675 ms | Good: 112 msSame as no CMP | +52 msvs no CMP | Good: Under 16 ms | ||
| 1.64 s | Good: 112 ms+0 ms vs no CMP | +176 msvs no CMP | Good: 32 ms | ||
Largest contentful paint: when the biggest element on screen painted. The line under it shows how much later that was than on the same page without a consent manager. When the banner itself was the largest element, we time the change on the page’s main content instead.
Total blocking time: how much more time long tasks blocked the main thread while the page loaded. We compare it with the same page without a consent manager. While long tasks block the main thread, the page cannot respond to taps or clicks.
Interaction to next paint, measured on the Accept click: how long until the screen visibly responds. We time one click in the lab. Field INP covers a whole visit.
c15t
- Banner appears
- 54 ms
- LCP
- Good: 144 ms+24 ms vs no CMP
- TBT
- +0 msvs no CMP
- INP
- Good: 16 ms
CookieYes- Banner appears
- 279 ms
- LCP
- Good: 124 msSame as no CMP
- TBT
- +0 msvs no CMP
- INP
- Good: Under 16 ms
- IAB GPP: Unknown
Cookie Control- Banner appears
- 380 ms
- LCP
- Good: 116 msSame as no CMP
- TBT
- +10 msvs no CMP
- INP
- Good: 24 ms
- IAB GPP: Unknown
iubenda- Banner appears
- 398 ms
- LCP
- Good: 116 msSame as no CMP
- TBT
- +0 msvs no CMP
- INP
- Good: 32 ms
Didomi- Banner appears
- 447 ms
- LCP
- Good: 108 msSame as no CMP
- TBT
- +51 msvs no CMP
- INP
- Good: 16 ms
Enzuzo- Banner appears
- 463 ms
- LCP
- Good: 116 ms+4 ms vs no CMP
- TBT
- +42 msvs no CMP
- INP
- Good: 24 ms
- IAB GPP: Unknown
OneTrust
- Banner appears
- 623 ms
- LCP
- Good: 116 msSame as no CMP
- TBT
- +1 msvs no CMP
- INP
- Good: 16 ms
Osano- Banner appears
- 637 ms
- LCP
- Good: 116 msSame as no CMP
- TBT
- +5 msvs no CMP
- INP
- Good: 40 ms
Usercentrics- Banner appears
- 675 ms
- LCP
- Good: 112 msSame as no CMP
- TBT
- +52 msvs no CMP
- INP
- Good: Under 16 ms
Ketch- Banner appears
- 1.64 s
- LCP
- Good: 112 ms+0 ms vs no CMP
- TBT
- +176 msvs no CMP
- INP
- Good: 32 ms
Every CMP listed passed the consent checks we could run: nothing tracked before a choice, and Reject held after a reload. Feature support comes from vendor documentation. Standards: TCF = IAB TCF · GPP = IAB GPP · CMv2 = Google Consent Mode v2 · GPC = Global Privacy Control.
- Verified by test
- Per vendor docs
- Partial
- Not supported
- Unknown
What did the latest run find?
On desktop, c15t showed its banner fastest, in a median 60 ms. Ketch was slowest, at 1.68 s. Seven of the ten delayed the main content by less than one screen refresh (16 ms) or not measurably at all. c15t added 16 ms. On emulated mobile, banners appeared in 240 ms to 7.95 s. Every CMP delayed the main content, by 176 ms to 1.74 s.
What do these numbers mean?
- How fast does the banner appear?
- From the moment the page starts to load until the banner is on screen. A visitor cannot accept or reject until then.
- LCP: Largest contentful paint
- When the biggest element on screen painted. We also show how much later it painted than on the same page without a consent manager. Google rates LCP good up to 2.5 s and poor above 4 s. A change under 16 ms is shorter than one screen refresh.
- TBT: Total blocking time
- How much longer the browser was too busy to respond while the page loaded. We compare it with the same page without a consent manager. Lighthouse weighs it heavily. It is also the lab measure most tied to a slow INP. Google publishes no rating band for it.
- INP: Interaction to next paint, measured on the Accept click
- How long the screen takes to respond after a visitor clicks Accept. Google rates INP good up to 200 ms and poor above 500 ms. We time one click in the lab. Field INP covers a whole visit.
How to read the table
- No measurable delay
- We load each page twice in pairs, once with the consent manager and once without. When the 95% interval of the difference includes zero, the delay is too small to tell apart from normal variation. In that case, we print “No measurable delay” instead of a number.
- 95% interval
- The range the true difference most likely falls in, from a bootstrap over the paired visits. A narrow range means the result is stable. A wide range means visits varied.
- Ties
- When two results are within each other’s spread, the order between them is noise. The table brackets them and lists them by name, not by rank.
Read the methodology for the test pages, profiles, thresholds and known limits.
Choosing between two consent managers?
Each comparison puts two CMPs side by side on the same questions, from the same run.
Which CMPs support IAB TCF, GPP or Consent Mode? See the feature matrix.
See all 17 comparisons, including c15t against each CMP.
It depends on what you measure. On an emulated mid-tier phone, c15t showed its banner first (median 240 ms). Osano (2.15 s) and CookieYes (2.42 s) came next. The CMP that delayed the page least was CookieYes (176 ms). On desktop, c15t showed its banner first, in 60 ms.
On a phone, yes. Every CMP we measured on the emulated mid-tier phone delayed the main content, by 176 ms to 1.74 s. On desktop, seven of ten caused no visible delay. The largest delay was 16 ms (c15t). When the banner itself is the largest element on screen, we time the page’s main content instead. So a large banner cannot hide a slow page.
A fast banner and a light page pull in different directions. A score that combines them needs weights. Those weights would be our opinion, not a measurement. Sort the table by the question that matters for your site. When two results are within each other’s spread, we say so and do not rank them.
Every CMP on the board did, in the checks we could run. No analytics or marketing script ran before the visitor chose. Reject and withdrawal held after a reload. A CMP must pass these checks to be on the board, so the table compares speed only. Each CMP’s page lists the checks that we could not run for it.
We print “Not measured” and the reason, not a zero.