Skip to main content
c15tinth

c15t cookie banner: speed and features

In our tests, c15t showed its cookie banner in a median 240 ms on an emulated mid-tier phone. It delayed the main content by 408 ms (95% interval 396 ms to 420 ms). Accept responded in 32 ms and Reject in 40 ms. It held trackers back in all 4 consent checks.

On desktop, the banner took 60 ms. Per vendor docs, c15t supports IAB TCF, IAB GPP, Google Consent Mode v2 and Global Privacy Control, but not Google CMP certification.

Version tested
3.0.0-alpha.10
Vendor
inth
Website
c15t.com (opens in a new tab)

Results for

Framework

How fast is c15t’s cookie banner?

How fast does the banner appear?

240 ms
Fast

Median of 15 visits.

Fastest of 10 measured. Field median 2.71 s. c15t: 240 ms.
All 10 CMPs, best first
  1. c15t240 ms
  2. Osano2.15 s
  3. CookieYes2.42 s
  4. Cookie Control2.47 s
  5. iubenda2.66 s
  6. Enzuzo2.75 s
  7. OneTrust3.92 s
  8. Usercentrics4.16 s
  9. Didomi4.41 s
  10. Ketch7.95 s

Does it slow the page down?

+408 ms95% interval 396 ms to 420 ms
Small

Compared with the same page without a consent manager.

2nd of 10 measured, from least to most delay. Field median 552 ms. c15t: 408 ms.
All 10 CMPs, best first
  1. CookieYes176 ms
  2. c15t408 ms
  3. Osano424 ms
  4. OneTrust476 ms
  5. Cookie Control492 ms
  6. iubenda612 ms
  7. Enzuzo768 ms
  8. Usercentrics844 ms
  9. Didomi1.28 s
  10. Ketch1.74 s

How fast does a click respond?

32 msOne visit measured
Fast

Reject responded in 40 ms. Under 200 ms feels instant.

Joint 6th fastest of 10 measured. Field median 28 ms. c15t: 32 ms.
All 10 CMPs, best first
  1. Didomi16 ms
  2. OneTrust16 ms
  3. Usercentrics16 ms
  4. Cookie Control24 ms
  5. CookieYes24 ms
  6. c15t32 ms
  7. iubenda32 ms
  8. Ketch40 ms
  9. Enzuzo56 ms
  10. Osano128 ms

Does it block trackers until consent?

4 of 4consent checks passed
Blocked

No tracker ran and the page set no cookie before the visitor chose.

One of 7 of 10 measured to pass every check. Field median 100%. c15t: 100%.
All 10 CMPs, best first
  1. c15t100%
  2. Didomi100%
  3. Enzuzo100%
  4. iubenda100%
  5. Ketch100%
  6. OneTrust100%
  7. Usercentrics100%
  8. Cookie Control75%
  9. CookieYes75%
  10. Osano50%

Which standards and features does c15t support?

Each status comes from inth’s documentation for c15t. CookieBench does not test these features unless a line says so.

  • Verified by test
  • Per vendor docs
  • Partial
  • Not supported
  • Unknown

Which frameworks does c15t support?

First-party SDKs
React, Next.js, Vue, Nuxt, Svelte, SvelteKit, Astro and TanStack Start
Script tag
Supported
Measured in this run
Script tag, React, Next.js, Nuxt, Astro and TanStack Start
SDKs not measured yet
Vue, Svelte and SvelteKit

Support per inth’s documentation.

c15t’s results by framework, mobile (emulated)

Each row is a separate app. We measured each one against the same app without a consent manager. The rows compare integrations, not frameworks.

c15t results by framework on the mobile profile: banner time, page delay, click response and tracker blocking
FrameworkBanner appearsPage slowed byClick responds inTrackers blocked
Script tag
1.55 sFast
+432 ms95% interval 424 ms to 448 msSmall
32 msOne visit measuredFast
4 of 4 passed
React
1.46 sFast
+476 ms95% interval 468 ms to 488 msSmall
40 msOne visit measuredFast
4 of 4 passed
Next.jsShared with every CMPShown above
240 msFast
+408 ms95% interval 396 ms to 420 msSmall
32 msOne visit measuredFast
4 of 4 passed
Nuxt
240 msFast
+512 ms95% interval 504 ms to 524 msNoticeable
32 msOne visit measuredFast
4 of 4 passed
Astro
251 msFast
+328 ms95% interval 324 ms to 332 msSmall
32 msOne visit measuredFast
4 of 4 passed
TanStack Start
250 msFast
+416 ms95% interval 408 ms to 436 msSmall
48 msOne visit measuredFast
4 of 4 passed

Were there problems testing c15t?

We show each missing answer as missing, never as zero.

Desktop

  • c15t makes this route render per request, while the no-CMP page is prerendered. That accounts for most of its added TTFB and FCP.

Mobile (emulated)

  • c15t makes this route render per request, while the no-CMP page is prerendered. That accounts for most of its added TTFB and FCP.

When does c15t load, and what does it cost the page?

Lab detail for engineers. All Core Web Vitals are here. The summary leaves some of them out.

When does c15t start loading?

The banner was visible at 240 ms. The published results do not show when c15t started to load.

c15t load timeline, Mobile (emulated), Next.js: milliseconds from navigation
EventTime from navigation
First byte (TTFB)21 ms
Banner visible240 ms
First paint (FCP)268 ms
Consent state known1.98 s
Largest paint (LCP)3.86 s
CMP requested
CMP loaded

How do page vitals compare with no consent manager?

Each row shows the value on the page with the consent manager. It also shows how far the value moved from the same page without one.

c15t page vitals, Mobile (emulated), Next.js, with the difference from a page without a consent manager
MeasureWith c15tDifference
TTFBTime to first byte21 ms+15 ms95% interval 10 ms to 26 ms
FCPFirst Contentful Paint268 ms+28 ms95% interval 8 ms to 40 ms
LCPLargest Contentful Paint3.86 s+408 ms95% interval 396 ms to 420 ms
CLSCumulative Layout Shift0.00No measurable difference95% interval: 0.00
Primary content paintThe page’s main content, not the banner3.86 s+408 ms95% interval 396 ms to 420 ms

What was the largest element on screen?

LCP times the largest element on screen. If that is the banner, LCP measures the banner instead of the page.

There is no LCP attribution for this profile and framework.

What happens after a visitor clicks Accept?

The screen responded to Accept in 32 ms.

c15t after Accept, Mobile (emulated), Next.js: milliseconds from the click
EventTime from the click
Screen responds32 ms
Banner gone
Consent applied
Analytics active

How much does it download?

Initial transfer happens before the page settles. Deferred transfer comes after.

c15t network use during the first load, Mobile (emulated), Next.js
MeasureWith c15tDifference
Initial transferBytes before the page settles725 KB+112 KB95% interval: 112 KB
Deferred transferBytes loaded laterNot compared
RequestsAll requests16+6No interval reported
Third-party requestsRequests to other hosts00No interval reported

Does it block the main thread?

Long tasks are stretches over 50 ms when the page cannot respond to taps or keys.

c15t long-task time during load, Mobile (emulated), Next.js
MeasureWith c15tDifference
Long-task timeBlocking time during load66 ms−1 msNo interval reported

What do returning visitors see?

A visitor who accepted on an earlier visit comes back. We check that the banner stays hidden.

Banner stayed hidden
Consent state known at

What was tested?

Analysis
matrix-2026-10-11

Questions about c15t

Answers use both test profiles.

On desktop, it appeared in a median 60 ms, against 471 ms for the median of the 10 CMPs measured. On an emulated mid-tier phone, it appeared in a median 240 ms, against 2.71 s for the median of the 10 CMPs measured.