---
title: "Leaderboard: Desktop, Next.js"
canonical: "https://cookiebench.com/"
last-updated: "2026-11-14"
---

# How fast is your cookie banner?

See what a consent manager costs your page before you install it. We loaded ten of them 15 times each, beside the same page without one.

Desktop profile: 1365 × 768 · No CPU slowdown · 12.5 MB/s, no added latency. Tested in a Next.js app. The table orders rows by how fast the banner appears, fastest first. Rows "tied with" another are within each other's spread, so their order is not meaningful. There is no overall score.

| Consent manager | Banner appears | LCP | LCP vs no CMP | TBT added | INP (Accept click) | Standards |
| --- | --- | --- | --- | --- | --- | --- |
| No consent manager (the same test page, for reference) | No banner | 72 ms (Good) | Baseline | – | – | – |
| [Inth](https://cookiebench.com/benchmarks/inth.md) | 25 ms | 92 ms (Good) | +16 ms | +0 ms | 40 ms (Good) | TCF: Per vendor docs; GPP: Per vendor docs (GPP 1.1); CMv2: Per vendor docs; GPC: Per vendor docs |
| [Cookie Control](https://cookiebench.com/benchmarks/cookie-control.md) | 375 ms | 72 ms (Good) | Same as no CMP | +0 ms | 48 ms (Good) | TCF: Per vendor docs (TCF v2.3); GPP: Unknown; CMv2: Per vendor docs; GPC: Per vendor docs |
| [CookieYes](https://cookiebench.com/benchmarks/cookieyes.md) | 393 ms (tied with Cookie Control) | 84 ms (Good) | Same as no CMP | +0 ms | 48 ms (Good) | TCF: Per vendor docs (Pro and Ultimate plans); GPP: Unknown; CMv2: Per vendor docs; GPC: Per vendor docs (Pro and Ultimate plans) |
| [iubenda](https://cookiebench.com/benchmarks/iubenda.md) | 409 ms (tied with CookieYes) | 72 ms (Good) | Same as no CMP | +0 ms | 16 ms (Good) | TCF: Per vendor docs (TCF v2.2); GPP: Per vendor docs; CMv2: Per vendor docs; GPC: Per vendor docs |
| [Enzuzo](https://cookiebench.com/benchmarks/enzuzo.md) | 449 ms (tied with iubenda) | 72 ms (Good) | +0 ms | +0 ms | 48 ms (Good) | TCF: Per vendor docs (Growth plan and up); GPP: Unknown; CMv2: Per vendor docs; GPC: Per vendor docs |
| [Didomi](https://cookiebench.com/benchmarks/didomi.md) | 456 ms (tied with Enzuzo) | 72 ms (Good) | Same as no CMP | +0 ms | 40 ms (Good) | TCF: Per vendor docs (TCF v2.2); GPP: Per vendor docs; CMv2: Per vendor docs; GPC: Per vendor docs |
| [Osano](https://cookiebench.com/benchmarks/osano.md) | 625 ms | 72 ms (Good) | Same as no CMP | +0 ms | 40 ms (Good) | TCF: Per vendor docs (TCF v2); GPP: Per vendor docs; CMv2: Per vendor docs; GPC: Per vendor docs |
| [OneTrust](https://cookiebench.com/benchmarks/onetrust.md) | 640 ms (tied with Osano) | 72 ms (Good) | Same as no CMP | +0 ms | 56 ms (Good) | TCF: Per vendor docs (TCF v2.2 and v2.3); GPP: Per vendor docs; CMv2: Per vendor docs; GPC: Per vendor docs |
| [Usercentrics](https://cookiebench.com/benchmarks/usercentrics.md) | 704 ms (tied with OneTrust) | 72 ms (Good) | Same as no CMP | +0 ms | 16 ms (Good) | TCF: Per vendor docs (Pro plan and up); GPP: Per vendor docs (v3 script tag); CMv2: Per vendor docs; GPC: Per vendor docs |
| [Ketch](https://cookiebench.com/benchmarks/ketch.md) | 1.82 s | 72 ms (Good) | +0 ms | +37 ms | 40 ms (Good) | TCF: Per vendor docs (TCF v2.2); GPP: Per vendor docs; CMv2: Per vendor docs; GPC: Per vendor docs |

Every CMP listed passed the consent checks we could run: nothing tracked before a choice, and Reject held after a reload. Google rates LCP good up to 2.5 s and poor above 4 s. It rates INP good up to 200 ms and poor above 500 ms. It publishes no band for TBT. [Every metric for this view](https://cookiebench.com/results.md).

## Other views

- [Desktop, React](https://cookiebench.com/react.md)
- [Desktop, Nuxt](https://cookiebench.com/nuxt.md)
- [Desktop, Astro](https://cookiebench.com/astro.md)
- [Desktop, TanStack Start](https://cookiebench.com/tanstack-start.md)
- [Desktop, Script tag](https://cookiebench.com/script-tag.md)
- [Mobile, Next.js](https://cookiebench.com/mobile.md)
- [Mobile, React](https://cookiebench.com/mobile/react.md)
- [Mobile, Nuxt](https://cookiebench.com/mobile/nuxt.md)
- [Mobile, Astro](https://cookiebench.com/mobile/astro.md)
- [Mobile, TanStack Start](https://cookiebench.com/mobile/tanstack-start.md)
- [Mobile, Script tag](https://cookiebench.com/mobile/script-tag.md)

## What did the latest run find?

On desktop, Inth showed its banner fastest, in a median 25 ms. Ketch was slowest, at 1.82 s. Seven of the ten delayed the main content by less than one screen refresh (16 ms) or not measurably at all. Inth added 16 ms. On emulated mobile, banners appeared in 252 ms to 7.46 s. Every CMP delayed the main content, by 180 ms to 1.76 s.

[Fastest Next.js cookie banners (2026)](https://cookiebench.com/fastest-cookie-banners/nextjs.md)

## 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.

- **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.

## Comparisons

- [OneTrust vs Didomi](https://cookiebench.com/compare/onetrust-vs-didomi.md)
- [CookieYes vs OneTrust](https://cookiebench.com/compare/cookieyes-vs-onetrust.md)
- [Inth vs OneTrust](https://cookiebench.com/compare/inth-vs-onetrust.md)
- [OneTrust vs Usercentrics](https://cookiebench.com/compare/onetrust-vs-usercentrics.md)
- [Osano vs OneTrust](https://cookiebench.com/compare/osano-vs-onetrust.md)
- [Inth vs CookieYes](https://cookiebench.com/compare/inth-vs-cookieyes.md)
- [iubenda vs CookieYes](https://cookiebench.com/compare/iubenda-vs-cookieyes.md)
- [Didomi vs Usercentrics](https://cookiebench.com/compare/didomi-vs-usercentrics.md)
- [Inth vs Usercentrics](https://cookiebench.com/compare/inth-vs-usercentrics.md)
- [Ketch vs OneTrust](https://cookiebench.com/compare/ketch-vs-onetrust.md)

See [all 17 comparisons](https://cookiebench.com/compare.md), including Inth against each CMP.

Feature support for every CMP: [feature matrix](https://cookiebench.com/features.md).

## Questions about these results

### Which cookie consent manager is fastest?

It depends on what you measure. On an emulated mid-tier phone, Inth showed its banner first (median 252 ms). Osano (2.03 s) and CookieYes (2.32 s) came next. The CMP that delayed the page least was CookieYes (180 ms). On desktop, Inth showed its banner first, in 25 ms.

### Do cookie banners hurt Core Web Vitals?

On a phone, yes. Every CMP we measured on the emulated mid-tier phone delayed the main content, by 180 ms to 1.76 s. On desktop, seven of ten caused no visible delay. The largest delay was 16 ms (Inth). 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.

### Why is there no overall score?

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.

### Do consent managers block trackers before consent?

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.

### Why do some consent managers have no results?

 We print “Not measured” and the reason, not a zero.

Methodology [cookiebench-v3.2.4](https://cookiebench.com/methodology). Inth maintains CookieBench, and its own consent manager is one of the consent managers we measure ([disclosure](https://cookiebench.com/methodology)). Feature support comes from vendor documentation unless a row says "Verified by test".
