Hall of Shame
accept 1 click · reject 4 · pay-or-ok · 0 trackers before consent
accept 1 click · reject – · pay-or-ok · 0 trackers before consent
accept 1 click · reject – · 5 trackers before consent
accept 1 click · reject – · 1 tracker before consent
accept 1 click · reject 1 · 26 trackers before consent
accept 1 click · reject 2 · 4 trackers before consent
accept 1 click · reject 2 · 4 trackers before consent
accept 1 click · reject 1 · 5 trackers before consent
All sites
| Tranco | Site | Grade | Score | Accept | Reject | Reject path | Pre-ticked | Trackers before consent | Verified | Evidence | Badge |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 128 | t-online.de | F | 25 | 1 | 4 | reject each purpose + save (layer 2) · pay-or-ok | 0 | 0 | no | 01 02 03 json | |
| 197 | theguardian.com | F | 30 | 1 | – | none found · pay-or-ok | 0 | 0 | – | 01 json | |
| 189 | mts.ru | D | 45 | 1 | – | none found · LLM located: settings | 0 | 5 | – | 01 02 json | |
| 187 | pki.goog | D | 57 | 1 | – | none found · LLM located: settings | 0 | 1 | – | 01 02 json | |
| 32 | amazon.com | C | 60 | – | – | no consent banner seen | – | 36 | – | 01 json | |
| 121 | samsung.com | C | 60 | 1 | 1 | button on layer 1 | 0 | 26 | yes | 01 03 json | |
| 17 | mail.ru | C | 73 | 1 | 2 | button on layer 2 | 0 | 4 | yes | 01 02 03 json | |
| 168 | ubuntu.com | C | 73 | 1 | 2 | untick boxes + save (layer 2) | 0 | 4 | yes | 01 02 03 json | |
| 92 | msn.com | B | 85 | 1 | 1 | button on layer 1 | 0 | 5 | yes | 01 03 json | |
| 110 | ui.com | B | 85 | 1 | 2 | untick boxes + save (layer 2) | 0 | 0 | yes | 01 02 03 json | |
| 217 | criteo.com | B | 85 | 1 | 1 | button on layer 1 | 0 | 5 | yes | 01 03 json | |
| 76 | opera.com | B | 88 | 1 | 1 | untick boxes + save (layer 1) | 0 | 4 | yes | 01 03 json | |
| 85 | ntp.org | B | 88 | – | – | no consent banner seen | – | 4 | – | 01 json | |
| 116 | ipify.org | B | 88 | – | – | no consent banner seen | – | 4 | – | json | |
| 71 | yahoo.com | A | 91 | 1 | 1 | button on layer 1 | 0 | 3 | yes | 01 03 json | |
| 72 | digicert.com | A | 91 | – | – | no consent banner seen | – | 3 | – | 01 json | |
| 115 | intuit.com | A | 91 | 1 | 1 | button on layer 1 | 0 | 3 | yes | 01 03 json | |
| 155 | reg.ru | A | 91 | – | – | no consent banner seen | – | 3 | – | 01 json | |
| 51 | gandi.net | A | 94 | – | – | no consent banner seen | – | 2 | – | 01 json | |
| 62 | wordpress.org | A | 94 | – | – | no consent banner seen | – | 2 | – | 01 json | |
| 130 | nic.ru | A | 94 | – | – | no consent banner seen | – | 2 | – | 01 json | |
| 159 | duckdns.org | A | 94 | – | – | no consent banner seen | – | 2 | – | 01 json | |
| 185 | creativecommons.org | A | 94 | – | – | no consent banner seen | – | 2 | – | 01 json | |
| 214 | forter.com | A | 94 | 1 | 1 | button on layer 1 | 0 | 2 | yes | 01 03 json | |
| 99 | wordpress.com | A | 95 | 1 | 1 | button on layer 1 | 1 | 0 | yes | 01 03 json | |
| 165 | gravatar.com | A | 95 | 1 | 1 | button on layer 1 | 1 | 0 | yes | 01 03 json | |
| 58 | cloudflare.net | A | 97 | 1 | 1 | button on layer 1 | 0 | 1 | yes | 01 03 json | |
| 77 | spotify.com | A | 97 | 1 | 1 | button on layer 1 | 0 | 1 | yes | 01 03 json | |
| 78 | roblox.com | A | 97 | 1 | 1 | button on layer 1 | 0 | 1 | yes | 01 03 json | |
| 96 | f5.com | A | 97 | – | – | no consent banner seen | – | 1 | – | 01 json | |
| 98 | epicgames.com | A | 97 | – | – | no consent banner seen | – | 1 | – | 01 json | |
| 102 | sentry.io | A | 97 | – | – | no consent banner seen | – | 1 | – | 01 json | |
| 133 | openai.com | A | 97 | 1 | 1 | button on layer 1 | 0 | 1 | yes | 01 03 json | |
| 135 | dropbox.com | A | 97 | 1 | 1 | button on layer 1 | 0 | 1 | yes | 01 03 json | |
| 137 | android.com | A | 97 | – | 1 | button on layer 1 · LLM located: reject, settings | 0 | 1 | yes | 01 03 json | |
| 148 | vk.ru | A | 97 | – | – | no consent banner seen | – | 1 | – | 01 json | |
| 161 | tumblr.com | A | 97 | 1 | 1 | button on layer 1 | 0 | 1 | yes | 01 03 json | |
| 179 | scorecardresearch.com | A | 97 | – | – | no consent banner seen | – | 1 | – | 01 json | |
| 201 | medium.com | A | 97 | – | – | no consent banner seen | – | 1 | – | 01 json | |
| 216 | bbc.com | A | 97 | 1 | 1 | button on layer 1 | 0 | 1 | no | 01 03 json | |
| 1 | google.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 2 | cloudflare.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 10 | microsoft.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 11 | youtube.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 12 | apple.com | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 14 | instagram.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 18 | linkedin.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 26 | triplinkintl.com | A | 100 | 1 | – | none needed: notice says only necessary cookies · LLM located: accept | 0 | 0 | – | 01 json | |
| 34 | github.com | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 37 | wikipedia.org | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 40 | cloud.microsoft | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 44 | netflix.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 45 | bing.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 52 | pinterest.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 54 | icloud.com | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 63 | tiktok.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 65 | myfritz.net | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 82 | baidu.com | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 87 | vimeo.com | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 90 | qq.com | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 91 | nginx.org | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 95 | mozilla.org | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 103 | reddit.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 109 | europa.eu | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 112 | chatgpt.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 124 | skybridge.click | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 144 | apache.org | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 150 | archive.org | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 153 | vk.com | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 156 | snapchat.com | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 170 | telegram.org | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 171 | shopify.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 175 | afternic.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 176 | paypal.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 178 | samsungcloud.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 180 | flickr.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 181 | w3.org | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 184 | discord.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 192 | soundcloud.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 203 | stripe.com | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 209 | doi.org | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 223 | wikimedia.org | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 225 | twitch.tv | A | 100 | 1 | 1 | button on layer 1 | 0 | 0 | yes | 01 03 json | |
| 227 | mit.edu | A | 100 | – | – | no consent banner seen | – | 0 | – | 01 json | |
| 13 | hicloudcam.com | ? | – | – | – | load_error: Page.goto: net::ERR_NAME_NOT_RESOLVED at https://hicloudcam.com/ | – | – | – | 01 json | |
| 47 | x.com | ? | – | – | – | bot wall: http 403 | – | – | – | 01 json | |
| 61 | adobe.com | ? | – | – | – | bot wall: title: Access Denied | – | – | – | 01 json | |
| 122 | okcdn.ru | ? | – | – | – | bot wall: http 403 | – | – | – | 01 json | |
| 126 | office365.com | ? | – | – | – | bot wall: http 403 | – | – | – | 01 json | |
| 142 | nih.gov | ? | – | – | – | bot wall: challenge frame | – | – | – | 01 json | |
| 147 | webex.com | ? | – | – | – | bot wall: title: Access Denied | – | – | – | 01 json | |
| 160 | godaddy.com | ? | – | – | – | bot wall: title: Access Denied | – | – | – | 01 json | |
| 163 | nytimes.com | ? | – | – | – | bot wall: challenge frame | – | – | – | json | |
| 190 | ebay.com | ? | – | – | – | bot wall: http 403 | – | – | – | 01 json | |
| 202 | hichina.com | ? | – | – | – | load_error: Page.goto: net::ERR_NAME_NOT_RESOLVED at https://hichina.com/ | – | – | – | 01 json | |
| 205 | mtgglobals.com | ? | – | – | – | load_error: Page.goto: net::ERR_NAME_NOT_RESOLVED at https://mtgglobals.com/ | – | – | – | 01 json | |
| 212 | oracle.com | ? | – | – | – | bot wall: http 403 | – | – | – | 01 json | |
| 220 | forbes.com | ? | – | – | – | bot wall: challenge frame | – | – | – | 01 json | |
| 224 | sciencedirect.com | ? | – | – | – | bot wall: http 403 | – | – | – | json | |
| 226 | researchgate.net | ? | – | – | – | bot wall: challenge frame | – | – | – | 01 json |
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.