Third-party code accounts for 44% of page weight (1.0 MiB of 2.3 MiB)
Info::
✓
Third-party blocking time is low (0 ms)
56%
44%
First-party Third-party
C
Image Optimization
Action
31 images, 0 KB saveable
REVIEW
31 images, 0 KB saveable
Warning::
!
https://dovendi.com/storage/uploads/af4dbd90-c876-... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://dovendi.com/storage/uploads/b1248fff-acac-... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://dovendi.com/storage/uploads/b1248fff-acac-... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://dovendi.com/storage/uploads/b1248fff-acac-... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://dovendi.com/storage/uploads/64d6faf0-a0e0-... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://dovendi.com/storage/uploads/b1248fff-acac-... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://dovendi.com/storage/uploads/7442ae43-dd3e-... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://dovendi.com/keurmerk.png is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://dovendi.com/storage/uploads/b1248fff-acac-... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
31images1.2 MB
0oversized-0 KB
30legacy format
10missing dimensionsCLS risk
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
Set explicit width and height to prevent CLS.
Why this matters
Performance issues directly impact user engagement and conversion rates.
Set explicit width and height to prevent CLS.
Why this matters
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
B
HTTP Caching
no-cache, private
REVIEW
no-cache, private
Info::
✓
Cache-Control header is set
Got: no-cache, private
Info::
i
No ETag or Last-Modified header
Conditional requests (304 Not Modified) are not possible without validators.
Cache-Control
no-cache, private
Directive
Value
Meaning
no-cache
—
Cache but always revalidate first
private
—
Only browser cache, not CDN/proxy
A+
Text Compression
All text resources are compressed
PASS
All text resources are compressed
Info::
✓
All text resources are compressed
All text resources are properly compressed.
A+
Font Loading
11 fonts (76 KB)
PASS
11 fonts (76 KB)
Info::
i
11 font(s) use font-display: swap (FOUT risk but functional)
Web fonts
11
76 KB total
Render-blocking
0
of 11
Dominant font-display
swap
Most common across fonts
Font loading timeline
TransferFOIT (block)FOUT (swap)
outfit-v6-latin-500-Cf2...woff2swap
Size0 KB
Load time58 ms
Start697 ms
RiskFOUT — text flashes from fallback to web font
outfit-v6-latin-700-Dwe...woff2swap
Size0 KB
Load time57 ms
Start697 ms
RiskFOUT — text flashes from fallback to web font
outfit-v6-latin-regular...woff2swap
Size0 KB
Load time57 ms
Start698 ms
RiskFOUT — text flashes from fallback to web font
outfit-v6-latin-700-Cx7...woffswap
Size0 KB
Load time84 ms
Start770 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
outfit-v6-latin-500-DF4...woffswap
Size0 KB
Load time83 ms
Start771 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
outfit-v6-latin-regular...woffswap
Size0 KB
Load time90 ms
Start772 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
outfit-v6-latin-700-yO3...ttfswap
Size0 KB
Load time65 ms
Start862 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
outfit-v6-latin-500-sF7...ttfswap
Size0 KB
Load time65 ms
Start863 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
outfit-v6-latin-regular...ttfswap
Size0 KB
Load time59 ms
Start877 ms
RiskFOUT — text flashes from fallback to web font
Convert to woff2 for ~30% smaller file size
memvYaGs126MiZpBA-UvWbX...woff2swap
Size42 KB
Load time74 ms
Start1.2 s
RiskFOUT — text flashes from fallback to web font
KFO7CnqEu92Fr1ME7kSn66a...woff2swap
Size34 KB
Load time64 ms
Start1.4 s
RiskFOUT — text flashes from fallback to web font
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+
Resource Caching
All resources properly cached
PASS
All resources properly cached
Info::
✓
No caching issues found
All static resources have appropriate caching headers.
A+
Critical Rendering Path
No render-blocking resources
PASS
No render-blocking resources
Info::
✓
No render-blocking resources detected
A+
Resource Hints
2 hints, 0 missing preconnects
PASS
2 hints, 0 missing preconnects
Info::
✓
Page uses 2 resource hint(s)
Current Resource Hints
preconnect—
preload
2
dns-prefetch—
prefetch—
2 resource hints configured
A+
Render-Blocking Resources
No render-blocking resources detected
PASS
No render-blocking resources detected
Info::
✓
No render-blocking resources detected in <head>
A+
Third-Party Resources
No third-party resources detected
PASS
No third-party resources detected
A+
Green Hosting
Whether the site is served from green-energy infrastructure
PASS
Green Hosting
This site is hosted on green energy infrastructure
Provider: Hetzner Online GmbH
Network Waterfall
65 requests over 1559ms
INFO
HTML JavaScript CSS Images Fonts XHR/Fetch Other
Third-Party Script Cost
Per-script blocking time, transfer cost, and cache headers
INFO
63%of JavaScript execution is third-party
First-party Third-party1431ms · 156KB · €16/mo
Script
Category
Execution
Transfer
Unused
Monthly Cost
Verdict
www.gstatic.com
www.gstatic.com
Other
696ms
0 KB
49%
€8/mo
Costly
Unattributable
Unattributable
Other
488ms
0 KB
—
€5/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
247ms
156 KB
42%
€3/mo
Costly
www.gstatic.com
Other
Costly
Execution696ms
Transfer0 KB
Unused49%
Monthly Cost€8/mo
Unattributable
Other
Costly
Execution488ms
Transfer0 KB
Monthly Cost€5/mo
Google Tag Manager
Tag Manager
Costly
Execution247ms
Transfer156 KB
Unused42%
Monthly Cost€3/mo
These scripts may cost more than they're worth
www.gstatic.com adds 696ms and costs ~€8/month
Unattributable adds 488ms and costs ~€5/month
Google Tag Manager adds 247ms and costs ~€3/month
63% of JavaScript execution time comes from third-party scripts.
Why this matters
Third-party scripts (analytics, ads, social, A/B testing) often dominate execution time — every one is a perf-and-privacy tax.
Learn more ▾▴
Each third-party script is a black box: you don't control when it loads, what it executes, or how much it grows. They often account for a major share of total blocking time on average sites (HTTP Archive's Web Almanac documents the trend). Audit which ones you actually need, defer the rest, and use facade patterns (lite-youtube, lite-vimeo) for embedded media.
Source: web.dev / HTTP Archive Web Almanac
www.gstatic.com takes 696ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
Why this matters
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
Unattributable takes 488ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
Why this matters
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
Google Tag Manager takes 247ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
Why this matters
This script has high main-thread execution time — optimize hot paths or defer.