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.63 s
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
24.32 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
1.63 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.21 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.
24.81 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 CostAction7061ms total JS executionFIX
Main Thread Breakdown
| Script | Total | Scripting | Parse/Compile | Party |
|---|---|---|---|---|
| https://st.vk.com/dist/mobile/global-spa.416b0199398f26d2.js | 947ms | 814ms | 120ms | 3rd |
| https://st.vk.com/dist/mobile/vendors~sentry.55bda8e107e56fc8.js | 767ms | 167ms | 7ms | 3rd |
| Unattributable | 726ms | 57ms | 0ms | 3rd |
| https://m.vk.com/ | 726ms | 102ms | 142ms | 3rd |
| https://st.vk.com/dist/mobile/grip-lib.d54d78c7fd503e5e.js | 718ms | 626ms | 9ms | 3rd |
| https://st.vk.com/dist/mobile/core_spa.875cbdcdcd59882d.js | 681ms | 660ms | 7ms | 3rd |
| https://st.vk.com/dist/mobile/common.df06c62c6ead59c1.js | 645ms | 554ms | 9ms | 3rd |
| https://st.vk.com/dist/mobile/vendors.d9baf4b720d84b8f.js | 380ms | 179ms | 200ms | 3rd |
| https://st.vk.com/dist/mobile/vendors~onlyReact.d9d39d84f6e749e0.js | 306ms | 235ms | 10ms | 3rd |
| https://privacy-cs.mail.ru/static/sync-loader.js | 285ms | 244ms | 6ms | 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.com/dist/mobile/vendors~icons.f2c5c86b3d647da1.js | 293 KB | 282 KB (97%) | ✓ | 3rd |
| https://st.vk.com/dist/mobile/vkcom-kit.5d3553b32052f660.js | 246 KB | 223 KB (91%) | ✓ | 3rd |
| https://st.vk.com/dist/mobile/vendors~videoplayer.7c0afae701563a8a.js | 258 KB | 215 KB (84%) | ✓ | 3rd |
| https://st.vk.com/dist/mobile/global-spa.416b0199398f26d2.js | 306 KB | 202 KB (66%) | ✓ | 3rd |
| https://st.vk.com/dist/mobile/vendors~calls-sdk.7847097d3e17a050.js | 150 KB | 138 KB (92%) | ✓ | 3rd |
| https://st.vk.com/dist/mobile/icons~a62d56198acf5096.1f30e0ae9e0048e2.js | 110 KB | 108 KB (98%) | ✓ | 3rd |
| https://st.vk.com/dist/mobile/vendors~vk.76e4c26eed5415eb.js | 137 KB | 79 KB (58%) | ✓ | 3rd |
| https://st.vk.com/dist/mobile/vendors~vkui.e30f436d5dbaa841.js | 104 KB | 60 KB (58%) | ✓ | 3rd |
| https://st.vk.com/dist/mobile/b-226df83bda86a954.635a16bd84382a7d.js | 90 KB | 52 KB (58%) | ✓ | 3rd |
| https://st.vk.com/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 5762msINFO
Third-Party Script CostPer-script blocking time, transfer cost, and cache headersINFO
| Script | Category | Execution | Transfer | Unused | Monthly Cost | Verdict |
|---|---|---|---|---|---|---|
st.vk.com st.vk.com | Other | 947ms | 306 KB | 66% | ₽280/mo | Costly |
st.vk.com st.vk.com | Other | 767ms | 0 KB | — | ₽227/mo | Costly |
Unattributable Unattributable | Other | 726ms | 0 KB | — | ₽215/mo | Costly |
m.vk.com m.vk.com | Other | 726ms | 113 KB | — | ₽215/mo | Costly |
st.vk.com st.vk.com | Other | 718ms | 8 KB | — | ₽213/mo | Costly |
st.vk.com st.vk.com | Other | 681ms | 34 KB | 75% | ₽202/mo | Costly |
st.vk.com st.vk.com | Other | 645ms | 24 KB | — | ₽191/mo | Costly |
st.vk.com st.vk.com | Other | 380ms | 0 KB | — | ₽113/mo | Costly |
st.vk.com st.vk.com | Other | 306ms | 41 KB | — | ₽91/mo | Costly |
privacy-cs.mail.ru privacy-cs.mail.ru | Other | 285ms | 22 KB | — | ₽84/mo | Costly |
st.vk.com st.vk.com | Other | 161ms | 0 KB | — | ₽48/mo | Optional |
top-fwz1.mail.ru top-fwz1.mail.ru | Other | 107ms | 20 KB | — | ₽32/mo | Optional |
st.vk.com st.vk.com | Other | 107ms | 293 KB | 97% | ₽32/mo | Optional |
st.vk.com st.vk.com | Other | 95ms | 258 KB | 84% | ₽28/mo | Optional |
st.vk.com st.vk.com | Other | 86ms | 0 KB | — | ₽25/mo | Optional |
st.vk.com st.vk.com | Other | 82ms | 246 KB | 91% | ₽24/mo | Optional |
st.vk.com st.vk.com | Other | 74ms | 5 KB | — | ₽22/mo | Optional |
st.vk.com st.vk.com | Other | 62ms | 13 KB | — | ₽18/mo | Optional |
m.vk.com m.vk.com | Other | 54ms | 1 KB | — | ₽16/mo | Optional |
st.vk.com st.vk.com | Other | 51ms | 12 KB | — | ₽15/mo | Optional |
These scripts may cost more than they're worth
- st.vk.com adds 947ms and costs ~₽280/month
- st.vk.com adds 767ms and costs ~₽227/month
- Unattributable adds 726ms and costs ~₽215/month
- m.vk.com adds 726ms and costs ~₽215/month
- st.vk.com adds 718ms and costs ~₽213/month
- st.vk.com adds 681ms and costs ~₽202/month
- st.vk.com adds 645ms and costs ~₽191/month
- st.vk.com adds 380ms and costs ~₽113/month
- st.vk.com adds 306ms and costs ~₽91/month
- privacy-cs.mail.ru adds 285ms and costs ~₽84/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
st.vk.com takes 947ms 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.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
st.vk.com takes 767ms 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 726ms 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
m.vk.com takes 726ms 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.com takes 718ms 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.com takes 681ms 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.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
st.vk.com takes 645ms 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.com takes 380ms 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.com takes 306ms 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 285ms 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.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
84% of st.vk.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
91% of st.vk.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