Adding a Cache-Control header can significantly improve repeat-visit performance.
C
Image Optimization
Action
30 images, 0 KB saveable
REVIEW
30 images, 0 KB saveable
Warning::
!
https://asset.jmir.pub/resources/images/partners/c... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://asset.jmir.pub/resources/images/partners/o... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://asset.jmir.pub/placeholder.svg is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://asset.jmir.pub/resources/images/partners/o... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://asset.jmir.pub/resources/images/logos/JMIR... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://asset.jmir.pub/resources/images/partners/c... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://19668141.fs1.hubspotusercontent-na1.net/hu... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://asset.jmir.pub/resources/images/partners/t... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://asset.jmir.pub/resources/images/partners/O... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
30images425 KB
0oversized-0 KB
23legacy format
9missing 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
Image without explicit width/height — browser can't reserve space; CLS jumps when image loads.
Source: web.dev / Core Web Vitals
C
Green Hosting
Action
Whether the site is served from green-energy infrastructure
REVIEW
Green Hosting
No green hosting detected
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
6 fonts (398 KB)
PASS
6 fonts (398 KB)
Info::
i
6 font(s) use font-display: swap (FOUT risk but functional)
Web fonts
6
398 KB total
Render-blocking
0
of 6
Dominant font-display
swap
Most common across fonts
Font loading timeline
TransferFOIT (block)FOUT (swap)
KFO7CnqEu92Fr1ME7kSn66a...woff2swap
Size37 KB
Load time36 ms
Start602 ms
RiskFOUT — text flashes from fallback to web font
fa-solid-900.woff2woff2swap
Size153 KB
Load time172 ms
Start603 ms
RiskFOUT — text flashes from fallback to web font
Subset this font — over 100 KB suggests Latin Extended or full glyph coverage that most pages don't need
KFO5CnqEu92Fr1Mu53ZEC9_...woff2swap
Size41 KB
Load time37 ms
Start637 ms
RiskFOUT — text flashes from fallback to web font
fa-brands-400.woff2woff2swap
Size116 KB
Load time164 ms
Start637 ms
RiskFOUT — text flashes from fallback to web font
Subset this font — over 100 KB suggests Latin Extended or full glyph coverage that most pages don't need
KFO7CnqEu92Fr1ME7kSn66a...woff2swap
Size16 KB
Load time25 ms
Start2.2 s
RiskFOUT — text flashes from fallback to web font
KFO7CnqEu92Fr1ME7kSn66a...woff2swap
Size35 KB
Load time30 ms
Start2.3 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)
Fixing the unchecked items could save ~135 KB and ~270 ms
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
51 hints, 0 missing preconnects
PASS
51 hints, 0 missing preconnects
Info::
✓
Page uses 51 resource hint(s)
Current Resource Hints
preconnect
1
preload
+40
50
dns-prefetch—
prefetch—
51 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
Network Waterfall
161 requests over 3897ms
INFO
HTML JavaScript CSS Images Fonts XHR/Fetch Other
Third-Party Script Cost
Per-script blocking time, transfer cost, and cache headers
INFO
72%of JavaScript execution is third-party
First-party Third-party6339ms · 1692KB · €69/mo
Script
Category
Execution
Transfer
Unused
Monthly Cost
Verdict
8b5f0effe65c.us-east-2.sdk.awswaf.com
8b5f0effe65c.us-east-2.sdk.awswaf.com
Other
1238ms
0 KB
—
€13/mo
Costly
Unattributable
Unattributable
Other
835ms
0 KB
—
€9/mo
Costly
HubSpot Analytics
js.hs-analytics.net
Analytics
711ms
43 KB
—
€8/mo
Costly
Zendesk Widget
static.zdassets.com
Customer Support
644ms
261 KB
43%
€7/mo
Costly
jsDelivr
cdn.jsdelivr.net
CDN
597ms
10 KB
—
€6/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
381ms
175 KB
39%
€4/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
337ms
156 KB
38%
€4/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
247ms
171 KB
40%
€3/mo
Costly
app.enzuzo.com
app.enzuzo.com
Other
202ms
131 KB
—
€2/mo
Costly
Google Tag Manager
www.googletagmanager.com
Tag Manager
191ms
125 KB
48%
€2/mo
Optional
Google Tag Manager
www.googletagmanager.com
Tag Manager
169ms
145 KB
44%
€2/mo
Optional
Zendesk Widget
static.zdassets.com
Customer Support
149ms
6 KB
—
€2/mo
Optional
js.hscollectedforms.net
js.hscollectedforms.net
Other
121ms
26 KB
—
€1/mo
Optional
Twitter/X Pixel
static.ads-twitter.com
Advertising
101ms
13 KB
—
€1/mo
Optional
badge.dimensions.ai
badge.dimensions.ai
Other
95ms
81 KB
29%
€1/mo
Optional
LinkedIn Insight
snap.licdn.com
Advertising
89ms
19 KB
—
€1/mo
Optional
Google Tag Manager
www.googletagmanager.com
Tag Manager
62ms
125 KB
74%
€1/mo
Optional
js.hubspot.com
js.hubspot.com
Other
58ms
28 KB
—
€1/mo
Optional
embed.altmetric.com
embed.altmetric.com
Other
57ms
31 KB
—
€1/mo
Optional
Google Tag Manager
www.googletagmanager.com
Tag Manager
55ms
145 KB
73%
€1/mo
Optional
8b5f0effe65c.us-east-2.sdk.awswaf.com
Other
Costly
Execution1238ms
Transfer0 KB
Monthly Cost€13/mo
Unattributable
Other
Costly
Execution835ms
Transfer0 KB
Monthly Cost€9/mo
HubSpot Analytics
Analytics
Costly
Execution711ms
Transfer43 KB
Monthly Cost€8/mo
Zendesk Widget
Customer Support
Costly
Execution644ms
Transfer261 KB
Unused43%
Monthly Cost€7/mo
jsDelivr
CDN
Costly
Execution597ms
Transfer10 KB
Monthly Cost€6/mo
Google Tag Manager
Tag Manager
Costly
Execution381ms
Transfer175 KB
Unused39%
Monthly Cost€4/mo
Google Tag Manager
Tag Manager
Costly
Execution337ms
Transfer156 KB
Unused38%
Monthly Cost€4/mo
Google Tag Manager
Tag Manager
Costly
Execution247ms
Transfer171 KB
Unused40%
Monthly Cost€3/mo
app.enzuzo.com
Other
Costly
Execution202ms
Transfer131 KB
Monthly Cost€2/mo
Google Tag Manager
Tag Manager
Optional
Execution191ms
Transfer125 KB
Unused48%
Monthly Cost€2/mo
Google Tag Manager
Tag Manager
Optional
Execution169ms
Transfer145 KB
Unused44%
Monthly Cost€2/mo
Zendesk Widget
Customer Support
Optional
Execution149ms
Transfer6 KB
Monthly Cost€2/mo
js.hscollectedforms.net
Other
Optional
Execution121ms
Transfer26 KB
Monthly Cost€1/mo
Twitter/X Pixel
Advertising
Optional
Execution101ms
Transfer13 KB
Monthly Cost€1/mo
badge.dimensions.ai
Other
Optional
Execution95ms
Transfer81 KB
Unused29%
Monthly Cost€1/mo
LinkedIn Insight
Advertising
Optional
Execution89ms
Transfer19 KB
Monthly Cost€1/mo
Google Tag Manager
Tag Manager
Optional
Execution62ms
Transfer125 KB
Unused74%
Monthly Cost€1/mo
js.hubspot.com
Other
Optional
Execution58ms
Transfer28 KB
Monthly Cost€1/mo
embed.altmetric.com
Other
Optional
Execution57ms
Transfer31 KB
Monthly Cost€1/mo
Google Tag Manager
Tag Manager
Optional
Execution55ms
Transfer145 KB
Unused73%
Monthly Cost€1/mo
These scripts may cost more than they're worth
8b5f0effe65c.us-east-2.sdk.awswaf.com adds 1238ms and costs ~€13/month
Unattributable adds 835ms and costs ~€9/month
HubSpot Analytics adds 711ms and costs ~€8/month
Zendesk Widget adds 644ms and costs ~€7/month
jsDelivr adds 597ms and costs ~€6/month
Google Tag Manager adds 381ms and costs ~€4/month
Google Tag Manager adds 337ms and costs ~€4/month
Google Tag Manager adds 247ms and costs ~€3/month
app.enzuzo.com adds 202ms and costs ~€2/month
72% 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
8b5f0effe65c.us-east-2.sdk.awswaf.com takes 1238ms 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 835ms 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
HubSpot Analytics takes 711ms 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
Zendesk Widget takes 644ms 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
jsDelivr takes 597ms 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 381ms 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 337ms 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.
Source: web.dev
app.enzuzo.com takes 202ms 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 Google Tag Manager'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
73% of Google Tag Manager'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.