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.14 s
Largest Contentful Paint Largest Contentful Paint — how long until the largest visible element loads. Under 2.5s is good.
24.40 s
Total Blocking Time Total Blocking Time — total time the main thread was blocked, preventing user input. Under 200ms is good.
1.53 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.
8.51 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.77 s
Page Load Progression
FPage Weight BudgetAction3.4 MB transferred, 210 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 CostAction6274ms total JS executionFIX
Main Thread Breakdown
| Script | Total | Scripting | Parse/Compile | Party |
|---|---|---|---|---|
| https://st.vk.com/dist/mobile/global-spa.416b0199398f26d2.js | 852ms | 748ms | 97ms | 3rd |
| Unattributable | 768ms | 51ms | 0ms | 3rd |
| https://m.vk.com/ | 727ms | 101ms | 184ms | 3rd |
| https://st.vk.com/dist/mobile/vendors~sentry.55bda8e107e56fc8.js | 697ms | 198ms | 6ms | 3rd |
| https://st.vk.com/dist/mobile/core_spa.875cbdcdcd59882d.js | 599ms | 582ms | 9ms | 3rd |
| https://st.vk.com/dist/mobile/grip-lib.d54d78c7fd503e5e.js | 458ms | 453ms | 2ms | 3rd |
| https://st.vk.com/dist/mobile/vendors~onlyReact.d9d39d84f6e749e0.js | 418ms | 336ms | 9ms | 3rd |
| https://st.vk.com/dist/mobile/common.df06c62c6ead59c1.js | 341ms | 326ms | 5ms | 3rd |
| https://st.vk.com/dist/mobile/vendors.d9baf4b720d84b8f.js | 316ms | 152ms | 163ms | 3rd |
| https://privacy-cs.mail.ru/static/sync-loader.js | 281ms | 248ms | 7ms | 3rd |
Showing top 10 of 19 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 InventoryAction210 resources · 3.4 MB · 1.5 MB savings availableFIX
~1.5 MiB of savings available
| # | Resource | Type | Size | Cache | Unused | 3rd party | Issues |
|---|---|---|---|---|---|---|---|
| — | — | ||||||
| 210 resources | 3.4 MiB | ||||||
DHTTP CachingActionno-store (uncacheable)FIX
no-store
| Directive | Value | Meaning |
|---|---|---|
| no-store | — | Never cache this response |
BImage Optimization5 images, 0 KB saveableREVIEW
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 (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 Waterfall210 requests over 5572msINFO
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 | 852ms | 306 KB | 66% | ₽252/mo | Costly |
Unattributable Unattributable | Other | 768ms | 0 KB | — | ₽227/mo | Costly |
m.vk.com m.vk.com | Other | 727ms | 113 KB | — | ₽215/mo | Costly |
st.vk.com st.vk.com | Other | 697ms | 0 KB | — | ₽206/mo | Costly |
st.vk.com st.vk.com | Other | 599ms | 34 KB | 75% | ₽177/mo | Costly |
st.vk.com st.vk.com | Other | 458ms | 8 KB | — | ₽136/mo | Costly |
st.vk.com st.vk.com | Other | 418ms | 41 KB | — | ₽124/mo | Costly |
st.vk.com st.vk.com | Other | 341ms | 24 KB | — | ₽101/mo | Costly |
st.vk.com st.vk.com | Other | 316ms | 0 KB | — | ₽93/mo | Costly |
privacy-cs.mail.ru privacy-cs.mail.ru | Other | 281ms | 22 KB | — | ₽83/mo | Costly |
st.vk.com st.vk.com | Other | 179ms | 0 KB | — | ₽53/mo | Costly |
st.vk.com st.vk.com | Other | 92ms | 293 KB | 97% | ₽27/mo | Optional |
st.vk.com st.vk.com | Other | 91ms | 258 KB | 84% | ₽27/mo | Optional |
top-fwz1.mail.ru top-fwz1.mail.ru | Other | 81ms | 20 KB | — | ₽24/mo | Optional |
st.vk.com st.vk.com | Other | 77ms | 1 KB | — | ₽23/mo | Optional |
st.vk.com st.vk.com | Other | 77ms | 13 KB | — | ₽23/mo | Optional |
st.vk.com st.vk.com | Other | 77ms | 0 KB | — | ₽23/mo | Optional |
st.vk.com st.vk.com | Other | 72ms | 246 KB | 91% | ₽21/mo | Optional |
st.vk.com st.vk.com | Other | 72ms | 1 KB | — | ₽21/mo | Optional |
These scripts may cost more than they're worth
- st.vk.com adds 852ms and costs ~₽252/month
- Unattributable adds 768ms and costs ~₽227/month
- m.vk.com adds 727ms and costs ~₽215/month
- st.vk.com adds 697ms and costs ~₽206/month
- st.vk.com adds 599ms and costs ~₽177/month
- st.vk.com adds 458ms and costs ~₽136/month
- st.vk.com adds 418ms and costs ~₽124/month
- st.vk.com adds 341ms and costs ~₽101/month
- st.vk.com adds 316ms and costs ~₽93/month
- privacy-cs.mail.ru adds 281ms and costs ~₽83/month
- st.vk.com adds 179ms and costs ~₽53/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 852ms 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
Unattributable takes 768ms 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 727ms 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 697ms 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 599ms 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 458ms 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 418ms 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 341ms 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 316ms 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 281ms 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 179ms 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