Audit overview
All categories sit comfortably above the 70 threshold; this is a clean audit.
Fix Priority Matrix
5 findingsQuick Wins
2High impact, low effort — start here.
Strategic
3High impact, requires investment.
Easy Improvements
0Small gains, minimal effort.
Nothing in this quadrant — good news.
Deprioritize
0Low impact, high effort — do last.
Nothing in this quadrant — good news.
Screenshots
Your mail setup has problems.
haarlemmermeergemeente.nl fails 1 mail check: Subdomain policy (sp=none) is weaker than domain policy (p=reject). This is the kind of misconfiguration that sends your mail to spam.
Top Priorities (5)
Content-Security-Policy header is missing
Without a CSP, a single XSS bug can exfiltrate everything your users type — including credentials.
HSTS header is missing
Without HSTS, a network attacker can downgrade the very first connection to HTTP and steal the user's session.
3 render-blocking <script src> tag(s) without async/defer
Performance issues directly impact user engagement and conversion rates.
Cross-Origin-Embedder-Policy header is missing
COEP enforces that all embedded resources opt-in to cross-origin embedding — required for cross-origin isolation features.
Cross-Origin-Opener-Policy header is missing
COOP isolates your top-level browsing context from cross-origin windows — without it, popup-based side-channel attacks remain possible.
Business case
What fixing the audit's findings is worth -- and what ignoring them keeps costing.
Return on investment
€553 investment → €11,528/month returns + EUR 120,500,000 risk avoided
Figures combine localized regulatory fine ceilings, search/conversion value priced against local CPC, and bandwidth waste estimates. Results depend on implementation quality and audience composition. Not legal or financial advice.
Conversion barriers
9 barrier(s) likely increasing bounce by ~35%.
- Page takes 7.6s to loadUsers abandon at ~3s — you're 5.1s over the 2.5s threshold→ Optimize render-blocking resources, preload the hero image, and compress images
- Page feels frozen for 738msClicks on the primary CTA are ignored while JavaScript runs→ Break up long tasks; defer non-critical JavaScript to post-hydration
- Mixed content on HTTPS pageBrowsers block insecure subresources — broken images, missing scripts, warning badge→ Change http:// URLs inside the page to https:// (or protocol-relative)
- 69 broken link(s) on the pageClicks land on 404s — trust drops and the session often ends→ Fix or remove the broken destinations surfaced on the Content tab
- No HSTS headerReturning visitors are briefly exposed to downgrade attacks on first request→ Set Strict-Transport-Security: max-age=31536000; includeSubDomains
Preliminary CRO audit — each barrier links to the tab with detailed analysis.
Remediation cost
Start here for the best return on investment
Cost by category
Cost by effort level
Adjust assumptions
Team composition
Multiplier applied to dev hours to reflect QA, design, and PM overhead. Use Dev only for solo work; Full team for projects with formal review processes.
Rates reflect fully-loaded developer cost including overhead
Warning:Cost of inaction
Compliance Risk
€120.500.000
- No privacy policy found (page links and common paths checked)AVG: EUR 10.000 – EUR 20.000.000
- Trackers detected but no cookie policy foundAVG: EUR 5.000 – EUR 10.000.000
- Trackers detected but no cookie policy foundAVG: EUR 10.000 – EUR 20.000.000
Bounce-Rate Cost
€7.795 /mo
+35.4pp bounce · ~3,543 lost visitors/mo
CPC: EUR 2.20
Bandwidth Waste
€0,29 /mo
3969.6 MB/mo × 0.074 EUR/GB
- Optimize transfer: save ~397 KB per page loadSaves €0,29/mo
Compliance figures represent the statutory maximum fine for the most severe triggered category, capped per regulation — not the sum of per-finding penalties. Based on published regulatory fine ranges. This is not legal advice.
Unique monthly visitors from your analytics
Purchases, signups, or key actions
Optional — for revenue estimation
more engaged visitors from reduced bounce
Fix 2 critical issues to capture this value
How this is calculated
Based on Google/Deloitte research ("Milliseconds Make Millions") showing a ~7% bounce rate increase per additional second of LCP above the 2.5s "Good" threshold.
Your site's LCP: → estimated after fixes.
These are estimates based on industry research — actual results vary
Your data stays in your browser — nothing is sent to our servers
Lighthouse
Mobile
First Contentful Paint First Contentful Paint — how long until the browser renders the first piece of content. Under 1.8s is good.
2.29 s
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
7.57 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
738 ms
Cumulative Layout Shift Cumulative Layout Shift — measures visual stability. How much the page layout shifts during loading. Under 0.1 is good.
0.000
Speed Index Speed Index — how quickly content is visually displayed during load. Under 3.4s is good.
3.01 s
Time to Interactive Time to Interactive — how long until the page is fully interactive and responds to user input. Under 3.8s is good.
9.59 s
Desktop
First Contentful Paint First Contentful Paint — how long until the browser renders the first piece of content. Under 1.8s is good.
749 ms
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
2.07 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
104 ms
Cumulative Layout Shift Cumulative Layout Shift — measures visual stability. How much the page layout shifts during loading. Under 0.1 is good.
0.000
Speed Index Speed Index — how quickly content is visually displayed during load. Under 3.4s is good.
1.01 s
Time to Interactive Time to Interactive — how long until the page is fully interactive and responds to user input. Under 3.8s is good.
2.22 s
Categories
8Performance
3 render-blocking <script src> tag(s) without async/defer
Security
Content-Security-Policy header is missing
Accessibility
All checks pass
SEO
All checks pass
Infrastructure
All checks pass
Compliance
All checks pass
Content
All checks pass
Sustainability
All checks pass
How you compare
Where this site stands against peers running the same stack.
Technology stack
Apollo, on Emotion, hosted on Azure, with Azure CDN CDN
Stack Architecture
All Detected Technologies (19)
Azure is a cloud computing service for building, testing, deploying, and managing applications and services through Microsoft-managed data centers.
Next.js is a React framework for developing single page Javascript applications.
Emotion is a library designed for writing CSS styles with JavaScript.
GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data.
Apollo is a fully-featured caching GraphQL client with integrations for React, Angular, and more.
Azure Front Door is a scalable and secure entry point for fast delivery of your global web applications.
MUI(formerly Material UI) is a simple and customisable component library to build faster, beautiful, and more accessible React applications.
Material UI is a simple and customisable component library to build faster, beautiful, and more accessible React applications.
Open Graph is a protocol that is used to integrate any web page into the social graph.
Priority Hints exposes a mechanism for developers to signal a relative priority for browsers to consider when fetching resources.
React is an open-source JavaScript library for building user interfaces or UI components.
Webpack is an open-source JavaScript module bundler.
jQuery is a JavaScript library which is a free, open-source software designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.
Siteimprove is a digital analytics and content QA platform.
Observations (3)
jQuery loaded alongside a modern framework
Both jQuery and React are loaded. Modern frameworks handle DOM manipulation natively. jQuery may be unnecessary and adds ~30KB to the page weight. Check the Performance tab for bundle analysis.
No build tool detected
A framework (Apollo) was detected but no bundler was identified. The build tool may not be detectable from output patterns, or the site may use the framework's built-in bundler.
Complex technology stack detected
19 technologies identified. A complex stack increases maintenance burden and attack surface. Consider whether all components are actively needed.
Show your score
Drop this badge on your README, marketing site, or status page. It auto-updates every time the audit re-runs and links back to this report.
This badge auto-updates with your latest scan result.
[](https://beavercheck.com/sites/haarlemmermeergemeente.nl)<a href="https://beavercheck.com/sites/haarlemmermeergemeente.nl"><img src="https://beavercheck.com/badge?url=https%3A%2F%2Fhaarlemmermeergemeente.nl" alt="BeaverCheck Score"></a>https://beavercheck.com/badge?url=https%3A%2F%2Fhaarlemmermeergemeente.nlFix Plan
Three-week roadmap to ship the audit's findings, with one-click copy targets for your tracker.
Three-week fix plan
2 sprints · 6h total → projected B (87)
Sprint 1: Quick Wins
+3Highest ROI — low effort, high impact
- · HSTS header is missing
- · Cross-Origin-Opener-Policy header is missing
Sprint 2: Core Fixes
+2Medium effort, high structural impact
- · Content-Security-Policy header is missing
- · Cross-Origin-Embedder-Policy header is missing
- · 3 render-blocking <script src> tag(s) without async/defer


