# How fast is your cookie banner on Astro?

Only c15t, Cookie Control, Didomi, Enzuzo, iubenda, Ketch, OneTrust, Osano, Usercentrics and CookieYes ran on Astro. [See every CMP on Next.js](https://cookiebench.com/mobile.md).

Mobile (emulated) profile: 390 × 844, DPR 3 · Mid-tier phone CPU (4× slowdown) · 200 KB/s, 150 ms latency. Tested in a Astro 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 | 2.85 s (Needs improvement) | Baseline | – | – | – |
| [c15t](https://cookiebench.com/benchmarks/c15t/astro.md) | 251 ms | 3.18 s (Needs improvement) | +328 ms | +0 ms | 32 ms (Good) | TCF: Per vendor docs; GPP: Per vendor docs (GPP 1.1); CMv2: Per vendor docs; GPC: Per vendor docs |
| [CookieYes](https://cookiebench.com/benchmarks/cookieyes/astro.md) | 1.07 s | 3.04 s (Needs improvement) | +180 ms | +0 ms | 16 ms (Good) | TCF: Per vendor docs (Pro and Ultimate plans); GPP: Unknown; CMv2: Per vendor docs; GPC: Per vendor docs (Pro and Ultimate plans) |
| [Osano](https://cookiebench.com/benchmarks/osano/astro.md) | 1.79 s | 3.28 s (Needs improvement) | +428 ms | +145 ms | 120 ms (Good) | TCF: Per vendor docs (TCF v2); GPP: Per vendor docs; CMv2: Per vendor docs; GPC: Per vendor docs |
| [Cookie Control](https://cookiebench.com/benchmarks/cookie-control/astro.md) | 1.94 s | 3.35 s (Needs improvement) | +496 ms | +164 ms | 24 ms (Good) | TCF: Per vendor docs (TCF v2.3); GPP: Unknown; CMv2: Per vendor docs; GPC: Per vendor docs |
| [iubenda](https://cookiebench.com/benchmarks/iubenda/astro.md) | 2.31 s | 3.47 s (Needs improvement) | +616 ms | +54 ms | 24 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/astro.md) | 2.31 s | 3.62 s (Needs improvement) | +772 ms | +205 ms | 64 ms (Good) | TCF: Per vendor docs (Growth plan and up); GPP: Unknown; CMv2: Per vendor docs; GPC: Per vendor docs |
| [OneTrust](https://cookiebench.com/benchmarks/onetrust/astro.md) | 3.70 s | 3.72 s (Needs improvement) | +860 ms | +115 ms | 16 ms (Good) | TCF: Per vendor docs (TCF v2.2 and v2.3); GPP: Per vendor docs; CMv2: Per vendor docs; GPC: Per vendor docs |
| [Didomi](https://cookiebench.com/benchmarks/didomi/astro.md) | 3.74 s | 4.13 s (Poor) | +1.28 s | +290 ms | Under 16 ms (Good) | TCF: Per vendor docs (TCF v2.2); GPP: Per vendor docs; CMv2: Per vendor docs; GPC: Per vendor docs |
| [Usercentrics](https://cookiebench.com/benchmarks/usercentrics/astro.md) | 3.75 s | 3.78 s (Needs improvement) | +928 ms | +87 ms | Under 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/astro.md) | 7.67 s | 4.80 s (Poor) | +1.95 s | +989 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/mobile/astro.md).

## Other views

- [Desktop, Next.js](https://cookiebench.com/index.md)
- [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, 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 emulated mobile, c15t showed its banner fastest, in a median 240 ms. Ketch was slowest, at 7.95 s. Every CMP delayed the main content, from 176 ms (CookieYes) to 1.74 s (Ketch). On desktop, the differences are smaller. Banners appeared in 60 ms to 1.68 s. Seven of ten CMPs caused no visible page delay.

## 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)
- [c15t vs OneTrust](https://cookiebench.com/compare/c15t-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)
- [c15t vs CookieYes](https://cookiebench.com/compare/c15t-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)
- [c15t vs Usercentrics](https://cookiebench.com/compare/c15t-vs-usercentrics.md)
- [Ketch vs OneTrust](https://cookiebench.com/compare/ketch-vs-onetrust.md)

See [all 17 comparisons](https://cookiebench.com/compare.md), including c15t 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, 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.

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

### 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, the team behind c15t, maintains CookieBench. c15t 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".
