Your site may be tracking before the click. Four causes, and a two-minute check.
Having a cookie banner and sending nothing before consent are two different things. We looked into what goes wrong when they come apart. Here are the four causes we saw, and the test that lets you check your own site in two minutes.
There is a sentence we hear again and again: "but we have a cookie banner." It is usually true, and it answers the wrong question. A banner is something on the screen. Whether your site sends data before anyone clicked it is decided somewhere else entirely, in the order your scripts load.
How often those two things come apart was measured in 2022 by the chair for privacy and security in information systems at the University of Bamberg, across a hundred randomly drawn German-language sites. Of the 81 that had a cookie banner at all, 64 were already loading third-party trackers before the user had interacted with it. On average three trackers at that point, on one site thirteen.
What we saw ourselves, and what that is worth
In September we opened 40 sites in a freshly created Chrome profile, clicked no banner, and recorded the full network traffic for fifteen seconds. Only a genuine data request to a tracking service counted as a hit, meaning a call to Google Analytics or the Meta pixel. Libraries loaded without transmitting data did not count, and neither did bare connection warm-ups.
A word on how much that carries, before any number appears that cannot support one: these 40 sites are handpicked, not randomly drawn. We included portals, specialist sites, small business sites and our own, because the pattern interested us rather than the rate. A percentage from that sample would be a number with a false claim attached. For a rate, use the Bamberg study, which is drawn and published.
What the observation does carry is the pattern, and it was unambiguous:
- Not one of the 22 large and mid-sized sites in our selection sent full analytics data before the click. What loaded there before any decision were libraries and tag manager containers with no tags fired.
- Every case we found was a small WordPress site.
The reason for that split is unromantic: after the 2020 Planet49 ruling and section 25 of the TTDSG, large publishers spent money, bought a certified consent platform and paid somebody to audit the tag order. That is not moral high ground, that is a budget. Anyone running a site on the side does not have that budget, and nobody audits them.
The four causes
1. A warm-up script that assumes consent
The most galling variant, because it comes from good intentions. Somewhere there is a small script telling Consent Mode: consent granted, as long as no decision has been stored yet. It is meant as a stopgap so measurement does not break during a rebuild. In practice it does the opposite of what was intended: every first-time visitor, precisely the group that has never clicked, gets reported as having consented. A cookieless ping becomes a full hit.
This is the case you never see in the front end and spot immediately in the Network tab.
2. Analytics with no gating at all
The classic left over from the days when analytics counted as harmless: the measurement tag sits in the header, placed by a plugin or by hand, and loads unasked. No banner in front of it, no default consent state, nothing. Such embeds survive relaunches because nobody goes looking. They live in a theme field, a plugin setting or a snippet manager, and from the outside they are invisible.
In what we saw, this is the most common pattern on small sites.
Installing a plugin is rarely where it starts. We installed the WordPress plugins with a million installs or more one by one, 72 measured in the end, configured nothing and opened each site like a logged-out visitor: exactly one loaded anything from another server. The risk arrives with the setup, once a plugin is connected to an account. The 51-second short shows that run, and the full table of all 72 plugins is on our study page.

3. A banner that blocks nothing
Consent plugin installed, banner appears, analytics fires anyway. That is not a fault in the plugin but a misunderstanding of what it does. A notice banner shows a notice. Whether other plugins' scripts wait for it is not its decision, unless you explicitly place them behind it.
This cause is so widespread precisely because it feels right. The owner installed something, sees the result on screen, and considers the matter closed.
4. The grey area Google considers solved
The milder category: cookieless Consent Mode pings before any decision, recognisable by the parameter gcs=G100. In Google's reading that is the clean path, since no cookies are set and no users are recognised. The German data protection conference disagrees, because the ping still transmits an IP address to a recipient.
We do not count such cases as hits, while considering the safe path to be the one where nothing goes out before the click.
The self-test, two minutes
- Open a private window, so no old consent is stored.
- Press F12 and select the Network tab.
- Load your front page. Do not click the banner.
- Type
collectinto the filter box, orgoogle-analytics, orfacebook. - If a request is listed, you have your answer.
For a closer look, click the request and search the address for gcs=:
| Value | Meaning | Verdict |
|---|---|---|
gcs=G111 | sent as consented | full hit |
gcs=G100 | Consent Mode denied, cookieless ping | grey area |
no gcs | no Consent Mode configured | full hit |
One caveat that belongs to honesty: on sites carrying a lot of ad tech, the result varies between runs, because ad auctions start at different speeds. If you get a finding, check it a second time before drawing a conclusion from it.
If you find something
- Find the source before you act. Do not deactivate plugins at random. Look in the page source for the measurement ID (GA4 ones start with G-) and search that string across plugin settings, theme and any snippet manager.
- Look for a warm-up script. Search the source for
consentandgranted. If any line grants consent before somebody clicked, that is your cause. - Put the scripts behind the decision rather than trusting the banner.
- Measure again after the fix, using the same method. A change you do not re-measure is a hope.
- Expect your numbers to drop. If you were counting every first-time visitor and now count only those who consent, you will see a collapse that is not one. The traffic was always like this, the measurement was wrong. What is then missing from the numbers, and how to estimate it anyway, is covered in What Google Analytics does not show.
If you serve ads anyway, our ad plugin Adjet includes consent gating for the common consent tools: ad scripts only run after the click. Which consent tool fits is something we went through in our comparison of cookie consent plugins.
Why these four and not others
This is not a catalogue of every theoretically conceivable failure, it is the four that actually occur in practice.
What they have in common is that none of them is a decision. Nobody resolves to measure without consent. It is a stopgap nobody removed, a plugin somebody assumed was responsible, a setting from a time when different rules applied. Conditions nobody checked, because checking costs two minutes and nobody asks for it.
You have just read the two minutes.
Frequently asked questions
How do I check whether my own site tracks before consent?
Open a private window, press F12 for developer tools, switch to the Network tab and load your front page. Do not click the banner. Then filter for "collect" for Google Analytics 4, or for "google-analytics". If a request appears before you clicked, your site is sending data without consent. It takes two minutes and it is the most reliable check available without any tooling.
What does the gcs parameter in a Google Analytics request mean?
It reports what Consent Mode is currently signalling. gcs=G111 means sent as consented, with everything that entails. gcs=G100 means Consent Mode is set to denied and Google receives a cookieless ping. gcs is missing entirely when no Consent Mode is configured at all. For an audit it is the single most useful value: G111 before any click is a hard problem, and a missing gcs usually is too.
Are cookieless Consent Mode pings allowed?
Google and the German supervisory authorities disagree. Google treats them as the acceptable compromise because no cookies are set. The German data protection conference argues that the ping still transmits an IP address to a recipient in the US and therefore needs consent. If you would rather not have that argument, send nothing at all before the click.
Is a cookie banner plugin enough to stop tracking before consent?
No, and this is the most common misunderstanding. A banner displays a notice, it does not automatically block the scripts loaded by other plugins. We ran into exactly that case: cookie plugin active, banner visible, analytics firing regardless. What matters is not that a banner exists but that tracking scripts only load after the click. You can only verify that in the Network tab, never in the settings screen.
How much legal risk does tracking before consent carry?
The legal position has been clear since the German Federal Court of Justice ruled in the Planet49 case in 2020 and since section 25 of the TTDSG: storing or reading information on a device requires prior consent. In practice, complaints tend to come from supervisory authorities and competitors more often than from law firms. That does not change the underlying position, though: anyone with a browser can measure it, and anything measurable can be evidenced.