Technical audit · 2026-04-11

riigikogu.ee

Estonia's Supreme Legislative Body

The website of the body that passes laws — including personal data protection laws. Google Tag Manager fires at +2.7 seconds, while the consent banner only loads at +173 seconds. A 170.5-second gap: throughout that time, Google is already receiving visit data, while the user hasn't even seen the banner yet.

Timeline of the leak

+2.6–2.7 sec · before the banner
Google reCAPTCHA (+2.6 sec, 42 requests to gstatic.com and 26 to google.com) and GTM (GTM-5BFRTZC, +2.7 sec) fire. Data goes to the USA. There is no banner yet.
+173 sec · consent banner
The GDPR plugin loads almost 3 minutes in. There is a 'Reject all' button (better than many sites), but the 'Functional' category is enabled by default — a pre-checked toggle is invalid.
+173.3 sec · after the banner
Cloudflare Insights (6 requests) and AddToAny (2 requests) transmit data to the USA. Google Fonts — 46 requests, each transmitting the IP address to Google. None are declared.

Declared versus actual

Cloudflare (_cf_bm, _cfuvid) — заявлен
Google Analytics (_ga, _gid, _gat) — заявлен
PHPSESSID — заявлен
+ Google Tag Manager (GTM-5BFRTZC) — не заявлен
+ Google reCAPTCHA — 68 requests per session — не заявлен
+ Cloudflare Insights, AddToAny, Google Fonts (46 requests) — не заявлен
+ Actual Google cookies — _Secure-1PSID, SAPISID, NID (745 bytes), HSID, and others — не заявлен

Transfer timings

+2.6 sec www.gstatic.com / www.google.com

Google reCAPTCHA — 42 + 26 requests per session

+2.7 sec www.googletagmanager.com

GTM-5BFRTZC — 170 sec before the banner. Data to the USA

+173.2 sec GDPR plugin (banner)

The banner appears after 173 seconds. Gap with GTM — 170.5 sec

+173.3 sec static.cloudflareinsights.com

Cloudflare Insights, 6 requests. Absent from the policy

+173.3 sec AddToAny

'Share' buttons, 2 requests to the USA. Absent from the policy

Detected trackers

Indicators of GDPR non-compliance

Context

riigikogu.ee is the official website of Estonia’s supreme legislative body. HAR: 587 requests per session, 7 unique external domains, 129 third-party requests. This is the website of the body that passes laws — including personal data protection laws.

The site has “Accept,” “Reject all,” and “Save” buttons — a reject option exists, which is better than mil.ee. But the “Functional cookies” category is enabled by default: the toggle is green with no user action whatsoever. Under Art. 7(2) and Art. 4(11), consent must be an active action, and pre-checked toggles are invalid — directly confirmed by the CJEU’s Planet49 ruling (2019). Additionally, the “Performance” category (which includes Google Analytics) is described as “not storing personal data,” which is legally incorrect: GA transmits the IP address and assigns a unique identifier, both of which are personal data.

A 170-second gap

Google Tag Manager (GTM-5BFRTZC) fires 2.7 seconds after load, reCAPTCHA at +2.6 seconds (42 requests to gstatic.com, 26 to google.com). Meanwhile, the consent banner (the GDPR plugin) only loads at +173 seconds — nearly three minutes in. GTM and reCAPTCHA beat the banner’s appearance by 170.5 seconds. While the user is reading the page, having not yet seen any banner, Google has already received data about their visit. After interacting with the banner, Cloudflare Insights, AddToAny, and Google Fonts (46 requests, each transmitting the IP address to Google) are added — not one of them declared.

Declaration versus fact

The cookie policy declares Cloudflare (_cf_bm, _cfuvid), Google Analytics (_ga, _gid, _gat), and PHPSESSID. Absent: Google Tag Manager, reCAPTCHA, Cloudflare Insights, AddToAny, Google Fonts, and the actual full list of Google cookies (_Secure-1PSID, _Secure-3PSID, SAPISID, NID — 745 bytes, HSID, APISID, SID, SSID, SIDCC) — not one is listed. Under Art. 13(1)(e), the data subject is entitled to know all recipients of their data.

The eID context

Estonian electronic identification is integrated into the Parliament’s website — citizens can authenticate via ID card or Mobile-ID. In the same session where a citizen logs in under their real name, undeclared Google trackers are running, and GTM fires 170 seconds before the consent banner. This requires separate legal justification under GDPR Art. 9.

Conclusion

Estonia teaches the whole world about digital government — other countries come to study its experience, journalists write articles, conferences and awards follow. And on the website of this country’s Parliament, Google receives visitor data 170 seconds before visitors even see the consent banner. GTM at +2.7 sec, the GDPR plugin at +173.2 sec — a 170.5-second gap; it’s simple arithmetic, and that’s the power of a HAR file. A country that exports the model of digital government should be able to configure a consent banner on the website of its own Parliament.

Evidence
Original (audit)
HAR file: ee/riigikogu-ee-2026-04-11.har
SHA-256: 923598723b82f8ca61bff3d879be5f00098f86783e76ad91e1a30f084c0c3eff
Re-check snapshot
Awaiting changes
HAR files are stored on EU infrastructure (Proton Drive). SHA-256 is published for integrity verification.
IMPORTANT: before filing a complaint with the regulator, first contact the company directly and give it 30 days to respond. Without this step the regulator may reject the complaint. Details and a template letter to the company are in the Methodology.
Ready-to-send complaint letter

Where to file: Estonian Data Protection Inspectorate (AKI) — write to info@aki.ee

Important: AKI only handles submissions in Estonian. Translate the letter before sending.

To: Estonian Data Protection Inspectorate (AKI)
From: [Your name], [contact email]

1. Subject of the complaint
I am filing a complaint regarding the processing of my personal data by the website riigikogu.ee.

2. Circumstances
I visited the website riigikogu.ee and found indications that the processing of my personal data does not comply with the GDPR. The technical analysis published on gdpru.eu on 11 April 2026 (open methodology, reproducible measurements) documents the following indications:

1) The 'Functional cookies' category is enabled by default — the toggle is green with no user action. Pre-checked consent is invalid (CJEU ruling in Planet49, 2019).

2) Google Tag Manager (GTM-5BFRTZC, +2.7 sec) and reCAPTCHA (+2.6 sec) fire 170 seconds before the consent banner loads.

3) A false claim of anonymity: the 'Performance' category (which includes Google Analytics) is described as 'not storing personal data.' GA transmits the IP address and assigns a unique identifier — both of which are personal data.

4) GTM, reCAPTCHA, Cloudflare Insights, AddToAny, Google Fonts, and the actual Google cookies (_Secure-1PSID, _Secure-3PSID, SAPISID, NID, HSID, APISID, SID, SSID, SIDCC) are not declared.

5) No transfer mechanism to Google or Cloudflare (USA) is stated for either recipient.

6) Web eID (ID card, Mobile-ID) is integrated into the site. In the same session where a citizen logs in under their real name, undeclared Google trackers are running. This requires separate legal justification.

Full technical documentation is published at: https://gdpru.eu/en/audits/ee-riigikogu-ee/

3. Provisions violated
GDPR Art. 7(2), Art. 4(11); GDPR Art. 6(1), Art. 5(1)(a); GDPR Art. 5(1)(a); GDPR Art. 13(1)(e); GDPR Art. 13(1)(f), Chapter V; GDPR Art. 9 (potentially)

4. Request
I request that you investigate the violations described and apply the measures provided for in Article 58(2) GDPR.

5. Attachments
The full evidence base — the HAR file, its SHA-256 checksum and the quotation from the site's privacy policy documenting the stated contradiction — is published and verifiable at the link in point 2 above.

[Date]                                    [Signature / name]