Performance
· 25 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.
6.28 s
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
17.08 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
385 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.32 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.
17.10 s
Page Load Progression
FPage Weight BudgetAction2.7 MB transferred, 29 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
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
DThird-Party ImpactAction99% third-party, 0 ms blockingFIX
DPage Weight InventoryAction29 resources · 2.7 MB · 275 KB savings availableFIX
~275.0 KiB of savings available
| # | Resource | Type | Size | Cache | Unused | 3rd party | Issues |
|---|---|---|---|---|---|---|---|
| — | — | ||||||
| 29 resources | 2.7 MiB | ||||||
DHTTP CachingActionno-store (uncacheable)FIX
no-cache, no-store, max-age=0, must-revalidate
| Directive | Value | Meaning |
|---|---|---|
| no-cache | — | Cache but always revalidate first |
| no-store | — | Never cache this response |
| max-age | 0 | Cache for 0 seconds |
| must-revalidate | — | Must recheck with server after expiry |
CJS Execution CostAction1708ms total JS executionREVIEW
Main Thread Breakdown
| Script | Total | Scripting | Parse/Compile | Party |
|---|---|---|---|---|
| https://www.gstatic.com/_/atari/_/js/k=atari.vw.en_US.sR0b4I27cvg.O/am=CCBwAAg/d=1/rs=AGEqA5nxGdhBpBnU1sbMtXeudyt80nxoZQ/m=view | 493ms | 245ms | 45ms | 3rd |
| https://www.fabsound.ie/ | 403ms | 37ms | 17ms | 1st |
| Unattributable | 280ms | 25ms | 0ms | 3rd |
| https://www.gstatic.com/_/atari/_/js/k=atari.vw.en_US.sR0b4I27cvg.O/am=CCBwAAg/d=0/rs=AGEqA5nxGdhBpBnU1sbMtXeudyt80nxoZQ/m=LLHPdb,sy2w,ws9Tlc,cEt90b,sy74,KUM7Z,MpJwZc,n73qwf,A4UTCb,sy2v,L1AAkb,aW3pY,RyvaUb,sy2r,sy37,owcnme,sy38,sy39,O6y8ed,mzzZzc,CHCSlb,qAKInc,sy3m,YXyON,sy3r,sy3q,iTeaXe,sy65,abQiW,sy12,sy11,sy10,syv,syu,sy3a,pxq3x,sy3b,syo,sy3c,sy3w,syw,sy28,sy3d,sy4t,sy64,EGNJFf,V3dDOb,sy2u,ENNBBf,syh,syf,syd,syn,syc,sy3g,yf2Bs,sy1c,sy1f,sy1b,sy19,sy1j,sy1h,sy1k,sy1m,sy1n,sy1i,sy1e,sy1a,sy1g,sy1o,sy1d,syr,sy35,fmklff,sy45,TGYpv,sy9,syy,sy4h,sy20,sy1z,sy4u,sy5z,gK4msf,XVMNvd,sy71,yxTchf,sy72,sy73,xQtZb,iSvg6e,N5Lqpc,sy3u,sy3v,sy3s,sy3t,sy3p,sy3x,sy3y,pc62j,qEW1W,oNFsLb,syi,syl,sym,sy3h,sy3i,iwfZq,m9oV,sy2y,RAnnUd,i5dxUd,sy2x,sy2z,sy30,sy31,sy2d,etBPYb,i5H9N,SU9Rsf,sy32,sy33,sy34,sy2b,sy2e,PHUIyb,qNG0Fc,sys,syt,syx,qTnoBf,NJ1rfe,ywOR5c,sy36,sye,wg1P6b,EcW08c,sy3e,sy3f,t8tqF,qddgKe,sy67,SM1lmd,eEDsnd,sy2c,sy3k,sy2f,sy23,sy2s,sy3j,sy3l,oDd24c,yUHiM,syz,syq,RRzQxe,sya,sy14,yyxWAc,sy0,sy1,sy7,sy6,sy2a,sy29,sy27,sy2g,sy2h,sy1s,sy43,sy50,syp,sy16,syb,sy4m,sy5s,sy15,fNFZH,sy66,sy3o,sy4s,sy2i,i16Xfc,sy4g,zJMuOc,RrXLpc,sy46,sy48,sy4a,sy4i,sy4j,tCGzVe,Ej8J2c,odWSx,cgRV2c,sy1y,sy3n,sy58,o1L5Wb,X4BaPc,vVEdxc,sy4,sy5,sy4l,RQOkef,HXO1uc,sy24,sy25,sy8,sy13,sy1u,sy1v,sy22,gaMBzf,sy5t,sy26,fVuHhf,sy5x,j1RDQb,syg,sy4o,sy4w,sy4v,sy4q,sy4n,sy4r,sy1r,sy4k,sy4p,Md9ENb | 207ms | 161ms | 39ms | 3rd |
| https://apis.google.com/_/scs/abc-static/_/js/k=gapi.lb.en.gSqfLc8WnvU.O/m=client/rt=j/sv=1/d=1/ed=1/rs=AHpOoo_cXXGArE2dtw6vkGR2NQ_1f5L3AQ/cb=gapi.loaded_0?le=scs | 124ms | 88ms | 34ms | 3rd |
| https://www.gstatic.com/_/atari/_/js/k=atari.vw.en_US.sR0b4I27cvg.O/am=CCBwAAg/d=0/rs=AGEqA5nxGdhBpBnU1sbMtXeudyt80nxoZQ/m=sy63,TRvtze | 83ms | 77ms | 0ms | 3rd |
| https://www.gstatic.com/_/atari/_/ss/k=atari.vw.bdHXNY5ICL8.L.W.O/am=CCBwAAg/d=1/rs=AGEqA5nc4YUGyvjKvFKlCsb5hNySwk_NVg | 67ms | 0ms | 0ms | 3rd |
| https://www.gstatic.com/_/atari/_/js/k=atari.vw.en_US.sR0b4I27cvg.O/am=CCBwAAg/d=0/rs=AGEqA5nxGdhBpBnU1sbMtXeudyt80nxoZQ/m=sy41,sy42,sy44,sy47,fuVYe,sy49,sy4b,sy4c,CG0Qwb | 51ms | 45ms | 5ms | 3rd |
CJS BundlesAction10 scripts, 275 KB unusedREVIEW
Downloaded but never executed on this page.
| Script | Size | Unused | Minified | Party |
|---|---|---|---|---|
| https://www.gstatic.com/_/atari/_/js/k=atari.vw.en_US.sR0b4I27cvg.O/am=CCBwAAg/d=0/rs=AGEqA5nxGdhBpBnU1sbMtXeudyt80nxoZQ/m=LLHPdb,sy2w,ws9Tlc,cEt90b,sy74,KUM7Z,MpJwZc,n73qwf,A4UTCb,sy2v,L1AAkb,aW3pY,RyvaUb,sy2r,sy37,owcnme,sy38,sy39,O6y8ed,mzzZzc,CHCSlb,qAKInc,sy3m,YXyON,sy3r,sy3q,iTeaXe,sy65,abQiW,sy12,sy11,sy10,syv,syu,sy3a,pxq3x,sy3b,syo,sy3c,sy3w,syw,sy28,sy3d,sy4t,sy64,EGNJFf,V3dDOb,sy2u,ENNBBf,syh,syf,syd,syn,syc,sy3g,yf2Bs,sy1c,sy1f,sy1b,sy19,sy1j,sy1h,sy1k,sy1m,sy1n,sy1i,sy1e,sy1a,sy1g,sy1o,sy1d,syr,sy35,fmklff,sy45,TGYpv,sy9,syy,sy4h,sy20,sy1z,sy4u,sy5z,gK4msf,XVMNvd,sy71,yxTchf,sy72,sy73,xQtZb,iSvg6e,N5Lqpc,sy3u,sy3v,sy3s,sy3t,sy3p,sy3x,sy3y,pc62j,qEW1W,oNFsLb,syi,syl,sym,sy3h,sy3i,iwfZq,m9oV,sy2y,RAnnUd,i5dxUd,sy2x,sy2z,sy30,sy31,sy2d,etBPYb,i5H9N,SU9Rsf,sy32,sy33,sy34,sy2b,sy2e,PHUIyb,qNG0Fc,sys,syt,syx,qTnoBf,NJ1rfe,ywOR5c,sy36,sye,wg1P6b,EcW08c,sy3e,sy3f,t8tqF,qddgKe,sy67,SM1lmd,eEDsnd,sy2c,sy3k,sy2f,sy23,sy2s,sy3j,sy3l,oDd24c,yUHiM,syz,syq,RRzQxe,sya,sy14,yyxWAc,sy0,sy1,sy7,sy6,sy2a,sy29,sy27,sy2g,sy2h,sy1s,sy43,sy50,syp,sy16,syb,sy4m,sy5s,sy15,fNFZH,sy66,sy3o,sy4s,sy2i,i16Xfc,sy4g,zJMuOc,RrXLpc,sy46,sy48,sy4a,sy4i,sy4j,tCGzVe,Ej8J2c,odWSx,cgRV2c,sy1y,sy3n,sy58,o1L5Wb,X4BaPc,vVEdxc,sy4,sy5,sy4l,RQOkef,HXO1uc,sy24,sy25,sy8,sy13,sy1u,sy1v,sy22,gaMBzf,sy5t,sy26,fVuHhf,sy5x,j1RDQb,syg,sy4o,sy4w,sy4v,sy4q,sy4n,sy4r,sy1r,sy4k,sy4p,Md9ENb | 128 KB | 93 KB (73%) | ✓ | 3rd |
| https://apis.google.com/_/scs/abc-static/_/js/k=gapi.lb.en.gSqfLc8WnvU.O/m=client/rt=j/sv=1/d=1/ed=1/rs=AHpOoo_cXXGArE2dtw6vkGR2NQ_1f5L3AQ/cb=gapi.loaded_0?le=scs | 108 KB | 80 KB (74%) | ✓ | 3rd |
| https://www.gstatic.com/_/atari/_/js/k=atari.vw.en_US.sR0b4I27cvg.O/am=CCBwAAg/d=1/rs=AGEqA5nxGdhBpBnU1sbMtXeudyt80nxoZQ/m=view | 169 KB | 71 KB (42%) | ✓ | 3rd |
| https://www.gstatic.com/feedback/js/help/prod/service/lazy.min.js | 39 KB | 31 KB (80%) | ✓ | 3rd |
| https://apis.google.com/js/client.js?onload=gapiLoaded | 6 KB | — | ✓ | 3rd |
| https://www.gstatic.com/_/atari/_/js/k=atari.vw.en_US.sR0b4I27cvg.O/am=CCBwAAg/d=0/rs=AGEqA5nxGdhBpBnU1sbMtXeudyt80nxoZQ/m=sy4e,sy4f,sy4d,FoQBg | 14 KB | — | ✓ | 3rd |
| https://www.gstatic.com/_/atari/_/js/k=atari.vw.en_US.sR0b4I27cvg.O/am=CCBwAAg/d=0/rs=AGEqA5nxGdhBpBnU1sbMtXeudyt80nxoZQ/m=sy63,TRvtze | 1 KB | — | ✓ | 3rd |
| https://www.gstatic.com/_/atari/_/js/k=atari.vw.en_US.sR0b4I27cvg.O/am=CCBwAAg/d=0/rs=AGEqA5nxGdhBpBnU1sbMtXeudyt80nxoZQ/m=sy1p,sy1x,Ae65rd,rCcCxc,sy60,gJzDyc,uu7UOe,CuaHnc,sy69,uY3Nvd,sy68,soHxf,mxS5xe,sy5r,HYv29e | 26 KB | — | ✓ | 3rd |
| https://www.gstatic.com/_/atari/_/js/k=atari.vw.en_US.sR0b4I27cvg.O/am=CCBwAAg/d=0/rs=AGEqA5nxGdhBpBnU1sbMtXeudyt80nxoZQ/m=sy41,sy42,sy44,sy47,fuVYe,sy49,sy4b,sy4c,CG0Qwb | 16 KB | — | ✓ | 3rd |
| https://www.gstatic.com/_/atari/_/js/k=atari.vw.en_US.sR0b4I27cvg.O/am=CCBwAAg/d=0/rs=AGEqA5nxGdhBpBnU1sbMtXeudyt80nxoZQ/m=IZT63,YYmHzb,vfuNJf,sy6o,sy6t,sy6v,sy77,sy75,sy76,siKnQd,sy6n,sy6u,sy6w,YNjGDd,sy6x,PrPYRd,iFQyKf,hc6Ubd,sy78,SpsfSb,sy6q,sy6s,wR5FRb,pXdRYb,dIoSBb,zbML3c | 11 KB | — | ✓ | 3rd |
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
AImage Optimization3 images, 0 KB saveablePASS
A+Font Loading4 fonts (149 KB)PASS
Web fonts
4
149 KB total
Render-blocking
0
of 4
Dominant font-display
swap
Most common across fonts
Font loading timeline
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 CachingAll resources properly cachedPASS
A+Critical Rendering PathNo render-blocking resourcesPASS
A+Resource HintsNo optimization neededPASS
A+LCP Image PreloadLCP preload audit not availablePASS
A+Main HTML Cache-ControlMain HTML uses no-store -- correct for sensitive/dynamic contentPASS
A+Server Response Intelligence2 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
Network Waterfall29 requests over 3979msINFO
Third-Party Script CostPer-script blocking time, transfer cost, and cache headersINFO
| Script | Category | Execution | Transfer | Unused | Monthly Cost | Verdict |
|---|---|---|---|---|---|---|
www.gstatic.com www.gstatic.com | Other | 493ms | 169 KB | 42% | €5/mo | Costly |
Unattributable Unattributable | Other | 280ms | 0 KB | — | €3/mo | Costly |
www.gstatic.com www.gstatic.com | Other | 207ms | 128 KB | 73% | €2/mo | Costly |
apis.google.com apis.google.com | Other | 124ms | 108 KB | 74% | €1/mo | Optional |
www.gstatic.com www.gstatic.com | Other | 83ms | 1 KB | — | €1/mo | Optional |
www.gstatic.com www.gstatic.com | Other | 67ms | 190 KB | — | €1/mo | Optional |
www.gstatic.com www.gstatic.com | Other | 51ms | 16 KB | — | €1/mo | Optional |
These scripts may cost more than they're worth
- www.gstatic.com adds 493ms and costs ~€5/month
- Unattributable adds 280ms and costs ~€3/month
- www.gstatic.com adds 207ms and costs ~€2/month
76% of JavaScript execution time is spent on third-party scripts. Consider auditing which scripts are essential.
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.gstatic.com takes 493ms 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
Unattributable takes 280ms 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
www.gstatic.com takes 207ms 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
73% of www.gstatic.com's code is unused. The script may be loading features you don't use.
Bundle has high unused-code ratio — tree-shaking and route-splitting recover the wasted bytes.
Source: web.dev
74% of apis.google.com's code is unused. The script may be loading features you don't use.
Bundle has high unused-code ratio — tree-shaking and route-splitting recover the wasted bytes.
Source: web.dev