JavaScript is 913 KB — consider code splitting or lazy loading
Large JavaScript bundles delay interactivity. Split code by route or defer non-critical scripts.
Got: 913 KB
Info::
i
CSS is 294 KB — consider purging unused styles
Remove unused CSS rules with tools like PurgeCSS to reduce stylesheet size.
Got: 294 KB
Info::
i
87 HTTP requests
Info::
i
Estimated 0.41 g CO2 per page load
2.0 MBtransferred
87 requests
0.41 g CO2 per page load
JavaScript912.7 KiB46%
Images514.3 KiB26%
CSS294.3 KiB15%
Fonts195.2 KiB10%
Other63.7 KiB3%
HTML19.2 KiB1%
Other6.6 KiB0%
Other0 B0%
02.4 MB4.9 MB
Approaching limit
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
Remove unused CSS rules with tools like PurgeCSS to reduce stylesheet size.
Why this matters
CSS bundle is large — purge unused styles (PurgeCSS, Tailwind JIT) to reduce CSS payload.
Source: web.dev
C
Image Optimization
Action
37 images, 0 KB saveable
REVIEW
37 images, 0 KB saveable
Warning::
!
https://www.kfw.de/inlandsfoerderung/Bauen-Wohnen-... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://www.kfw.de/Bilder/Karriere/Bilder-2024/Her... 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://www.kfw.de/Technische-Medien/Logos/kfw_log... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://app.slidepresenter.com/api/gateway/present... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
Warning::
!
https://app.slidepresenter.com/api/gateway/present... is missing width/height — may cause layout shift
Set explicit width and height to prevent CLS.
37images514 KB
0oversized-0 KB
34legacy format
6missing 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
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
C
Green Hosting
Action
Whether the site is served from green-energy infrastructure
REVIEW
Green Hosting
No green hosting detected
B
HTTP Caching
max-age=0
REVIEW
max-age=0
Info::
✓
Cache-Control header is set
Got: max-age=0
Info::
i
No ETag or Last-Modified header
Conditional requests (304 Not Modified) are not possible without validators.
Cache-Control
max-age=0
Directive
Value
Meaning
max-age
0
Cache for 0 seconds
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
5 fonts (195 KB)
PASS
5 fonts (195 KB)
Info::
i
5 font(s) use font-display: swap (FOUT risk but functional)
Web fonts
5
195 KB total
Render-blocking
0
of 5
Dominant font-display
swap
Most common across fonts
Font loading timeline
TransferFOIT (block)FOUT (swap)
KFWCentroSans-Regular87...woff2swap
Size44 KB
Load time39 ms
Start773 ms
RiskFOUT — text flashes from fallback to web font
kfw-iconsfbcdb49867bf83...woff2swap
Size17 KB
Load time39 ms
Start774 ms
RiskFOUT — text flashes from fallback to web font
KFWCentroSans-Medium1ca...woff2swap
Size44 KB
Load time59 ms
Start774 ms
RiskFOUT — text flashes from fallback to web font
KFWCentroSans-Bold76786...woff2swap
Size44 KB
Load time40 ms
Start2.2 s
RiskFOUT — text flashes from fallback to web font
KFWCentroSans-Italic283...woff2swap
Size45 KB
Load time39 ms
Start2.2 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
7 hints, 0 missing preconnects
PASS
7 hints, 0 missing preconnects
Info::
✓
Page uses 7 resource hint(s)
Current Resource Hints
preconnect—
preload
7
dns-prefetch—
prefetch—
7 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
87 requests over 2240ms
INFO
HTML JavaScript CSS Images Fonts XHR/Fetch Other
Third-Party Script Cost
Per-script blocking time, transfer cost, and cache headers
INFO
100%of JavaScript execution is third-party
First-party Third-party5240ms · 1038KB · €57/mo
Script
Category
Execution
Transfer
Unused
Monthly Cost
Verdict
www.kfw.de
www.kfw.de
Other
1759ms
62 KB
92%
€19/mo
Costly
www.kfw.de
www.kfw.de
Other
1731ms
17 KB
—
€19/mo
Costly
Unattributable
Unattributable
Other
489ms
0 KB
—
€5/mo
Costly
www.kfw.de
www.kfw.de
Other
327ms
327 KB
83%
€4/mo
Costly
www.kfw.de
www.kfw.de
Other
284ms
285 KB
—
€3/mo
Costly
data.kfw.de
data.kfw.de
Other
147ms
35 KB
—
€2/mo
Optional
web.cmp.usercentrics.eu
web.cmp.usercentrics.eu
Other
107ms
56 KB
63%
€1/mo
Optional
web.cmp.usercentrics.eu
web.cmp.usercentrics.eu
Other
101ms
18 KB
—
€1/mo
Optional
responder.wt-safetag.com
responder.wt-safetag.com
Other
87ms
53 KB
71%
€1/mo
Optional
www.kfw.de
www.kfw.de
Other
85ms
42 KB
66%
€1/mo
Optional
www.kfw.de
www.kfw.de
Other
74ms
82 KB
73%
€1/mo
Optional
d556wsm.keyingress.de
d556wsm.keyingress.de
Other
50ms
60 KB
70%
€1/mo
Optional
www.kfw.de
Other
Costly
Execution1759ms
Transfer62 KB
Unused92%
Monthly Cost€19/mo
www.kfw.de
Other
Costly
Execution1731ms
Transfer17 KB
Monthly Cost€19/mo
Unattributable
Other
Costly
Execution489ms
Transfer0 KB
Monthly Cost€5/mo
www.kfw.de
Other
Costly
Execution327ms
Transfer327 KB
Unused83%
Monthly Cost€4/mo
www.kfw.de
Other
Costly
Execution284ms
Transfer285 KB
Monthly Cost€3/mo
data.kfw.de
Other
Optional
Execution147ms
Transfer35 KB
Monthly Cost€2/mo
web.cmp.usercentrics.eu
Other
Optional
Execution107ms
Transfer56 KB
Unused63%
Monthly Cost€1/mo
web.cmp.usercentrics.eu
Other
Optional
Execution101ms
Transfer18 KB
Monthly Cost€1/mo
responder.wt-safetag.com
Other
Optional
Execution87ms
Transfer53 KB
Unused71%
Monthly Cost€1/mo
www.kfw.de
Other
Optional
Execution85ms
Transfer42 KB
Unused66%
Monthly Cost€1/mo
www.kfw.de
Other
Optional
Execution74ms
Transfer82 KB
Unused73%
Monthly Cost€1/mo
d556wsm.keyingress.de
Other
Optional
Execution50ms
Transfer60 KB
Unused70%
Monthly Cost€1/mo
These scripts may cost more than they're worth
www.kfw.de adds 1759ms and costs ~€19/month
www.kfw.de adds 1731ms and costs ~€19/month
Unattributable adds 489ms and costs ~€5/month
www.kfw.de adds 327ms and costs ~€4/month
www.kfw.de adds 284ms and costs ~€3/month
100% 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
www.kfw.de takes 1759ms 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
92% of www.kfw.de'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.kfw.de takes 1731ms 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 489ms 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.kfw.de takes 327ms 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
83% of www.kfw.de'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.kfw.de 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
63% of web.cmp.usercentrics.eu'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
71% of responder.wt-safetag.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
66% of www.kfw.de'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 www.kfw.de'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
70% of d556wsm.keyingress.de'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.