Skip to main content
c15tinth

c15t cookie banner: speed and features

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

On desktop, the banner took 45 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?

On Nuxt. We measured other CMPs on Next.js only, so this comparison uses c15t’s other integrations.

How fast does the banner appear?

240 ms
Fast

Median of 15 visits.

Joint fastest of 6 c15t integrations. Field median 250 ms. c15t: 240 ms.
All 6 integrations, best first
  1. Next.js240 ms
  2. Nuxt240 ms
  3. TanStack Start250 ms
  4. Astro251 ms
  5. React1.46 s
  6. Script tag1.55 s

Does it slow the page down?

+512 ms95% interval 504 ms to 524 ms
Noticeable

Compared with the same page without a consent manager.

6th of 6 c15t integrations, from least to most delay. Field median 424 ms. c15t: 512 ms.
All 6 integrations, best first
  1. Astro328 ms
  2. Next.js408 ms
  3. TanStack Start416 ms
  4. Script tag432 ms
  5. React476 ms
  6. Nuxt512 ms

How fast does a click respond?

32 msOne visit measured
Fast

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

Joint fastest of 6 c15t integrations. Field median 32 ms. c15t: 32 ms.
All 6 integrations, best first
  1. Next.js32 ms
  2. Nuxt32 ms
  3. Astro32 ms
  4. Script tag32 ms
  5. React40 ms
  6. TanStack Start48 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.

All 6 c15t integrations passed every check. Field median 100%. c15t: 100%.
All 6 integrations, best first
  1. Next.js100%
  2. Nuxt100%
  3. Astro100%
  4. TanStack Start100%
  5. React100%
  6. Script tag100%

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 CMP
240 msFast
+408 ms95% interval 396 ms to 420 msSmall
32 msOne visit measuredFast
4 of 4 passed
NuxtShown above
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), Nuxt: milliseconds from navigation
EventTime from navigation
First byte (TTFB)17 ms
Banner visible240 ms
First paint (FCP)268 ms
Consent state known1.18 s
Largest paint (LCP)3.67 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), Nuxt, with the difference from a page without a consent manager
MeasureWith c15tDifference
TTFBTime to first byte17 ms+13 ms95% interval 6 ms to 19 ms
FCPFirst Contentful Paint268 ms+36 ms95% interval 20 ms to 44 ms
LCPLargest Contentful Paint3.67 s+512 ms95% interval 504 ms to 524 ms
CLSCumulative Layout Shift0.00No measurable difference95% interval: 0.00
Primary content paintThe page’s main content, not the banner3.67 s+512 ms95% interval 504 ms to 524 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), Nuxt: 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), Nuxt
MeasureWith c15tDifference
Initial transferBytes before the page settles665 KB+113 KB95% interval 112 KB to 113 KB
Deferred transferBytes loaded laterNot compared
RequestsAll requests36+27No 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), Nuxt
MeasureWith c15tDifference
Long-task timeBlocking time during load61 ms+61 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.