Browsers will use heuristic caching, which can be unpredictable. Set explicit cache headers.
No Cache-Control header
Adding a Cache-Control header can significantly improve repeat-visit performance.
B
Page Weight Budget
1.5 MB transferred, 80 requests
REVIEW
1.5 MB transferred, 80 requests
Info::
✓
Page weighs 3.6 MB (1.5 MB transferred)
Warning::
!
JavaScript is 647 KB — consider code splitting or lazy loading
Large JavaScript bundles delay interactivity. Split code by route or defer non-critical scripts.
Got: 647 KB
Info::
i
Fonts are 434 KB — consider subsetting or using system fonts
Subset fonts to include only used characters, or switch to system font stacks.
Got: 434 KB
Info::
i
80 HTTP requests
Info::
i
Estimated 0.30 g CO2 per page load
1.5 MBtransferred
80 requests
0.30 g CO2 per page load
JavaScript646.9 KiB44%
Fonts434.4 KiB29%
Images233.7 KiB16%
Other95.0 KiB6%
HTML46.9 KiB3%
CSS27.0 KiB2%
Other1.4 KiB0%
Other1.2 KiB0%
Other0 B0%
02.4 MB4.9 MB
Under budget
Large JavaScript bundles delay interactivity. Split code by route or defer non-critical scripts.
Why this matters
JavaScript bundle is large — code-split routes and lazy-load off-screen components to defer.
Source: web.dev
Subset fonts to include only used characters, or switch to system font stacks.
Why this matters
Font payload is large — subset to used glyphs only, or fall back to system fonts (zero load time).
Source: web.dev font loading
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+
Image Optimization
32 images, 0 KB saveable
PASS
32 images, 0 KB saveable
Info::
✓
All images are well-optimized
32images234 KB
0oversized-0 KB
1legacy format
0missing dimensionsCLS risk
A+
Font Loading
21 fonts (434 KB)
PASS
21 fonts (434 KB)
Info::
i
21 font(s) use font-display: swap (FOUT risk but functional)
Web fonts
21
434 KB total
Render-blocking
0
of 21
Dominant font-display
swap
Most common across fonts
Font loading timeline
TransferFOIT (block)FOUT (swap)
PlayfairDisplay-Black.w...woff2swap
Size67 KB
Load time145 ms
Start262 ms
RiskFOUT — text flashes from fallback to web font
barlow-condensed-v12-la...woff2swap
Size20 KB
Load time144 ms
Start262 ms
RiskFOUT — text flashes from fallback to web font
montserrat-v25-latin-re...woff2swap
Size13 KB
Load time146 ms
Start263 ms
RiskFOUT — text flashes from fallback to web font
montserrat-v25-latin-70...woff2swap
Size13 KB
Load time31 ms
Start613 ms
RiskFOUT — text flashes from fallback to web font
montserrat-v25-latin-80...woff2swap
Size13 KB
Load time28 ms
Start613 ms
RiskFOUT — text flashes from fallback to web font
barlow-condensed-v12-la...woff2swap
Size21 KB
Load time30 ms
Start614 ms
RiskFOUT — text flashes from fallback to web font
montserrat-v25-latin-60...woff2swap
Size13 KB
Load time43 ms
Start614 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-brands-400-0.woff2woff2swap
Size37 KB
Load time34 ms
Start719 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-light-300-17.woff2woff2swap
Size21 KB
Load time36 ms
Start719 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-light-300-1.woff2woff2swap
Size18 KB
Load time35 ms
Start719 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-light-300-0.woff2woff2swap
Size15 KB
Load time37 ms
Start720 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-solid-900-15.woff2woff2swap
Size12 KB
Load time39 ms
Start720 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-solid-900-0.woff2woff2swap
Size12 KB
Load time54 ms
Start720 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-regular-400-16.w...woff2swap
Size21 KB
Load time53 ms
Start720 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-regular-400-1.woff2woff2swap
Size17 KB
Load time38 ms
Start720 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-light-300-12.woff2woff2swap
Size20 KB
Load time53 ms
Start721 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-solid-900-18.woff2woff2swap
Size19 KB
Load time40 ms
Start721 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-regular-400-22.w...woff2swap
Size20 KB
Load time53 ms
Start721 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-solid-900-2.woff2woff2swap
Size21 KB
Load time53 ms
Start721 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-solid-900-13.woff2woff2swap
Size13 KB
Load time54 ms
Start721 ms
RiskFOUT — text flashes from fallback to web font
pro-fa-light-300-2.woff2woff2swap
Size28 KB
Load time54 ms
Start722 ms
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
4 hints, 0 missing preconnects
PASS
4 hints, 0 missing preconnects
Info::
✓
Page uses 4 resource hint(s)
Current Resource Hints
preconnect—
preload
3
dns-prefetch
1
prefetch—
4 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: Cloudflare
Network Waterfall
80 requests over 1490ms
INFO
HTML JavaScript CSS Images Fonts XHR/Fetch Other
Third-Party Script Cost
Per-script blocking time, transfer cost, and cache headers
INFO
65%of JavaScript execution is third-party
First-party Third-party1609ms · 624KB · €17/mo
Script
Category
Execution
Transfer
Unused
Monthly Cost
Verdict
Unattributable
Unattributable
Other
414ms
0 KB
—
€4/mo
Costly
cmp.osano.com
cmp.osano.com
Other
355ms
69 KB
34%
€4/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
233ms
156 KB
40%
€3/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
216ms
131 KB
47%
€2/mo
Costly
kit.fontawesome.com
kit.fontawesome.com
Other
132ms
6 KB
—
€1/mo
Optional
accounts.google.com
accounts.google.com
Other
96ms
96 KB
74%
€1/mo
Optional
static.builtin.com
static.builtin.com
Other
87ms
70 KB
77%
€1/mo
Optional
static.builtin.com
static.builtin.com
Other
77ms
96 KB
80%
€1/mo
Optional
Unattributable
Other
Costly
Execution414ms
Transfer0 KB
Monthly Cost€4/mo
cmp.osano.com
Other
Costly
Execution355ms
Transfer69 KB
Unused34%
Monthly Cost€4/mo
Google Tag Manager
Tag Manager
Costly
Execution233ms
Transfer156 KB
Unused40%
Monthly Cost€3/mo
Google Tag Manager
Tag Manager
Costly
Execution216ms
Transfer131 KB
Unused47%
Monthly Cost€2/mo
kit.fontawesome.com
Other
Optional
Execution132ms
Transfer6 KB
Monthly Cost€1/mo
accounts.google.com
Other
Optional
Execution96ms
Transfer96 KB
Unused74%
Monthly Cost€1/mo
static.builtin.com
Other
Optional
Execution87ms
Transfer70 KB
Unused77%
Monthly Cost€1/mo
static.builtin.com
Other
Optional
Execution77ms
Transfer96 KB
Unused80%
Monthly Cost€1/mo
These scripts may cost more than they're worth
Unattributable adds 414ms and costs ~€4/month
cmp.osano.com adds 355ms and costs ~€4/month
Google Tag Manager adds 233ms and costs ~€3/month
Google Tag Manager adds 216ms and costs ~€2/month
65% 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
Unattributable takes 414ms 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
cmp.osano.com takes 355ms 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 233ms 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 216ms 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
74% of accounts.google.com's code is unused. The script may be loading features you don't use.
Why this matters
Bundle has high unused-code ratio — tree-shaking and route-splitting recover the wasted bytes.
Source: web.dev
77% of static.builtin.com's code is unused. The script may be loading features you don't use.
Why this matters
Bundle has high unused-code ratio — tree-shaking and route-splitting recover the wasted bytes.
Source: web.dev
80% of static.builtin.com's code is unused. The script may be loading features you don't use.
Why this matters
Bundle has high unused-code ratio — tree-shaking and route-splitting recover the wasted bytes.