Policy changed — see what exactly · 2026-08-12 →
Belgium's national research and education network (Belnet) — 17 requests, 4 domains. Matomo analytics is self-hosted on the proprietary network — correctly done. But before consent, and with no consent manager present, JS libraries load from unpkg and a Google font file loads from gstatic, transmitting the visitor's IP address to the unpkg CDN and to Google (USA). Neither service is named in the policy.
Timeline of the leak
Declared versus actual
Transfer timings
Matomo on Belnet's own network. idsite=18.
Masonry/imagesLoaded JS libraries. unpkg CDN (Cloudflare), USA.
Roboto font file. Google, USA.
Detected trackers
- Matomo (analytics.belnet.be) — self-hosted
- Google Fonts (fonts.gstatic.com)
- unpkg (unpkg.com) — JS library CDN
Indicators of GDPR non-compliance
- GDPR Art. 13(1)(e) + Chapter V — disclosure of recipients and transferTwo external resources from the USA load before consent: the Masonry and imagesLoaded JS libraries from unpkg.com (+206 ms, Cloudflare infrastructure), and a Roboto font file from fonts.gstatic.com (+383 ms, Google). Both requests transmit the visitor's IP address outside the proprietary infrastructure — to Google (USA) and to the unpkg CDN (USA). Neither service is named in the policy; the supplied policy contains no dedicated cookie section.
- ePrivacy (Belgian implementation) — third-party resources before consentThere is no consent manager on the site. The self-hosted Matomo analytics tool (analytics.belnet.be, Belnet's own network) fires at +149 ms, while the external Google font and unpkg libraries fire at +206–383 ms, all before any choice. Zero Set-Cookie headers for the entire session.
Context
belnet.be is the website of Belnet, Belgium’s national research and education network (a state service providing internet infrastructure for universities, research centers, and government bodies; many Belgian government sites are, in fact, hosted on Belnet’s network). Controller: Belnet. The personal data processing policy (roughly 7,100 characters) contains no dedicated cookie section. Measurement: 17 requests, 4 domains, captured on a clean browser.
Who receives data directly (before consent)
Google (USA) — IP address via a Google font file; unpkg / Cloudflare (USA) — IP address via JS libraries.
Declared versus actual
Belnet implements the audience measurement portion correctly: the Matomo tool is self-hosted on its own subdomain, analytics.belnet.be, within its own network (IP address within Belnet’s address space), with no calls to external analytics services. This is an exemplary analytics deployment.
However, two external resources transmit data outside the proprietary infrastructure and before consent. At +206 ms, the Masonry and imagesLoaded JS libraries load from unpkg.com — an npm-package CDN on Cloudflare infrastructure (USA). At +383 ms, a Roboto font file loads from fonts.gstatic.com — a Google server (USA). Both requests disclose the visitor’s IP address to the respective recipient. There is no consent manager on the site, not a single cookie is set for the entire session, and no user choice is made — all requests occur before consent. Neither Google, unpkg, nor Matomo is named in the policy, and it contains no dedicated cookie section.
Timing relative to consent
Matomo (self-hosted) fires at +149 ms, the unpkg libraries at +206 ms, the Google font at +383 ms. There is no consent mechanism; the transfer of IP addresses to external recipients in the USA occurs unconditionally, before and outside of any user choice.
What cannot be claimed from the measurement
The measurement covers the homepage. Google and Cloudflare (unpkg) may use edge nodes within the EU, so the conclusion is drawn based on the recipients’ affiliation (US companies), not the physical location of the nodes. Self-hosted Matomo, if configured appropriately, may qualify for a consent exemption; the subject of observation here is the external calls to Google and unpkg. Server-side processing is not visible in a browser-based measurement.
Conclusion
Belnet correctly hosts its Matomo analytics on proprietary infrastructure, but before consent, and with no consent manager present, loads JS libraries from unpkg (USA) and a font file from Google’s servers (USA), disclosing the visitor’s IP address to both. Neither service is named in the policy, which contains no dedicated cookie section. Transmitting IP addresses to external recipients in the USA before consent constitutes a violation of the requirements for disclosure of recipients and cross-border transfer. The remedy is minimal and does not affect the already-correct analytics setup: host the font files and JS libraries locally on the proprietary domain — the only remaining requests would then be for proprietary content and self-hosted Matomo.
52d877178584e125d9e81d70c1ea06ba7519e5c3d70f355eb63abb66fc719725Where to file: Autorité de protection des données (APD) — file a complaint online →
To: Autorité de protection des données (APD) 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 belnet.be. 2. Circumstances I visited the website belnet.be and found indications that the processing of my personal data does not comply with the GDPR. The technical analysis published on gdpru.eu on 26 May 2026 (open methodology, reproducible measurements) documents the following indications: 1) Two external resources from the USA load before consent: the Masonry and imagesLoaded JS libraries from unpkg.com (+206 ms, Cloudflare infrastructure), and a Roboto font file from fonts.gstatic.com (+383 ms, Google). Both requests transmit the visitor's IP address outside the proprietary infrastructure — to Google (USA) and to the unpkg CDN (USA). Neither service is named in the policy; the supplied policy contains no dedicated cookie section. 2) There is no consent manager on the site. The self-hosted Matomo analytics tool (analytics.belnet.be, Belnet's own network) fires at +149 ms, while the external Google font and unpkg libraries fire at +206–383 ms, all before any choice. Zero Set-Cookie headers for the entire session. Full technical documentation is published at: https://gdpru.eu/en/audits/be-belnet-be/ 3. Provisions violated GDPR Art. 13(1)(e) + Chapter V — disclosure of recipients and transfer; ePrivacy (Belgian implementation) — third-party resources before consent 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]