Performance
· 27 checks — Lighthouse + waterfall + sustainability rolled into one auditable list.Performance-focused optimization plan with CWV assessment, top offenders, and time estimates
First Contentful Paint First Contentful Paint — how long until the browser renders the first piece of content. Under 1.8s is good.
5.98 s
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
15.64 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
578 ms
Cumulative Layout Shift Cumulative Layout Shift — measures visual stability. How much the page layout shifts during loading. Under 0.1 is good.
0.000
Speed Index Speed Index — how quickly content is visually displayed during load. Under 3.4s is good.
7.44 s
Time to Interactive Time to Interactive — how long until the page is fully interactive and responds to user input. Under 3.8s is good.
15.99 s
Page Load Progression
FPage Weight BudgetAction9.5 MB transferred, 101 requestsFIX
Convert images to WebP/AVIF and resize to display dimensions to reduce transfer size.
Image bandwidth is high — modern formats (WebP/AVIF) and resizing typically cut it 50%+.
Source: web.dev
Subset fonts to include only used characters, or switch to system font stacks.
Font payload is large — subset to used glyphs only, or fall back to system fonts (zero load time).
Source: web.dev font loading
Large JavaScript bundles delay interactivity. Split code by route or defer non-critical scripts.
JavaScript bundle is large — code-split routes and lazy-load off-screen components to defer.
Source: web.dev
Each request adds latency. Bundle small files, use sprites, or eliminate unnecessary requests.
High HTTP request count — bundling, sprite-ing, and HTTP/2 server push can reduce per-request overhead.
Source: web.dev
DThird-Party ImpactAction65% third-party, 0 ms blockingFIX
DJS Execution CostAction3337ms total JS executionFIX
Main Thread Breakdown
| Script | Total | Scripting | Parse/Compile | Party |
|---|---|---|---|---|
| Unattributable | 858ms | 93ms | 0ms | 3rd |
| https://www.webasto.com/etc.clientlibs/webasto/clientlibs/clientlib-site.lc-6e01ef64bee544f1920c68a4712fa44f-lc.min.js | 682ms | 414ms | 33ms | 1st |
| https://www.webasto.com/etc.clientlibs/webasto/clientlibs/clientlib-site/resources/chunks/3935-3ec8575817bcd34636df.js | 464ms | 404ms | 12ms | 1st |
| https://app.usercentrics.eu/browser-ui/3.101.0/index.module.js | 320ms | 231ms | 1ms | 3rd |
| https://scripts.clarity.ms/0.8.62/clarity.js | 264ms | 217ms | 6ms | 3rd |
| https://assets.adobedtm.com/04196e8f7bcd/74f40dedb607/launch-452613f09356.min.js | 244ms | 218ms | 11ms | 3rd |
| https://www.googletagmanager.com/gtag/js?id=AW-11140615971 | 228ms | 192ms | 35ms | 3rd |
| https://www.webasto.com/en-int.html | 176ms | 14ms | 4ms | 1st |
| https://www.webasto.com/etc.clientlibs/webasto/clientlibs/clientlib-base.lc-eaf7091298de3b1d12b018828878240a-lc.min.js | 101ms | 81ms | 15ms | 1st |
DPage Weight InventoryAction101 resources · 9.5 MB · 199 KB savings availableFIX
~199.3 KiB of savings available
| # | Resource | Type | Size | Cache | Unused | 3rd party | Issues |
|---|---|---|---|---|---|---|---|
| — | — | ||||||
| 101 resources | 9.5 MiB | ||||||
BImage Optimization24 images, 0 KB saveableREVIEW
CJS BundlesAction37 scripts, 199 KB unusedREVIEW
Downloaded but never executed on this page.
| Script | Size | Unused | Minified | Party |
|---|---|---|---|---|
| https://www.googletagmanager.com/gtag/js?id=AW-11140615971 | 147 KB | 60 KB (41%) | ✓ | 3rd |
| https://app.usercentrics.eu/browser-ui/3.101.0/index.module.js | 121 KB | 55 KB (46%) | ✓ | 3rd |
| https://www.webasto.com/etc.clientlibs/webasto/clientlibs/clientlib-site.lc-6e01ef64bee544f1920c68a4712fa44f-lc.min.js | 59 KB | 38 KB (64%) | ✓ | 1st |
| https://app.usercentrics.eu/browser-ui/3.101.0/VirtualServiceItem-ba2ffbd9.js | 49 KB | 26 KB (54%) | ✓ | 3rd |
| https://assets.adobedtm.com/04196e8f7bcd/74f40dedb607/launch-452613f09356.min.js | 46 KB | 21 KB (46%) | ✓ | 3rd |
| https://assets.adobedtm.com/extensions/EP31dbb9c60e404ba1aa6e746d49be6f29/AppMeasurement_Module_ActivityMap.min.js | 2 KB | — | ✓ | 3rd |
| https://www.webasto.com/etc.clientlibs/webasto/clientlibs/clientlib-site/resources/chunks/745-1035fb6e08d9d937c358.js | 0 KB | — | ✓ | 1st |
| https://www.webasto.com/etc.clientlibs/webasto/clientlibs/clientlib-base.lc-eaf7091298de3b1d12b018828878240a-lc.min.js | 18 KB | — | ✗ | 1st |
| https://www.webasto.com/etc.clientlibs/webasto/clientlibs/clientlib-site/resources/chunks/6375-a820979c9731136c85fa.js | 5 KB | — | ✓ | 1st |
| https://www.webasto.com/etc.clientlibs/webasto/clientlibs/clientlib-site/resources/chunks/1423-472071f1e9375c66fa77.js | 3 KB | — | ✓ | 1st |
Consider code splitting or tree shaking to reduce unused code.
This bundle has high unused code — code-split or tree-shake to ship only what executes.
Source: web.dev / Lighthouse coverage
Consider code splitting or tree shaking to reduce unused code.
This bundle has high unused code — code-split or tree-shake to ship only what executes.
Source: web.dev / Lighthouse coverage
Consider code splitting or tree shaking to reduce unused code.
This bundle has high unused code — code-split or tree-shake to ship only what executes.
Source: web.dev / Lighthouse coverage
Consider code splitting or tree shaking to reduce unused code.
This bundle has high unused code — code-split or tree-shake to ship only what executes.
Source: web.dev / Lighthouse coverage
Consider code splitting or tree shaking to reduce unused code.
This bundle has high unused code — code-split or tree-shake to ship only what executes.
Source: web.dev / Lighthouse coverage
BHTTP/3 (QUIC)HTTP/3 not advertisedREVIEW
CCompression AlgorithmActionMain response served uncompressedREVIEW
BServer-Timing ObservabilityNo Server-Timing header foundREVIEW
CGreen HostingActionWhether the site is served from green-energy infrastructureREVIEW
Green Hosting
No green hosting detected
A+Text CompressionAll text resources are compressedPASS
A+Font Loading4 fonts (715 KB)PASS
Web fonts
4
715 KB total
Render-blocking
0
of 4
Dominant font-display
swap
Most common across fonts
Font loading timeline
- Subset this font — over 100 KB suggests Latin Extended or full glyph coverage that most pages don't need
- Subset this font — over 100 KB suggests Latin Extended or full glyph coverage that most pages don't need
- Subset this font — over 100 KB suggests Latin Extended or full glyph coverage that most pages don't need
- Subset this font — over 100 KB suggests Latin Extended or full glyph coverage that most pages don't need
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 ~357 KB and ~714 ms
A+Resource CachingAll resources properly cachedPASS
A+Critical Rendering PathNo render-blocking resourcesPASS
AResource Hints2 hints, 0 missing preconnectsPASS
Current Resource Hints
2 resource hints configured
Fonts are always fetched as crossorigin=anonymous; a preload without the attribute creates a different cache key, so the browser refetches when the actual font request happens. Sample: /etc.clientlibs/webasto/clientlibs/clientlib-site/resources/fonts/NotoSans-Regular.woff2, /etc.clientlibs/webasto/clientlibs/clientlib-site/resources/fonts/NotoSans-Black.woff2. Add `crossorigin` (or `crossorigin="anonymous"`) to each preload.
Performance issues directly impact user engagement and conversion rates.
A+LCP Image PreloadLCP preload audit not availablePASS
A+Main HTML Cache-ControlMain HTML max-age=300 (≤ 5min) is appropriatePASS
A+Server Response Intelligence1 server-response signal(s) detectedPASS
A+Render-Blocking ResourcesNo render-blocking resources detectedPASS
A+Third-Party ResourcesNo third-party resources detectedPASS
AJavaScript Blocking1 JS blocking issue(s) detectedPASS
A+CSS Performance DepthNo CSS performance depth issues detectedPASS
AHTTP Cachingmax-age=300 (5 minutes)PASS
max-age=300
| Directive | Value | Meaning |
|---|---|---|
| max-age | 300 | Cache for 5 minutes |
Network Waterfall101 requests over 3563msINFO
Third-Party Script CostPer-script blocking time, transfer cost, and cache headersINFO
| Script | Category | Execution | Transfer | Unused | Monthly Cost | Verdict |
|---|---|---|---|---|---|---|
Unattributable Unattributable | Other | 858ms | 0 KB | — | €9/mo | Costly |
app.usercentrics.eu app.usercentrics.eu | Other | 320ms | 121 KB | 46% | €3/mo | Costly |
Microsoft Clarity scripts.clarity.ms | Session Replay | 264ms | 25 KB | — | €3/mo | Costly |
assets.adobedtm.com assets.adobedtm.com | Other | 244ms | 46 KB | 46% | €3/mo | Costly |
Google Tag Manager www.googletagmanager.com | Tag Manager | 228ms | 147 KB | 41% | €2/mo | Costly |
These scripts may cost more than they're worth
- Unattributable adds 858ms and costs ~€9/month
- app.usercentrics.eu adds 320ms and costs ~€3/month
- Microsoft Clarity adds 264ms and costs ~€3/month
- assets.adobedtm.com adds 244ms and costs ~€3/month
- Google Tag Manager adds 228ms and costs ~€2/month
57% of JavaScript execution time comes from third-party scripts.
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 858ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
app.usercentrics.eu takes 320ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
Microsoft Clarity takes 264ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
assets.adobedtm.com takes 244ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
Google Tag Manager takes 228ms of CPU time. Consider loading it asynchronously or replacing it with a lighter alternative.
This script has high main-thread execution time — optimize hot paths or defer.
Source: web.dev
Real-User Performance (CrUX)Field metrics from the Chrome User Experience ReportINFO
Chrome User Experience (CrUX)
Real-user metrics from the Chrome UX Report (2026-04-11 — 2026-05-08)
LCP (p75)
1258 ms
93% good
INP (p75)
83 ms
96% good
CLS (p75)
0.000
98% good
FCP (p75)
1015 ms
TTFB (p75)
678 ms
Image Optimization45 images, 1296 KB total, 948 KB wastedINFO
Image Optimization Audit
Total Images
45
Total Size
1296 KB
Oversized
8
Wasted
948 KB