Performance
· 17 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.
7.42 s
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
22.60 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
1.64 s
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.
9.07 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.
23.05 s
Page Load Progression
FPage Weight BudgetAction3.4 MB transferred, 207 requestsFIX
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
Remove unused CSS rules with tools like PurgeCSS to reduce stylesheet size.
CSS bundle is large — purge unused styles (PurgeCSS, Tailwind JIT) to reduce CSS payload.
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 ImpactAction100% third-party, 0 ms blockingFIX
FJS Execution CostAction6401ms total JS executionFIX
Main Thread Breakdown
| Script | Total | Scripting | Parse/Compile | Party |
|---|---|---|---|---|
| Unattributable | 809ms | 45ms | 0ms | 3rd |
| https://st.vk.ru/dist/mobile/global-spa.416b0199398f26d2.js | 806ms | 700ms | 102ms | 3rd |
| https://m.vk.ru/ | 739ms | 68ms | 146ms | 3rd |
| https://st.vk.ru/dist/mobile/grip-lib.d54d78c7fd503e5e.js | 628ms | 539ms | 3ms | 3rd |
| https://st.vk.ru/dist/mobile/core_spa.875cbdcdcd59882d.js | 587ms | 572ms | 8ms | 3rd |
| https://st.vk.ru/dist/mobile/vendors~sentry.55bda8e107e56fc8.js | 580ms | 141ms | 8ms | 3rd |
| https://st.vk.ru/dist/mobile/common.df06c62c6ead59c1.js | 490ms | 396ms | 6ms | 3rd |
| https://st.vk.ru/dist/mobile/vendors.d9baf4b720d84b8f.js | 369ms | 181ms | 187ms | 3rd |
| https://st.vk.ru/dist/mobile/vendors~onlyReact.d9d39d84f6e749e0.js | 287ms | 224ms | 11ms | 3rd |
| https://privacy-cs.mail.ru/static/sync-loader.js | 280ms | 241ms | 5ms | 3rd |
Showing top 10 of 20 scripts
FJS BundlesAction142 scripts, 1.5 MB unusedFIX
Downloaded but never executed on this page.
| Script | Size | Unused | Minified | Party |
|---|---|---|---|---|
| https://st.vk.ru/dist/mobile/vendors~icons.f2c5c86b3d647da1.js | 293 KB | 282 KB (97%) | ✓ | 3rd |
| https://st.vk.ru/dist/mobile/vkcom-kit.5d3553b32052f660.js | 246 KB | 223 KB (91%) | ✓ | 3rd |
| https://st.vk.ru/dist/mobile/vendors~videoplayer.7c0afae701563a8a.js | 258 KB | 215 KB (84%) | ✓ | 3rd |
| https://st.vk.ru/dist/mobile/global-spa.416b0199398f26d2.js | 306 KB | 202 KB (66%) | ✓ | 3rd |
| https://st.vk.ru/dist/mobile/vendors~calls-sdk.7847097d3e17a050.js | 150 KB | 138 KB (92%) | ✓ | 3rd |
| https://st.vk.ru/dist/mobile/icons~a62d56198acf5096.1f30e0ae9e0048e2.js | 110 KB | 108 KB (98%) | ✓ | 3rd |
| https://st.vk.ru/dist/mobile/vendors~vk.76e4c26eed5415eb.js | 137 KB | 79 KB (58%) | ✓ | 3rd |
| https://st.vk.ru/dist/mobile/vendors~vkui.e30f436d5dbaa841.js | 104 KB | 60 KB (58%) | ✓ | 3rd |
| https://st.vk.ru/dist/mobile/b-226df83bda86a954.635a16bd84382a7d.js | 90 KB | 52 KB (58%) | ✓ | 3rd |
| https://st.vk.ru/dist/mobile/b-483d721ddc25ecc0.02877210117c5afc.js | 73 KB | 49 KB (68%) | ✓ | 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
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
FPage Weight InventoryAction207 resources · 3.4 MB · 1.5 MB savings availableFIX
~1.5 MiB of savings available
| # | Resource | Type | Size | Cache | Unused | 3rd party | Issues |
|---|---|---|---|---|---|---|---|
| — | — | ||||||
| 207 resources | 3.4 MiB | ||||||
FHTTP CachingActionNo cache headersFIX
No Cache-Control header
Adding a Cache-Control header can significantly improve repeat-visit performance.
CGreen HostingActionWhether the site is served from green-energy infrastructureREVIEW
Green Hosting
No green hosting detected
A+Text CompressionAll text resources are compressedPASS
AImage Optimization4 images, 0 KB saveablePASS
A+Font Loading4 fonts (42 KB)PASS
Web fonts
4
42 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 Hints23 hints, 0 missing preconnectsPASS
Current Resource Hints
23 resource hints configured
A+Render-Blocking ResourcesNo render-blocking resources detectedPASS
A+Third-Party ResourcesNo third-party resources detectedPASS
Network Waterfall207 requests over 4171msINFO
Third-Party Script CostPer-script blocking time, transfer cost, and cache headersINFO
| Script | Category | Execution | Transfer | Unused | Monthly Cost | Verdict |
|---|---|---|---|---|---|---|
Unattributable Unattributable | Other | 809ms | 0 KB | — | ₽240/mo | Costly |
st.vk.ru st.vk.ru | Other | 806ms | 306 KB | 66% | ₽239/mo | Costly |
m.vk.ru m.vk.ru | Other | 739ms | 113 KB | — | ₽219/mo | Costly |
st.vk.ru st.vk.ru | Other | 628ms | 8 KB | — | ₽186/mo | Costly |
st.vk.ru st.vk.ru | Other | 587ms | 34 KB | 75% | ₽174/mo | Costly |
st.vk.ru st.vk.ru | Other | 580ms | 0 KB | — | ₽172/mo | Costly |
st.vk.ru st.vk.ru | Other | 490ms | 24 KB | — | ₽145/mo | Costly |
st.vk.ru st.vk.ru | Other | 369ms | 0 KB | — | ₽109/mo | Costly |
st.vk.ru st.vk.ru | Other | 287ms | 41 KB | — | ₽85/mo | Costly |
privacy-cs.mail.ru privacy-cs.mail.ru | Other | 280ms | 22 KB | — | ₽83/mo | Costly |
st.vk.ru st.vk.ru | Other | 154ms | 0 KB | — | ₽46/mo | Optional |
st.vk.ru st.vk.ru | Other | 114ms | 293 KB | 97% | ₽34/mo | Optional |
st.vk.ru st.vk.ru | Other | 97ms | 258 KB | 84% | ₽29/mo | Optional |
st.vk.ru st.vk.ru | Other | 90ms | 246 KB | 91% | ₽27/mo | Optional |
st.vk.ru st.vk.ru | Other | 81ms | 5 KB | — | ₽24/mo | Optional |
st.vk.ru st.vk.ru | Other | 74ms | 0 KB | — | ₽22/mo | Optional |
top-fwz1.mail.ru top-fwz1.mail.ru | Other | 59ms | 20 KB | — | ₽17/mo | Optional |
st.vk.ru st.vk.ru | Other | 56ms | 24 KB | — | ₽17/mo | Optional |
st.vk.ru st.vk.ru | Other | 51ms | 0 KB | — | ₽15/mo | Optional |
st.vk.ru st.vk.ru | Other | 50ms | 137 KB | 58% | ₽15/mo | Optional |
These scripts may cost more than they're worth
- Unattributable adds 809ms and costs ~₽240/month
- st.vk.ru adds 806ms and costs ~₽239/month
- m.vk.ru adds 739ms and costs ~₽219/month
- st.vk.ru adds 628ms and costs ~₽186/month
- st.vk.ru adds 587ms and costs ~₽174/month
- st.vk.ru adds 580ms and costs ~₽172/month
- st.vk.ru adds 490ms and costs ~₽145/month
- st.vk.ru adds 369ms and costs ~₽109/month
- st.vk.ru adds 287ms and costs ~₽85/month
- privacy-cs.mail.ru adds 280ms and costs ~₽83/month
100% 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
Unattributable takes 809ms 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
st.vk.ru takes 806ms 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
66% of st.vk.ru'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
m.vk.ru takes 739ms 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
st.vk.ru takes 628ms 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
st.vk.ru takes 587ms 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
75% of st.vk.ru'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
st.vk.ru takes 580ms 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
st.vk.ru takes 490ms 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
st.vk.ru takes 369ms 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
st.vk.ru takes 287ms 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
privacy-cs.mail.ru 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
97% of st.vk.ru'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
84% of st.vk.ru'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
91% of st.vk.ru'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
58% of st.vk.ru'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