Performance
· 26 checks — Lighthouse + waterfall + sustainability rolled into one auditable list.Performance-focused optimization plan with CWV assessment, top offenders, and time estimates
First Contentful Paint First Contentful Paint — how long until the browser renders the first piece of content. Under 1.8s is good.
1.37 s
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
2.59 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
281 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.67 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.
3.03 s
Page Load Progression
DJS Execution CostAction2155ms total JS executionFIX
Main Thread Breakdown
| Script | Total | Scripting | Parse/Compile | Party |
|---|---|---|---|---|
| https://svennouwen.nl/ | 812ms | 13ms | 1ms | 1st |
| https://svennouwen.nl/wp-includes/js/jquery/jquery.min.js?ver=3.7.1 | 522ms | 412ms | 50ms | 1st |
| Unattributable | 509ms | 14ms | 0ms | 1st |
| https://svennouwen.nl/wp-content/litespeed/js/9747d5de35d993fc466640604e52e588.js?ver=992d0 | 197ms | 61ms | 47ms | 1st |
| https://svennouwen.nl/wp-content/litespeed/js/d47cefad5ed6847b5ba51224e82bf423.js?ver=67d1b | 64ms | 48ms | 15ms | 1st |
| data:text/javascript;base64,KGZ1bmN0aW9uKCl7dmFyIHRhZ3M9W10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzY3JpcHRbZGF0YS1zdi1sYXp5LXNyY10nKSk7dmFyIHdpZGdldD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZWxlbWVudG9yLXdpZGdldC1yYXZlbi1mb3JtJyk7aWYoIXRhZ3MubGVuZ3RofHwhd2lkZ2V0KXtyZXR1cm59CnZhciBmb3JtPXdpZGdldC5xdWVyeVNlbGVjdG9yKCdmb3JtJyk7dmFyIHN0YXRlPTAscXVldWVkU3VibWl0PSExLGlvPW51bGwsbm90ZT1udWxsO2Z1bmN0aW9uIGVmUmVhZHkoKXtyZXR1cm4hISh3aW5kb3cuZWxlbWVudG9yRnJvbnRlbmQmJndpbmRvdy5lbGVtZW50b3JGcm9udGVuZC5lbGVtZW50c0hhbmRsZXIpfQpmdW5jdGlvbiBpbml0SGFuZGxlcnMoJCl7dmFyIGV2PSQuX2RhdGEod2luZG93LCdldmVudHMnKTtyZXR1cm4oZXYmJmV2WydlbGVtZW50b3IvZnJvbnRlbmQvaW5pdCddKT9ldlsnZWxlbWVudG9yL2Zyb250ZW5kL2luaXQnXS5zbGljZSgpOltdfQpmdW5jdGlvbiBib3VuZCgpe3ZhciAkPXdpbmRvdy5qUXVlcnksZXY9JCYmZm9ybSYmJC5fZGF0YShmb3JtLCdldmVudHMnKTtyZXR1cm4hIShldiYmZXYuc3VibWl0KX0KZnVuY3Rpb24gc2F5KG1zZyl7aWYoIWZvcm0pe3JldHVybn0KaWYoIW5vdGUpe25vdGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO25vdGUuY2xhc3NOYW1lPSdzdi1mb3JtLW5vdGUnO25vdGUuc2V0QXR0cmlidXRlKCdyb2xlJywnYWxlcnQnKTtub3RlLnN0eWxlLm1hcmdpblRvcD0nMTJweCc7Zm9ybS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShub3RlLGZvcm0ubmV4dFNpYmxpbmcpfQpub3RlLnRleHRDb250ZW50PW1zZ30KZnVuY3Rpb24gZmFpbCgpe3N0YXRlPTA7cXVldWVkU3VibWl0PSExO3NheSgnVGhlIGNvbnRhY3QgZm9ybSBjb3VsZCBub3QgZmluaXNoIGxvYWRpbmcuIFlvdXIgbWVzc2FnZSBpcyBzdGlsbCBoZXJlOiBwbGVhc2UgdHJ5IHNlbmRpbmcgaXQgYWdhaW4sIG9yIGVtYWlsIHN1cHBvcnRAc3Zlbm5vdXdlbi5ubC4nKX0KZnVuY3Rpb24gbG9hZChpLGRvbmUpe2lmKGk+PXRhZ3MubGVuZ3RoKXtkb25lKCEwKTtyZXR1cm59CmlmKHRhZ3NbaV0uZ2V0QXR0cmlidXRlKCdkYXRhLXN2LWxvYWRlZCcpKXtsb2FkKGkrMSxkb25lKTtyZXR1cm59CnZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3Muc3JjPXRhZ3NbaV0uZ2V0QXR0cmlidXRlKCdkYXRhLXN2LWxhenktc3JjJyk7cy5hc3luYz0hMTtzLm9ubG9hZD1mdW5jdGlvbigpe3RhZ3NbaV0uc2V0QXR0cmlidXRlKCdkYXRhLXN2LWxvYWRlZCcsJzEnKTtsb2FkKGkrMSxkb25lKX07cy5vbmVycm9yPWZ1bmN0aW9uKCl7aWYocy5wYXJlbnROb2RlKXtzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocyl9ZG9uZSghMSl9O2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocyl9CmZ1bmN0aW9uIHdoZW5Cb3VuZChuLGNiKXtpZihib3VuZCgpKXtjYighMCl9ZWxzZSBpZihuPDIwMCl7c2V0VGltZW91dChmdW5jdGlvbigpe3doZW5Cb3VuZChuKzEsY2IpfSw1MCl9ZWxzZXtjYighMSl9fQpmdW5jdGlvbiBzdGFydCgpe2lmKHN0YXRlKXtyZXR1cm59CnN0YXRlPTE7aWYobm90ZSl7bm90ZS50ZXh0Q29udGVudD0nJ30KdmFyICQ9d2luZG93LmpRdWVyeSxiZWZvcmU9JD9pbml0SGFuZGxlcnMoJCk6W107bG9hZCgwLGZ1bmN0aW9uKG9rKXtpZighb2spe2ZhaWwoKTtyZXR1cm59CmlmKCQmJmVmUmVhZHkoKSYmIWJvdW5kKCkpe2luaXRIYW5kbGVycygkKS5mb3JFYWNoKGZ1bmN0aW9uKGgpe2lmKGJlZm9yZS5pbmRleE9mKGgpPT09LTEpe2guaGFuZGxlci5jYWxsKHdpbmRvdywkLkV2ZW50KCdlbGVtZW50b3IvZnJvbnRlbmQvaW5pdCcpKX19KTskKCcuZWxlbWVudG9yLXdpZGdldC1yYXZlbi1mb3JtJykuZWFjaChmdW5jdGlvbigpe3dpbmRvdy5lbGVtZW50b3JGcm9udGVuZC5ob29rcy5kb0FjdGlvbignZnJvbnRlbmQvZWxlbWVudF9yZWFkeS9yYXZlbi1mb3JtLmRlZmF1bHQnLCQodGhpcyksJCl9KX0Kd2hlbkJvdW5kKDAsZnVuY3Rpb24oaXNCb3VuZCl7aWYoIWlzQm91bmQpe2ZhaWwoKTtyZXR1cm59CnN0YXRlPTI7d2luZG93Ll9fc3ZSYXZlbkxvYWRlZD0hMDtpZihxdWV1ZWRTdWJtaXQpe3F1ZXVlZFN1Ym1pdD0hMTtpZihmb3JtLnJlcXVlc3RTdWJtaXQpe2Zvcm0ucmVxdWVzdFN1Ym1pdCgpfWVsc2V7d2luZG93LmpRdWVyeShmb3JtKS50cmlnZ2VyKCdzdWJtaXQnKX19fSl9KX0KZnVuY3Rpb24gYXJtKCl7aWYoJ0ludGVyc2VjdGlvbk9ic2VydmVyJyBpbiB3aW5kb3cpe2lvPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlbnRyaWVzKXtpZihlbnRyaWVzLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNJbnRlcnNlY3Rpbmd9KSl7aWYoaW8pe2lvLmRpc2Nvbm5lY3QoKTtpbz1udWxsfXN0YXJ0KCl9fSx7cm9vdE1hcmdpbjonNjAwcHggMHB4J30pO2lvLm9ic2VydmUod2lkZ2V0KX1lbHNle3N0YXJ0KCl9CndpZGdldC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJyxzdGFydCk7d2lkZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJyxzdGFydCk7aWYoZm9ybSl7Zm9ybS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLGZ1bmN0aW9uKGUpe2lmKHN0YXRlPDJ8fCFib3VuZCgpKXtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtxdWV1ZWRTdWJtaXQ9ITA7c3RhcnQoKX19LCEwKX0KaWYoL14jKGNvbnRhY3R8Zm9ybSkvLnRlc3QobG9jYXRpb24uaGFzaCkpe3N0YXJ0KCl9fQppZihkb2N1bWVudC5yZWFkeVN0YXRlPT09J2xvYWRpbmcnKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJyxhcm0pfWVsc2V7YXJtKCl9fSkoKQ== | 51ms | 9ms | 14ms | 1st |
DHTTP CachingActionno-store (uncacheable)FIX
no-store
| Directive | Value | Meaning |
|---|---|---|
| no-store | — | Never cache this response |
BHTTP/3 (QUIC)HTTP/3 not advertisedREVIEW
BDocument CompressionDocument response uses gzip; brotli would be ~20% smallerREVIEW
BServer-Timing ObservabilityNo Server-Timing header foundREVIEW
A+Page Weight Budget390 KB transferred, 33 requestsPASS
A+Third-Party ImpactNo third-party resourcesPASS
A+Text CompressionAll text resources are compressedPASS
AImage Optimization3 images, 0 KB saveablePASS
A+Font Loading4 fonts (48 KB)PASS
Web fonts
4
48 KB total
Render-blocking
0
of 4
Dominant font-display
swap
Most common across fonts
Font loading timeline
Optimization checklist
- Preload critical fonts (priority=high)
- Use woff2 format for all fonts
- Set font-display to swap, optional, or fallback
- Subset large fonts (≤100 KB each)
A+JS Bundles20 scripts, 32 KB unusedPASS
Downloaded but never executed on this page.
| Script | Size | Unused | Minified | Party |
|---|---|---|---|---|
| https://svennouwen.nl/wp-content/litespeed/js/9747d5de35d993fc466640604e52e588.js?ver=992d0 | 39 KB | 32 KB (84%) | ✓ | 1st |
| data:text/javascript;base64,KGZ1bmN0aW9uKCl7dmFyIGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN2LWJ1cmdlciI… | 0 KB | — | ✓ | 3rd |
| data:text/javascript;base64,KCgpPT57dmFyIGU9d2luZG93Lmtva29fYW5hbHl0aWNzLHM9WyJ1dG1fc291cmNlIiwidXR… | 0 KB | — | ✓ | 3rd |
| https://svennouwen.nl/wp-content/litespeed/js/11a20d21bb0dd2ebc5bd854d2f233ad5.js?ver=75dec | 7 KB | — | ✓ | 1st |
| data:text/javascript;base64,d2luZG93Lmtva29fYW5hbHl0aWNzPXsidXJsIjoiaHR0cHM6XC9cL3N2ZW5ub3V3ZW4ubmx… | 0 KB | — | ✓ | 3rd |
| https://svennouwen.nl/wp-content/litespeed/js/e49a4d9ea4548e1dc3403979efc73679.js?ver=c8c11 | 0 KB | — | ✓ | 1st |
| https://svennouwen.nl/wp-content/litespeed/js/c22666f766fdf6093ceabd8f14b92699.js?ver=8773d | 16 KB | — | ✓ | 1st |
| https://svennouwen.nl/wp-content/litespeed/js/f74f38363d256c6ae2e451ed34609be2.js?ver=8c5bf | 7 KB | — | ✓ | 1st |
| https://svennouwen.nl/wp-content/litespeed/js/d47cefad5ed6847b5ba51224e82bf423.js?ver=67d1b | 19 KB | — | ✓ | 1st |
| https://svennouwen.nl/wp-content/litespeed/js/8d291371200750a103f3c2c9fc27c213.js?ver=0ae5b | 0 KB | — | ✓ | 1st |
Consider code splitting or tree shaking to reduce unused code.
This bundle has high unused code — code-split or tree-shake to ship only what executes.
Source: web.dev / Lighthouse coverage
A+Resource CachingAll resources properly cachedPASS
A+Critical Rendering PathNo render-blocking resourcesPASS
A+Resource Hints2 hints, 0 missing preconnectsPASS
Current Resource Hints
2 resource hints configured
A+LCP Image PreloadLCP preload audit not availablePASS
A+Main HTML Cache-ControlMain HTML uses no-store -- correct for sensitive/dynamic contentPASS
A+Server Response Intelligence2 server-response signal(s) detectedPASS
A+Page Weight Inventory33 resources · 390 KB · 32 KB savings availablePASS
~32.4 KiB of savings available
| # | Resource | Type | Size | Cache | Unused | 3rd party | Issues |
|---|---|---|---|---|---|---|---|
| — | — | ||||||
| 33 resources | 390.3 KiB | ||||||
A+Render-Blocking ResourcesNo render-blocking resources detectedPASS
A+Third-Party ResourcesNo third-party resources detectedPASS
A+JavaScript BlockingNo render-blocking JS or document.write usage detectedPASS
A+CSS Performance DepthNo CSS performance depth issues detectedPASS
A+Green HostingWhether the site is served from green-energy infrastructurePASS
Green Hosting
This site is hosted on green energy infrastructure
Provider: Combell
Asset CompressionNo text asset hosts to measureINFO
Network Waterfall33 requests over 929msINFO
Image Optimization5 images, 54 KB total, 36 KB wastedINFO
Image Optimization Audit
Total Images
5
Total Size
54 KB
Oversized
2
Wasted
36 KB