How many clicks does it take to say no?

The RejectAll Index measures cookie banners on 100 of the most visited websites: clicks to reject vs. accept, pre-ticked boxes, and trackers fired before you choose anything. Run of 2026-10-30.

Vantage point: One residential connection in Germany (the maintainer's machine); country DE, browser locale de-DE, timezone Europe/Berlin. Banners differ by country: these results describe what a visitor from Germany sees, nothing else.

48/100sites with a banner measured
36no consent banner seen
16unmeasurable (bot wall / load error)
39offer reject on the first layer
4make reject take more clicks than accept
3no reject path found within two layers
2pay-or-ok walls
35fired third-party trackers before any choice

Hall of Shame

t-online.de F · 25

accept 1 click · reject 4 · pay-or-ok · 0 trackers before consent

theguardian.com F · 30

accept 1 click · reject – · pay-or-ok · 0 trackers before consent

mts.ru D · 45

accept 1 click · reject – · 5 trackers before consent

pki.goog D · 57

accept 1 click · reject – · 1 tracker before consent

samsung.com C · 60

accept 1 click · reject 1 · 26 trackers before consent

mail.ru C · 73

accept 1 click · reject 2 · 4 trackers before consent

ubuntu.com C · 73

accept 1 click · reject 2 · 4 trackers before consent

msn.com B · 85

accept 1 click · reject 1 · 5 trackers before consent

All sites

TrancoSiteGradeScoreAcceptRejectReject pathPre-tickedTrackers before consentVerifiedEvidenceBadge
128t-online.deF2514reject each purpose + save (layer 2) · pay-or-ok00no01 02 03 jsonreject: pay or ok
197theguardian.comF301–none found · pay-or-ok00–01 jsonreject: pay or ok
189mts.ruD451–none found · LLM located: settings05–01 02 jsonreject: no option
187pki.googD571–none found · LLM located: settings01–01 02 jsonreject: no option
32amazon.comC60––no consent banner seen–36–01 jsonreject: no banner
121samsung.comC6011button on layer 1026yes01 03 jsonreject: 1 click
17mail.ruC7312button on layer 204yes01 02 03 jsonreject: 2 clicks
168ubuntu.comC7312untick boxes + save (layer 2)04yes01 02 03 jsonreject: 2 clicks
92msn.comB8511button on layer 105yes01 03 jsonreject: 1 click
110ui.comB8512untick boxes + save (layer 2)00yes01 02 03 jsonreject: 2 clicks
217criteo.comB8511button on layer 105yes01 03 jsonreject: 1 click
76opera.comB8811untick boxes + save (layer 1)04yes01 03 jsonreject: 1 click
85ntp.orgB88––no consent banner seen–4–01 jsonreject: no banner
116ipify.orgB88––no consent banner seen–4– jsonreject: no banner
71yahoo.comA9111button on layer 103yes01 03 jsonreject: 1 click
72digicert.comA91––no consent banner seen–3–01 jsonreject: no banner
115intuit.comA9111button on layer 103yes01 03 jsonreject: 1 click
155reg.ruA91––no consent banner seen–3–01 jsonreject: no banner
51gandi.netA94––no consent banner seen–2–01 jsonreject: no banner
62wordpress.orgA94––no consent banner seen–2–01 jsonreject: no banner
130nic.ruA94––no consent banner seen–2–01 jsonreject: no banner
159duckdns.orgA94––no consent banner seen–2–01 jsonreject: no banner
185creativecommons.orgA94––no consent banner seen–2–01 jsonreject: no banner
214forter.comA9411button on layer 102yes01 03 jsonreject: 1 click
99wordpress.comA9511button on layer 110yes01 03 jsonreject: 1 click
165gravatar.comA9511button on layer 110yes01 03 jsonreject: 1 click
58cloudflare.netA9711button on layer 101yes01 03 jsonreject: 1 click
77spotify.comA9711button on layer 101yes01 03 jsonreject: 1 click
78roblox.comA9711button on layer 101yes01 03 jsonreject: 1 click
96f5.comA97––no consent banner seen–1–01 jsonreject: no banner
98epicgames.comA97––no consent banner seen–1–01 jsonreject: no banner
102sentry.ioA97––no consent banner seen–1–01 jsonreject: no banner
133openai.comA9711button on layer 101yes01 03 jsonreject: 1 click
135dropbox.comA9711button on layer 101yes01 03 jsonreject: 1 click
137android.comA97–1button on layer 1 · LLM located: reject, settings01yes01 03 jsonreject: 1 click
148vk.ruA97––no consent banner seen–1–01 jsonreject: no banner
161tumblr.comA9711button on layer 101yes01 03 jsonreject: 1 click
179scorecardresearch.comA97––no consent banner seen–1–01 jsonreject: no banner
201medium.comA97––no consent banner seen–1–01 jsonreject: no banner
216bbc.comA9711button on layer 101no01 03 jsonreject: 1 click
1google.comA10011button on layer 100yes01 03 jsonreject: 1 click
2cloudflare.comA10011button on layer 100yes01 03 jsonreject: 1 click
10microsoft.comA10011button on layer 100yes01 03 jsonreject: 1 click
11youtube.comA10011button on layer 100yes01 03 jsonreject: 1 click
12apple.comA100––no consent banner seen–0–01 jsonreject: no banner
14instagram.comA10011button on layer 100yes01 03 jsonreject: 1 click
18linkedin.comA10011button on layer 100yes01 03 jsonreject: 1 click
26triplinkintl.comA1001–none needed: notice says only necessary cookies · LLM located: accept00–01 jsonreject: not needed
34github.comA100––no consent banner seen–0–01 jsonreject: no banner
37wikipedia.orgA100––no consent banner seen–0–01 jsonreject: no banner
40cloud.microsoftA10011button on layer 100yes01 03 jsonreject: 1 click
44netflix.comA10011button on layer 100yes01 03 jsonreject: 1 click
45bing.comA10011button on layer 100yes01 03 jsonreject: 1 click
52pinterest.comA10011button on layer 100yes01 03 jsonreject: 1 click
54icloud.comA100––no consent banner seen–0–01 jsonreject: no banner
63tiktok.comA10011button on layer 100yes01 03 jsonreject: 1 click
65myfritz.netA100––no consent banner seen–0–01 jsonreject: no banner
82baidu.comA100––no consent banner seen–0–01 jsonreject: no banner
87vimeo.comA100––no consent banner seen–0–01 jsonreject: no banner
90qq.comA100––no consent banner seen–0–01 jsonreject: no banner
91nginx.orgA100––no consent banner seen–0–01 jsonreject: no banner
95mozilla.orgA100––no consent banner seen–0–01 jsonreject: no banner
103reddit.comA10011button on layer 100yes01 03 jsonreject: 1 click
109europa.euA10011button on layer 100yes01 03 jsonreject: 1 click
112chatgpt.comA10011button on layer 100yes01 03 jsonreject: 1 click
124skybridge.clickA100––no consent banner seen–0–01 jsonreject: no banner
144apache.orgA100––no consent banner seen–0–01 jsonreject: no banner
150archive.orgA100––no consent banner seen–0–01 jsonreject: no banner
153vk.comA100––no consent banner seen–0–01 jsonreject: no banner
156snapchat.comA100––no consent banner seen–0–01 jsonreject: no banner
170telegram.orgA100––no consent banner seen–0–01 jsonreject: no banner
171shopify.comA10011button on layer 100yes01 03 jsonreject: 1 click
175afternic.comA10011button on layer 100yes01 03 jsonreject: 1 click
176paypal.comA10011button on layer 100yes01 03 jsonreject: 1 click
178samsungcloud.comA10011button on layer 100yes01 03 jsonreject: 1 click
180flickr.comA10011button on layer 100yes01 03 jsonreject: 1 click
181w3.orgA100––no consent banner seen–0–01 jsonreject: no banner
184discord.comA10011button on layer 100yes01 03 jsonreject: 1 click
192soundcloud.comA10011button on layer 100yes01 03 jsonreject: 1 click
203stripe.comA10011button on layer 100yes01 03 jsonreject: 1 click
209doi.orgA100––no consent banner seen–0–01 jsonreject: no banner
223wikimedia.orgA100––no consent banner seen–0–01 jsonreject: no banner
225twitch.tvA10011button on layer 100yes01 03 jsonreject: 1 click
227mit.eduA100––no consent banner seen–0–01 jsonreject: no banner
13hicloudcam.com?–––load_error: Page.goto: net::ERR_NAME_NOT_RESOLVED at https://hicloudcam.com/–––01 jsonreject: unmeasurable
47x.com?–––bot wall: http 403–––01 jsonreject: unmeasurable
61adobe.com?–––bot wall: title: Access Denied–––01 jsonreject: unmeasurable
122okcdn.ru?–––bot wall: http 403–––01 jsonreject: unmeasurable
126office365.com?–––bot wall: http 403–––01 jsonreject: unmeasurable
142nih.gov?–––bot wall: challenge frame–––01 jsonreject: unmeasurable
147webex.com?–––bot wall: title: Access Denied–––01 jsonreject: unmeasurable
160godaddy.com?–––bot wall: title: Access Denied–––01 jsonreject: unmeasurable
163nytimes.com?–––bot wall: challenge frame––– jsonreject: unmeasurable
190ebay.com?–––bot wall: http 403–––01 jsonreject: unmeasurable
202hichina.com?–––load_error: Page.goto: net::ERR_NAME_NOT_RESOLVED at https://hichina.com/–––01 jsonreject: unmeasurable
205mtgglobals.com?–––load_error: Page.goto: net::ERR_NAME_NOT_RESOLVED at https://mtgglobals.com/–––01 jsonreject: unmeasurable
212oracle.com?–––bot wall: http 403–––01 jsonreject: unmeasurable
220forbes.com?–––bot wall: challenge frame–––01 jsonreject: unmeasurable
224sciencedirect.com?–––bot wall: http 403––– jsonreject: unmeasurable
226researchgate.net?–––bot wall: challenge frame–––01 jsonreject: unmeasurable

How this is measured

One fresh headless Chromium chromium 151.0.7922.34 profile per site, no stored cookies, one page load, a 3s pause between sites. Buttons are found and classified by fixed text rules. When the rules find no accept or reject button, a local LLM (gemma-4-12b) is asked only which button is which; it never decides a score. It was consulted on 10 sites (12 calls) and its answer decided a button on 4; rows say so, and every call is logged in that site's evidence.json. Bot walls and CAPTCHAs are never solved or bypassed: those sites are listed as unmeasurable. Trackers are third-party requests (by registrable domain and Disconnect entity) to domains in the Disconnect tracking-protection list (Advertising, Analytics, Social, Fingerprinting, Cryptomining) seen before the first click.

Score v1 starts at 100: −15 per extra click reject needs over accept (max −45), −40 if no reject path is found within two layers, −30 for a pay-or-ok wall, −5 per pre-ticked toggle (max −20), −3 per tracker domain fired before consent (max −40). Grades: A ≥ 90, B ≥ 75, C ≥ 60, D ≥ 40, F below. "Verified" means the banner was gone after the reject path and no consent buttons remained.

Limitations: only the largest banner is measured; settings are followed two layers deep; pre-ticked legitimate-interest toggles on tabs that were never opened are not counted; a single run from a single connection.