Technical audit · 16.06.2026

nwo.nl

Website of the Dutch Research Council

Nwo.nl is the website of the Dutch Research Council, the country's principal science-funding body. Homepage scan: 50 requests, 10 domains. The site has its own consent-collection mechanism installed, and the current generation of Google Analytics is configured correctly — it sends a request with a 'consent not given' signal. But alongside it, a legacy generation of Google Analytics runs, sending a request with the opposite signal — 'analytics granted' — as though consent had already been obtained. In other words, one of the two analytics streams goes out marked 'granted' before the user's choice. Private cookieless analytics and an accessibility text-to-speech tool are not part of this concern.

Request timeline

687 ms · own consent banner
The site's own consent-collection mechanism loads. Anything that fires with a granted status before the choice occurs before consent.
1713 ms · legacy Google Analytics loads
The legacy generation of Google Analytics loads. This version has long been discontinued, but continues running here.
1718 ms · private analytics
Siteimprove private analytics loads, running without cookies. This part is set up in a restrained manner.
2355 ms · current Google Analytics in 'no consent' mode
The current generation of Google Analytics sends a request with a 'consent not given' signal. This is correct behavior.
3404 ms · legacy Google Analytics with a 'granted' signal
The legacy generation of Google Analytics sends a request with an 'analytics granted' signal — as though consent had been obtained. This contradicts both the absence of consent and the current generation's behavior.
consent inconsistent between the two streams
The site's own consent banner is present. Current analytics is declined, but legacy analytics is sent as granted before the user's choice. No cookies were set via headers during the session.

Declared versus actual

✓ Google Analytics — declared
✓ Siteimprove — declared

Detected trackers

Indicators of GDPR non-compliance

Context

www.nwo.nl is the website of the Dutch Research Council (NWO), the country’s principal state science-funding body: grants, programs, research news. The data controller is NWO. The site is informational.

Scan: 50 requests to 10 domains, homepage, captured in a clean Edge browser without a VPN or ad blocker. The site has its own consent-collection mechanism installed. The analytics stack includes two generations of Google Analytics and private analytics.

Who receives the data

Google Analytics was observed here.

Google Analytics is present in two generations. The current one sends a request with a “consent not given” signal, while the legacy one sends a request with an “analytics granted” signal. Additionally, private cookieless analytics and an accessibility text-to-speech tool run. The scan contains no advertising networks and no social media pixels.

Yes, the site has its own consent-collection mechanism installed. And the current generation of Google Analytics is configured correctly — it stays in “consent not given” mode. But the legacy generation is sent with the opposite signal, “analytics granted,” as though consent had already been obtained. In a clean session without any user choice, this inconsistency means one of the analytics streams goes out marked as granted before consent.

Before consent, the following fire:

  • legacy Google Analytics — with an “analytics granted” signal;
  • current Google Analytics — with a “consent not given” signal (correct);
  • Siteimprove private analytics — without cookies.

Private analytics and the “no consent” mode for the current generation are not a concern here. The key issue is the legacy generation of analytics: it is sent as granted before the user’s choice.

Conclusion

Nwo.nl is a moderate case with inconsistent consent configuration. The current generation of Google Analytics stays in “consent not given” mode, private analytics is anonymized and cookieless, and there is no advertising — this works in the site’s favor. But the legacy generation of Google Analytics, long discontinued, is sent with an “analytics granted” signal before the user’s choice. The key takeaway for the reader: when two analytics streams on the same site send opposite consent signals, that is itself a configuration error — the legacy stream should either be removed or brought into the same consent-pending mode as the current one. It would be enough to remove the legacy analytics and keep the correctly configured current one.

Evidence

How to verify: download the file and compute its checksum — sha256sum file.har (Linux, macOS) or certutil -hashfile file.har SHA256 (Windows); it must match the one shown. The conclusions apply to the scope of this measurement — see the limitations of the method.

Original (audit)
HAR file: nl/nwo-nl-2026-06-16.har
SHA-256: 11837b21431c437708037dadd0155feae138f3509e4f35e680aa6310e636e0a1
Re-check snapshot
Awaiting changes
HAR files are stored on EU infrastructure (Proton Drive). SHA-256 is published for integrity verification.