M MurmTools

the consent gap index · august 2026 · 1,007 sites

Almost every consent banner is answered too late.

We loaded the 1,000 most-visited websites once each, in a clean browser, and counted how many separate companies each page contacted before a consent banner could realistically have been read and answered. Not what they collected — nobody outside those companies can see that. Just who was contacted, and when.

96% of sites with a consent banner fired before it 365 of the 382 sites where we detected a consent tool had already contacted a third party inside the window.
5 companies, median, before you could answer On sites that have a banner and fire anyway. The worst reached 34.
679 ms to first contact, median The fastest was 82ms. No banner has been read in 82 milliseconds.
What any of them collected A request is not proof of collection, and nobody outside those companies can see what was sent. We measured contact, so we report contact.

the finding

Having a banner barely changes what happens before you answer it.

Of 1,007 sites measured, 83% contacted at least one outside company inside the two-second window. That much is unsurprising. The surprise is that installing a consent tool made almost no difference to it: of the 382 sites where we detected one, 365 had already contacted a third party.

The fifteen widest gaps

Ranked by companies contacted before the banner could be answered.

SiteBefore consentTotalFirst contactConsent tool
techcrunch.com 34 34 82ms IAB TCF consent tool
elmundo.es 34 38 683ms IAB TCF consent tool
apnews.com 24 30 340ms IAB TCF consent tool
rocketmoney.dev 24 26 990ms no consent tool
datadoghq.com 22 24 535ms no consent tool
businessinsider.com 22 22 224ms IAB TCF consent tool
time.com 22 26 157ms IAB TCF consent tool
haberler.com 22 22 312ms IAB TCF consent tool
theverge.com 21 21 271ms OneTrust
indiatimes.com 20 30 969ms no consent tool
redfin.com 20 21 467ms OneTrust
pikabu.ru 20 24 715ms no consent tool
lanacion.com.ar 20 20 396ms IAB TCF consent tool
ynet.co.il 20 27 506ms IAB TCF consent tool
nikkansports.com 20 23 291ms no consent tool

Being on this table is not an accusation. Read what could make this fine before drawing a conclusion.

by consent platform

No consent platform stopped it on more than 6% of its own sites.

Grouped by the consent tool we detected. The question each row answers is: of the sites running this platform, how many had already contacted an outside company before that platform’s banner could have been answered? Denominators are shown because several are small — a 100% on eleven sites is not the same claim as 94% on a hundred and seventy-seven.

Consent platform Fired before its own banner Share Median companies
OneTrust 167 of 177 94% 5
IAB TCF consent tool 149 of 155 96% 6
Usercentrics (small sample) 15 of 16 94% 4
Cookiebot (small sample) 13 of 13 100% 6
Osano (small sample) 11 of 11 100% 6
CookieYes (small sample) 7 of 7 100% 4
Iubenda (small sample) 3 of 3 100% 8

This is not a claim that these platforms are broken. A consent tool governs what fires after a choice; it cannot retroactively govern what the page already loaded before it appeared. That is exactly the gap, and it is the site’s to close, not the vendor’s.

before you draw a conclusion

Four things that can make early contact perfectly correct.

It may be the site’s own infrastructure A CDN, an image host or an error reporter is a third party by domain and not by intent. Removing it would break the page.
A request is not a collection We record that a connection was made. What crossed it, if anything, is not visible from outside — and your browser or another extension may have blocked it.
The banner may load after our window We stop counting at two seconds. A consent tool that appears at 2.5s is recorded as absent, which understates how many sites have one.
We measured from one country Consent behaviour is geographic. This ran from the Netherlands; a site may behave differently for a visitor elsewhere, in either direction.

We are not saying any of this is unlawful, and the word does not appear anywhere in the data. You get the timestamps. The conclusion is yours.

method

How this was measured, and what was thrown away.

Sites came from the Tranco top-1M, visited in rank order until 1,000 measurements succeeded. 1492 were attempted and 485 were excluded — mostly infrastructure domains that serve no homepage (gtld-servers.net, gstatic.com), plus timeouts, certificate errors and non-HTML responses. Every exclusion and its reason is in the raw data.

Each site got one cold load in headless Chrome with an empty cookie jar, so no consent choice was ever remembered: this is the first visit, every time. No banner was clicked. Measurement is MurmStack’s own collector — the same code the extension runs — so if the index and the extension ever disagreed, the extension would be wrong.

Domains are merged to their parent company, and the site’s own sibling domains are excluded, so a publisher serving assets from a second domain it owns is not counted as contacting an outside company. Two figures are deliberately absent: bytes transferred, because browsers hide transfer size for most cross-origin requests, and per-company blocking time, because the browser exposes only a page-wide figure that cannot honestly be divided up.

Measured 5 August 2026 · Download the raw data (JSON, 1,007 sites) · CC BY 4.0, so quote it freely with a link.

Check any page yourself MurmStack is the tool that produced this. Free, two permissions, no host access.
Add to Chrome — free