Browsers will use heuristic caching, which can be unpredictable. Set explicit cache headers.
Info::
✓
Last-Modified header present
No Cache-Control header
Adding a Cache-Control header can significantly improve repeat-visit performance.
C
Image Optimization
Action
24 images, 0 KB saveable
REVIEW
24 images, 0 KB saveable
Warning::
!
https://cdn.prod.website-files.com/623c9b7d180ce44... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://cdn.prod.website-files.com/623c9b7d180ce44... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://cdn.prod.website-files.com/623c9b7d180ce44... 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://cdn.prod.website-files.com/623c9b7d180ce44... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://cdn.prod.website-files.com/623c9b7d180ce44... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://cdn.prod.website-files.com/623c9b7d180ce44... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
24images1.2 MB
0oversized-0 KB
22legacy format
7missing 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
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
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
B
Document Compression
Document response uses gzip; brotli would be ~20% smaller
REVIEW
Document response uses gzip; brotli would be ~20% smaller
Info::
i
Main HTML response uses gzip (brotli would be ~20% smaller)
All current browsers support brotli. Most CDNs (Cloudflare, Fastly, AWS CloudFront, Vercel, Netlify) can switch from gzip to brotli with a single config flag. Origin servers (nginx, Apache) need a brotli module compiled in -- nginx-brotli or Apache mod_brotli.
B
Asset Compression
2 of 6 asset hosts still on gzip
REVIEW
2 of 6 asset hosts still on gzip
Info::
✓
cdn.prod.website-files.com serves assets with brotli (assets: 36)
Got: cdn.prod.website-files.com (text/css)
Info::
✓
static.klaviyo.com serves assets with brotli (assets: 7)
Got: static.klaviyo.com (text/javascript)
Info::
✓
static-tracking.klaviyo.com serves assets with brotli (assets: 4)
bat.bing.com serves assets with gzip; brotli would be ~20% smaller (assets: 3)
Every current browser accepts brotli. On a CDN this is a per-pull-zone toggle (Cloudflare, Fastly, CloudFront, CDN77, Bunny all expose it); on an origin it needs the brotli module (nginx-brotli, Apache mod_brotli). The saving lands on the assets this host serves, not on the HTML document -- the document's own encoding is reported separately.
Got: bat.bing.com (application/javascript)
Info::
i
www.googletagmanager.com serves assets with gzip; brotli would be ~20% smaller (assets: 3)
Every current browser accepts brotli. On a CDN this is a per-pull-zone toggle (Cloudflare, Fastly, CloudFront, CDN77, Bunny all expose it); on an origin it needs the brotli module (nginx-brotli, Apache mod_brotli). The saving lands on the assets this host serves, not on the HTML document -- the document's own encoding is reported separately.
www.gstatic.com serves assets with brotli (assets: 3)
Got: www.gstatic.com (text/javascript)
B
Main HTML Cache-Control
No Cache-Control header on main HTML response
REVIEW
No Cache-Control header on main HTML response
Info::
i
Main HTML response has no Cache-Control header
Without an explicit Cache-Control, browsers fall back to heuristic caching (~10% of Last-Modified age). Set `Cache-Control: no-cache` or `max-age=300` for HTML to control freshness explicitly -- prevents stale auth state and SPA shell drift.
B
Server-Timing Observability
No Server-Timing header found
REVIEW
No Server-Timing header found
Info::
i
No Server-Timing header found
Server-Timing exposes backend timing breakdowns to browser DevTools (e.g., `db: 45ms; render: 120ms; cache: 2ms`). Useful for diagnosing slow pages without backend log access. Most modern frameworks (Next.js, Cloudflare Workers, Fastly) emit it automatically; absence on a managed platform usually means telemetry headers are stripped at the edge.
B
JavaScript Blocking
2 JS blocking issue(s) detected
REVIEW
2 JS blocking issue(s) detected
Warning::
!
12 render-blocking <script src> tag(s) without async/defer
Each `<script src=...>` without `async`, `defer`, or `type="module"` blocks HTML parsing while the browser fetches and executes it. The block lasts the entire round-trip + execution time -- on slow networks this translates directly into LCP delay. Add `defer` (executes after parse, in source order) for scripts that interact with the DOM, or `async` (executes whenever ready) for analytics / independent scripts. Module scripts (`type="module"`) are deferred by default.
Warning::
!
Total JS execution time is 6.1 s -- over the 3.5s budget
Total JavaScript execution (parse + compile + run) across all scripts exceeds 3.5 seconds. On low-end devices that becomes 7-15+ seconds and shows up directly in TBT and INP. Reduce by: tree-shaking unused dependencies, code-splitting (dynamic `import()`), removing or deferring third-party tracking, and replacing heavy frameworks where they're not needed.
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
3 fonts (96 KB)
PASS
3 fonts (96 KB)
Info::
i
3 font(s) use font-display: swap (FOUT risk but functional)
Web fonts
3
96 KB total
Render-blocking
0
of 3
Dominant font-display
swap
Most common across fonts
Font loading timeline
TransferFOIT (block)FOUT (swap)
JTUSjIg1_i6t8kCHKm459Wl...woff2swap
Size35 KB
Load time11 ms
Start202 ms
RiskFOUT — text flashes from fallback to web font
JTUQjIg1_i6t8kCHKm459Wx...woff2swap
Size36 KB
Load time10 ms
Start203 ms
RiskFOUT — text flashes from fallback to web font
lwoff2swap
Size25 KB
Load time56 ms
Start520 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
3 hints, 0 missing preconnects
PASS
3 hints, 0 missing preconnects
Info::
✓
Page uses 3 resource hint(s)
Current Resource Hints
preconnect
3
preload—
dns-prefetch—
prefetch—
3 resource hints configured
A+
HTTP/3 (QUIC)
HTTP/3 advertised via Alt-Svc
PASS
HTTP/3 advertised via Alt-Svc
Info::
✓
HTTP/3 (QUIC) is supported
First-load mobile users on cellular networks see meaningful latency improvements with HTTP/3. The QUIC transport collapses TLS + TCP handshakes into one and recovers faster from packet loss.
A+
LCP Image Preload
LCP preload audit not available
PASS
LCP preload audit not available
Info::
✓
LCP image preload audit not available for this scan
A+
Server Response Intelligence
2 server-response signal(s) detected
PASS
2 server-response signal(s) detected
Info::
✓
`Vary` header declared: accept-encoding
The page declares a `Vary` header, telling downstream caches which request headers the response varies on. Critical for content-negotiated responses (compression, language, cookies, device class).
Info::
✓
`Last-Modified` present -- timestamp-based conditional GET supported
Consider also setting `ETag` for stronger revalidation -- ETags are content hashes that don't suffer from clock-skew or DST issues. Last-Modified alone is functional for conditional GETs and not a bug.
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
CSS Performance Depth
1 CSS depth issue(s) detected
PASS
1 CSS depth issue(s) detected
Info::
i
1 `@import` rule(s) in inline `<style>` blocks -- chains an extra round-trip
Each `@import` in CSS forces a serial dependency: the parent stylesheet must download and parse before the browser even knows which URL to fetch next. This used to be catastrophic on HTTP/1.1; HTTP/2 and HTTP/3 multiplexing make it less painful but still strictly worse than declaring `<link rel="stylesheet">` siblings. Replace `@import url(...)` with `<link rel="stylesheet" href="...">` in HTML so the browser discovers and fetches in parallel.
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
131 requests over 2410ms
INFO
HTML JavaScript CSS Images Fonts XHR/Fetch Other
Third-Party Script Cost
Per-script blocking time, transfer cost, and cache headers
INFO
79%of JavaScript execution is third-party
First-party Third-party4778ms · 1380KB · €25/mo
Script
Category
Execution
Transfer
Unused
Monthly Cost
Verdict
Google Tag Manager
www.googletagmanager.com
Tag Manager
609ms
169 KB
40%
€3/mo
Costly
cdn.prod.website-files.com
cdn.prod.website-files.com
Other
473ms
4 KB
—
€3/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
470ms
161 KB
39%
€2/mo
Costly
cdn.prod.website-files.com
cdn.prod.website-files.com
Other
452ms
24 KB
—
€2/mo
Costly
Stripe
js.stripe.com
Payment
447ms
256 KB
73%
€2/mo
Essential
Google Tag Manager
www.googletagmanager.com
Tag Manager
442ms
181 KB
42%
€2/mo
Costly
Microsoft Clarity
scripts.clarity.ms
Session Replay
297ms
25 KB
—
€2/mo
Costly
www.gstatic.com
www.gstatic.com
Other
284ms
346 KB
71%
€2/mo
Costly
www.inventive-acute.com
www.inventive-acute.com
Other
203ms
39 KB
—
€1/mo
Costly
static.klaviyo.com
static.klaviyo.com
Other
153ms
15 KB
—
€1/mo
Optional
LinkedIn Insight
snap.licdn.com
Advertising
111ms
21 KB
—
€1/mo
Optional
static.klaviyo.com
static.klaviyo.com
Other
107ms
20 KB
—
€1/mo
Optional
static.klaviyo.com
static.klaviyo.com
Other
88ms
9 KB
—
€0/mo
Optional
static.klaviyo.com
static.klaviyo.com
Other
78ms
21 KB
—
€0/mo
Optional
s.ksrndkehqnwntyxlhgto.com
s.ksrndkehqnwntyxlhgto.com
Other
77ms
9 KB
—
€0/mo
Optional
cdn.prod.website-files.com
cdn.prod.website-files.com
Other
72ms
7 KB
—
€0/mo
Optional
jsDelivr
cdn.jsdelivr.net
CDN
66ms
11 KB
—
€0/mo
Optional
d3e54v103j8qbb.cloudfront.net
d3e54v103j8qbb.cloudfront.net
Other
65ms
30 KB
—
€0/mo
Optional
static.klaviyo.com
static.klaviyo.com
Other
64ms
0 KB
—
€0/mo
Optional
www.gstatic.com
www.gstatic.com
Other
63ms
20 KB
—
€0/mo
Optional
cdn.prod.website-files.com
cdn.prod.website-files.com
Other
56ms
3 KB
—
€0/mo
Optional
cdn.prod.website-files.com
cdn.prod.website-files.com
Other
54ms
9 KB
—
€0/mo
Optional
cdn.prod.website-files.com
cdn.prod.website-files.com
Other
50ms
1 KB
—
€0/mo
Optional
Google Tag Manager
Tag Manager
Costly
Execution609ms
Transfer169 KB
Unused40%
Monthly Cost€3/mo
cdn.prod.website-files.com
Other
Costly
Execution473ms
Transfer4 KB
Monthly Cost€3/mo
Google Tag Manager
Tag Manager
Costly
Execution470ms
Transfer161 KB
Unused39%
Monthly Cost€2/mo
cdn.prod.website-files.com
Other
Costly
Execution452ms
Transfer24 KB
Monthly Cost€2/mo
Stripe
Payment
Essential
Execution447ms
Transfer256 KB
Unused73%
Monthly Cost€2/mo
Google Tag Manager
Tag Manager
Costly
Execution442ms
Transfer181 KB
Unused42%
Monthly Cost€2/mo
Microsoft Clarity
Session Replay
Costly
Execution297ms
Transfer25 KB
Monthly Cost€2/mo
www.gstatic.com
Other
Costly
Execution284ms
Transfer346 KB
Unused71%
Monthly Cost€2/mo
www.inventive-acute.com
Other
Costly
Execution203ms
Transfer39 KB
Monthly Cost€1/mo
static.klaviyo.com
Other
Optional
Execution153ms
Transfer15 KB
Monthly Cost€1/mo
LinkedIn Insight
Advertising
Optional
Execution111ms
Transfer21 KB
Monthly Cost€1/mo
static.klaviyo.com
Other
Optional
Execution107ms
Transfer20 KB
Monthly Cost€1/mo
static.klaviyo.com
Other
Optional
Execution88ms
Transfer9 KB
Monthly Cost€0/mo
static.klaviyo.com
Other
Optional
Execution78ms
Transfer21 KB
Monthly Cost€0/mo
s.ksrndkehqnwntyxlhgto.com
Other
Optional
Execution77ms
Transfer9 KB
Monthly Cost€0/mo
cdn.prod.website-files.com
Other
Optional
Execution72ms
Transfer7 KB
Monthly Cost€0/mo
jsDelivr
CDN
Optional
Execution66ms
Transfer11 KB
Monthly Cost€0/mo
d3e54v103j8qbb.cloudfront.net
Other
Optional
Execution65ms
Transfer30 KB
Monthly Cost€0/mo
static.klaviyo.com
Other
Optional
Execution64ms
Transfer0 KB
Monthly Cost€0/mo
www.gstatic.com
Other
Optional
Execution63ms
Transfer20 KB
Monthly Cost€0/mo
cdn.prod.website-files.com
Other
Optional
Execution56ms
Transfer3 KB
Monthly Cost€0/mo
cdn.prod.website-files.com
Other
Optional
Execution54ms
Transfer9 KB
Monthly Cost€0/mo
cdn.prod.website-files.com
Other
Optional
Execution50ms
Transfer1 KB
Monthly Cost€0/mo
These scripts may cost more than they're worth
Google Tag Manager adds 609ms and costs ~€3/month
cdn.prod.website-files.com adds 473ms and costs ~€3/month
Google Tag Manager adds 470ms and costs ~€2/month
cdn.prod.website-files.com adds 452ms and costs ~€2/month
Google Tag Manager adds 442ms and costs ~€2/month
Microsoft Clarity adds 297ms and costs ~€2/month
www.gstatic.com adds 284ms and costs ~€2/month
www.inventive-acute.com adds 203ms and costs ~€1/month
79% of JavaScript execution time is spent on third-party scripts. Consider auditing which scripts are essential.
Why this matters
When third-party JS execution time exceeds your own, performance gains from frontend work are capped by code you don't own.
Learn more ▾▴
Every millisecond of third-party JS competes with your own for main-thread time. If their share is bigger than yours, optimization on your code base barely moves the needle. Audit, defer, or remove third-parties before further frontend optimization. Use Lighthouse's third-party audit to identify the worst offenders.
Source: web.dev
Google Tag Manager takes 609ms 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
cdn.prod.website-files.com takes 473ms 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 470ms 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
cdn.prod.website-files.com takes 452ms 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
73% of Stripe'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
Google Tag Manager takes 442ms 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
Microsoft Clarity takes 297ms 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
www.gstatic.com takes 284ms 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
71% of www.gstatic.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
www.inventive-acute.com takes 203ms 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.