Skip to main content

Full results on React

Only c15t, Cookie Control, Didomi, Enzuzo, iubenda, Ketch, OneTrust, Osano, Usercentrics and CookieYes ran on React. See every CMP on Next.js

GoodNeeds improvementPoor
Framework
Every CookieBench v3 metric for ten consent managers on React, Mobile profile. One row per metric, one column per consent manager.
MetricCookieYesc15tOsanoCookie ControliubendaEnzuzoUsercentricsDidomiOneTrustKetch
Core Web VitalsLCP, CLS and TBT come from the page load. INP comes from the Accept click. 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 rates CLS good up to 0.1 and poor above 0.25. It does not rate TBT.
LCPLargest Contentful PaintNeeds improvement: 3.47 s+108 ms vs no CMPNeeds improvement: 3.84 s+476 ms vs no CMPNeeds improvement: 3.74 s+384 ms vs no CMPNeeds improvement: 3.65 s+292 ms vs no CMPNeeds improvement: 3.77 s+404 ms vs no CMPNeeds improvement: 3.92 s+568 ms vs no CMPPoor: 4.10 s+736 ms vs no CMPPoor: 4.46 s+1.10 s vs no CMPNeeds improvement: 3.67 s+300 ms vs no CMPPoor: 4.98 s+1.62 s vs no CMP
INPInteraction to Next Paint, for the Accept clickGood: 16 msGood: 40 msGood: 120 msGood: 24 msGood: 16 msGood: 48 msGood: 16 msGood: 16 msGood: 16 msGood: 32 ms
CLSCumulative Layout ShiftGood: 0.00Good: 0.00Good: 0.00Good: 0.00Good: 0.00Good: 0.00Good: 0.00Good: 0.00Good: 0.00Good: 0.00
TBTTotal Blocking Time during load0 ms25 ms+25 ms vs no CMP145 ms+145 ms vs no CMP192 ms+192 ms vs no CMP50 ms+50 ms vs no CMP202 ms+202 ms vs no CMP83 ms+83 ms vs no CMP301 ms+301 ms vs no CMP116 ms+116 ms vs no CMP976 ms+976 ms vs no CMP
Page loadGoogle rates TTFB good up to 0.8 s and FCP good up to 1.8 s. Content paint is the paint time of the article image. We time it even when the banner was the largest element.
TTFBTime to First ByteGood: 4 msGood: 2 msGood: 2 msGood: 2 msGood: 2 msGood: 2 ms+0 ms vs no CMPGood: 2 msGood: 2 msGood: 2 msGood: 2 ms+0 ms vs no CMP
FCPFirst Contentful PaintGood: 776 ms+44 ms vs no CMPGood: 1.16 s+436 ms vs no CMPGood: 908 ms+184 ms vs no CMPGood: 928 ms+204 ms vs no CMPGood: 764 ms+32 ms vs no CMPGood: 888 ms+156 ms vs no CMPGood: 832 ms+100 ms vs no CMPGood: 920 ms+192 ms vs no CMPGood: 800 ms+72 ms vs no CMPGood: 756 ms+28 ms vs no CMP
Content paintThe article image painted3.47 s+108 ms vs no CMP3.84 s+476 ms vs no CMP3.74 s+384 ms vs no CMP3.65 s+292 ms vs no CMP3.77 s+404 ms vs no CMP3.92 s+568 ms vs no CMP4.10 s+736 ms vs no CMP4.46 s+1.10 s vs no CMP4.44 s+1.07 s vs no CMP4.98 s+1.62 s vs no CMP
LCP elementWhat the browser picked as the largest element
CMP requestedFirst request for the CMP’s script or config
CMP loadedThe download of the CMP’s main script is complete
Consent knownThe CMP reports the visitor’s consent state1.42 s
Banner visibleThe banner is on screen1.04 s1.46 s1.75 s1.75 s2.04 s2.06 s3.56 s3.57 s3.66 s7.54 s
Screen coveredShare of the viewport the banner covers
Click responseTime until the screen updates. We rate it like INP: good up to 200 ms, poor above 500 ms. The browser reports these times in 8 ms steps. It does not report clicks under 16 ms.
AcceptAccept all, from the bannerGood: 16 msGood: 40 msGood: 120 msGood: 24 msGood: 16 msGood: 48 msGood: 16 msGood: 16 msGood: 16 msGood: 32 ms
RejectReject all, from the bannerGood: 16 msGood: 32 msGood: 88 msGood: 24 msGood: 24 msGood: 48 msGood: 16 msGood: 16 msGood: 16 msGood: 32 ms
SaveSave, in the preferences dialogGood: 32 msGood: 88 msGood: 40 msGood: 40 msGood: 16 msGood: 104 msGood: 48 msGood: 32 ms
Next clickA click on the page 500 ms after AcceptGood: 16 msGood: 16 msGood: 16 msGood: 16 msGood: 16 msGood: 16 msGood: 16 msGood: 24 msGood: 16 ms
After AcceptMilliseconds from the click. Main thread is the long-task blocking time after it.
Banner goneBanner and any overlay removed
Consent appliedThe CMP’s consent state matches the choice
Scripts ranEvery script that the choice lets run is complete
Main threadLong-task blocking time after the click
After RejectReject lets no scripts run, so there is no script time to report.
Banner goneBanner and any overlay removed
Consent appliedThe CMP’s consent state matches the choice
Main threadLong-task blocking time after the click
After SaveFrom the Save click in the preferences dialog.
Banner goneBanner and any overlay removed
Consent appliedThe CMP’s consent state matches the choice
Scripts ranEvery script that the choice lets run is complete
Main threadLong-task blocking time after the click
Download sizeThe first load. Unpacked is the size after decompression. That is the code that the browser must parse.
TransferredBytes over the network during the first load583 KB+31 KB vs no CMP652 KB+100 KB vs no CMP639 KB+87 KB vs no CMP650 KB+98 KB vs no CMP673 KB+121 KB vs no CMP705 KB+153 KB vs no CMP716 KB+164 KB vs no CMP805 KB+253 KB vs no CMP763 KB+211 KB vs no CMP1.08 MB+532 KB vs no CMP
UnpackedThe same bytes after decompression815 KB+97 KB vs no CMP1.11 MB+394 KB vs no CMP1.07 MB+348 KB vs no CMP1.06 MB+346 KB vs no CMP1.18 MB+458 KB vs no CMP1.31 MB+592 KB vs no CMP1.43 MB+711 KB vs no CMP1.72 MB+1.00 MB vs no CMP1.57 MB+855 KB vs no CMP7.92 MB+7.20 MB vs no CMP
DeferredBytes transferred after the first load settled
RequestsRequests during the first load16+9 vs no CMP17+10 vs no CMP11+4 vs no CMP9+2 vs no CMP11+4 vs no CMP9+2 vs no CMP24+17 vs no CMP13+6 vs no CMP19+12 vs no CMP16+9 vs no CMP
Third-partyRequests to other hosts during the first load914242176129
Returning visitorsA visitor who accepted earlier loads the page again. We expect the banner to stay hidden.
Banner hiddenThe banner stayed hidden on the return visit
Consent knownTime from navigation until the CMP restores the stored choice
Consent checksNo tracker or cookie before the visitor chooses, and the choice holds afterwards. A check we could not run is not a failure.
ChecksLoad, Accept, Reject, Save, withdrawal and keyboard checks3 of 4 passed1 could not run4 of 4 passed2 of 4 passed2 failed3 of 4 passed1 could not run4 of 4 passed4 of 4 passed4 of 4 passed4 of 4 passed4 of 4 passed4 of 4 passed

A value without a “vs no CMP” line had no measurable change from the same page without a consent manager.