SiteVerdict

Home › Guides › How to check if your cookie banner is compliant: a 10-minute test

How to check if your cookie banner is compliant: a 10-minute test

Updated 3 November 2026 · By the SiteVerdict team · 9 min read

A compliant cookie banner does three things you can test yourself: nothing non-essential loads before the visitor chooses, "Reject" is as easy as "Accept", and after "Reject" no advertising or tracking tags fire. You can check all three in about ten minutes with the free developer tools built into Chrome, Edge or Firefox. These are the same three points the UK Information Commissioner's Office (ICO) tested on the UK's top 1,000 websites.

Not legal advice. This is a technical test of what your website does. It cannot tell you whether your whole setup is lawful. For the rules themselves, see our guide to UK cookie law in 2026 and the ICO guidance.

What "compliant" means in practice

In the UK, PECR regulation 6 requires consent before you store or read information on a visitor's device, unless an exception applies. Since 5 February 2026 there are exceptions for strictly necessary storage, some first-party-style analytics and preference cookies, as long as you tell people and let them object. Advertising, retargeting and audience tags always need consent. In the EU, analytics usually needs consent too.

The ICO's December 2025 update on the top 1,000 UK websites listed what it checked:

The test below covers each point, plus the design checks that make consent valid.

Before you start

The 10-minute test

Step 1: Open DevTools before the page loads (1 minute)

  1. In the private window, press F12 (or Ctrl+Shift+I, or Cmd+Option+I on a Mac) to open DevTools.
  2. Click the Network tab. Tick Preserve log so requests stay listed when pages change.
  3. Now type your website address and press Enter. Do not click the banner.

Step 2: Check cookies before consent (2 minutes)

  1. Click the Application tab (in Firefox, Storage).
  2. Under Storage, expand Cookies and click each domain listed.
  3. Write down every cookie name. Also look in Local storage.

Cookies you would usually expect to see before consent are things like a session ID, a load-balancer cookie, a security token, or the consent tool's own cookie that stores the visitor's choice. Cookies that usually signal a problem if they appear before consent:

Cookie name (examples)Usually set byPurpose
_fbpMeta PixelAdvertising
_gcl_au, _gcl_awGoogle Ads conversion trackingAdvertising
_ga, _ga_<ID>Google Analytics 4Analytics. In the UK this may fall under the statistical exception only if every condition is met; in the EU it usually needs consent
_clck, _clskMicrosoft ClarityAnalytics and session recording
_ttpTikTok PixelAdvertising
IDE, test_cookie (on doubleclick.net)Google advertisingAdvertising

Names change over time and vary by setup, so use this as a guide, not a definitive list. Your consent tool or the provider's documentation will list the exact cookies.

Step 3: Check network requests before consent (2 minutes)

Go back to the Network tab. Type each of these into the filter box in turn and look for matching requests:

Filter textWhat it finds
collectGoogle Analytics 4 hits (to a URL containing /g/collect) and some other analytics tools
googletagmanagerGoogle Tag Manager and the Google tag (gtag.js) loading
doubleclick or googleadsGoogle advertising requests
facebookThe Meta Pixel loading from connect.facebook.net and sending events to facebook.com/tr
clarityMicrosoft Clarity loading from clarity.ms
tiktok, linkedin, pinterest, hotjarOther common pixels and recording tools

A script loading is not always a problem. Some setups load the tag first and hold it in a "denied" state until consent. What matters is whether it sets cookies or sends tracking data. Click a request and look at its URL and payload. Google Analytics hits usually carry a parameter called gcs that shows the consent state the tag believes it has. Google does not document it in detail, but it is widely read as G1 plus two digits for ad storage and analytics storage: G100 means both are denied and G111 means both are granted. If you see G111 before anyone clicked Accept, the tag is wrongly treating consent as given.

Step 4: Look at the banner itself (1 minute)

Step 5: Click "Reject all" and re-check (2 minutes)

  1. In the Network tab, click the clear icon to empty the list. Keep Preserve log on.
  2. Click Reject all on the banner.
  3. Click to another page on your site, then reload it.
  4. Repeat the cookie check (Step 2) and the request check (Step 3).

After Reject, you should see no new advertising cookies and no advertising requests. Cookies set before you clicked do not disappear by themselves. A good consent tool deletes them, or at least stops tags from reading them. If _fbp or _gcl_au is still being set or refreshed, or facebook.com/tr requests are still going out, the rejection is not being respected.

Step 6: Clear everything, click "Accept all" and confirm tags work (1 minute)

Close the private window, open a new one and visit again. This time click Accept all. Your analytics and advertising tags should now load and set cookies. This step matters: a broken setup sometimes blocks tags for everyone, which looks compliant but loses you all your data. Then check that a "Cookie settings" link (often in the footer) lets you change your mind and that withdrawing consent works as well as Reject did.

Step 7: Repeat on a phone-sized screen (1 minute)

In DevTools, click the device toolbar icon (or press Ctrl+Shift+M) and choose a phone size. Banners that look fine on desktop often hide "Reject" below the fold or behind a scroll on mobile.

Consent Mode is Google's way for its tags (Google Analytics, Google Ads, Floodlight) to read the choice your banner records and change how they behave. It does not show a banner or collect consent. Google's documentation says: "You are responsible for obtaining users' consent on your website or app."

Version 2 uses four consent types:

Consent typeWhat it controls
ad_storageStorage, such as cookies, related to advertising
analytics_storageStorage related to analytics, such as visit duration
ad_user_dataWhether user data can be sent to Google for online advertising
ad_personalizationWhether data can be used for personalised advertising, such as remarketing

There are two ways to run it:

If you use advanced mode, you will see Google requests in Step 3 even before consent. Check that they carry a denied consent state and that no Google cookies are set. Whether cookieless pings themselves fall under PECR depends on what is read from the device. The ICO guidance covers technologies beyond cookies, so assess this rather than assume it is fine.

Google's EU user consent policy applies to visitors in the EEA, the UK and Switzerland. It requires you to get legally valid consent for cookies where the law requires it, and for personalised advertising. Microsoft Clarity similarly says it does not place cookies for visitors from the EEA, the UK or Switzerland unless it receives a valid consent signal, and it supports Google's Consent Mode signals as one way to send it.

Common failures and how to fix them

What you seeLikely causeFix
Meta or Google Ads cookies before any clickPixel pasted into the theme header, or added in Tag Manager without a consent triggerRemove the hard-coded copy; fire the tag only on a consent event, or use the consent tool's script blocking
Tags still fire after RejectTwo copies of a tag, one controlled and one not; or a plugin that adds its own trackingSearch your theme, plugins and Tag Manager for duplicates; disable plugin tracking features you do not use
No Reject button on the first layerConsent tool on default or "implied consent" settingsTurn on a first-layer Reject all button with equal styling
Optional categories ticked by defaultTool configurationSet all optional categories to off by default
gcs=G111 before consentConsent Mode default set to granted, or default command firing after the tagsSet defaults to denied and make sure the default runs before any Google tag
Nothing fires even after AcceptConsent update never reaches the tagsCheck the consent tool's Tag Manager integration and the order of scripts
YouTube or map embed sets cookies on loadStandard embed codeLoad embeds after consent, show a click-to-load placeholder, or use a privacy-enhanced embed where offered
Banner covers "Reject" on mobileLayout not tested on small screensTest at phone width; keep both buttons visible without scrolling

How SiteVerdict automates this check

Doing the test above by hand is useful once. Doing it after every plugin update is tedious. SiteVerdict's consent check loads your page the way a new visitor would and records which cookies are set and which tracking requests go out before any choice is made. Where it can find the banner's Reject control, it repeats the check after Reject. It reports tags it recognises firing too early, such as Google Analytics, Google Ads, the Meta Pixel and Microsoft Clarity, and the Consent Mode signals Google tags report.

An automated check is a technical test, not a legal opinion. It cannot see tags that only fire after a login or a specific action, and it cannot judge whether your wording is clear. Use it to catch the mechanical failures, then review the rest yourself.

Frequently asked questions

How can I tell if cookies are set before I accept the banner?

Open your site in a private window, open DevTools (F12), go to Application then Cookies, and look before you click anything. Any advertising cookie such as _fbp, _gcl_au or similar that appears before you choose means tags are firing before consent.

Which network requests show Google Analytics or Meta is firing?

In the DevTools Network tab, filter for collect (Google Analytics 4 hits go to a URL containing /g/collect), facebook (the Meta Pixel loads connect.facebook.net and sends to facebook.com/tr) and clarity (Microsoft Clarity loads from clarity.ms). Requests that carry tracking before consent or after Reject are a warning sign.

Is Google Consent Mode v2 enough to be compliant?

No. Consent Mode passes the visitor's choice to Google tags; it does not ask for consent. You still need a banner or consent tool that records a valid choice, and in advanced mode Google tags still send cookieless pings before consent, which you should assess against PECR or the ePrivacy rules that apply to you.

Does the Reject button have to be on the first screen?

The ICO tests whether rejecting is as easy as accepting. In practice that means a Reject all option on the first layer with the same prominence as Accept all. Making people open settings and untick boxes to refuse is a common failure.

Are pre-ticked boxes allowed in a cookie banner?

No. Consent must be a clear positive action under UK and EU GDPR, and the EU Court of Justice ruled in Planet49 (C-673/17) that a pre-ticked box is not valid consent. Optional categories should start switched off.

How often should I re-test my cookie banner?

After every change to tags, plugins, themes or your consent tool, and at least every few months. A new marketing tag added outside the consent tool is the most common way a working setup breaks.

Is this test legal advice?

No. It is a technical check of what your site does. It can show whether tags fire before consent or after Reject, but whether your setup is lawful depends on the full facts. See the ICO guidance and take advice if needed.

Sources

SiteVerdict results and these guides are general technical information, not legal advice.

UK cookie law for small businesses in 2026: PECR, the Data (Use and Access) Act and fines

What PECR requires for cookies in 2026, the new analytics exception in the Data (Use and Access) Act, the £17.5m fine cap and a practical checklist.

Website accessibility law for small businesses: UK Equality Act, European Accessibility Act and the US ADA

Who must make their website accessible under the UK Equality Act, the European Accessibility Act and the US ADA, what WCAG 2.2 AA means, and the top fixes.

Why is my website slow on mobile? Causes and fixes for small businesses

21% of UK small-business sites we checked are slow on mobile. Core Web Vitals thresholds, the usual causes, step-by-step fixes and how to test.

'Not secure' warning on your website: what it means and how to fix it

Why browsers say 'Not secure', how to get a free SSL certificate, and how to force HTTPS on WordPress, Wix, Squarespace, Cloudflare and cPanel hosting.

Is your website ready for AI search? robots.txt AI crawlers, llms.txt and structured data

Which AI crawlers to allow in robots.txt (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot), what llms.txt really is, and structured data that helps.