React Server Components Performance Every number, linked to the report that proves it.
24 independent performance audits across every page type. Mobile uses real-world slow network conditions; desktop uses standard browser settings. Every number links to its source report — nothing is cherry-picked.
Performance score, every page, every variant
Lighthouse categories.performance.score × 100. Click any score to open that exact report; use strategy links to open the measured app variants.
| Feature | Strategy | SSR | Client | RSC | RSC vs SSR |
|---|---|---|---|---|---|
|
Blog Post
/blog
|
desktop
|
70 | 70 | 99 | +29 |
|
mobile
|
72 | 72 | 97 | +25 | |
|
Product Page
/product
|
desktop
|
99 | 100 | 100 | +1 |
|
mobile
|
73 | 98 | 98 | +25 | |
|
Restaurant Detail
/restaurant/1
|
desktop
|
84 | 83 | 98 | +14 |
|
mobile
|
75 | 66 | 88 | +13 | |
|
Product Search
/product-search
|
desktop
|
96 | 97 | 98 | +2 |
|
mobile
|
98 | 78 | 99 | +1 |
Color: ≥ 90 50–89 < 50
Blocking Time has the biggest impact on Google's performance score
It measures how long users wait before they can tap, scroll, or type — and it accounts for 30% of the score, more than any other metric. This is why RSC pages often score higher even when other metrics are similar: less JavaScript means users can interact almost immediately.
Blog Post
Markdown-heavy article with code blocks. Traditional approaches force the user's browser to download ~1 MB of processing libraries. RSC does that processing on the server and only sends the finished result — dramatically less data for users to download.
Desktop · unthrottled
Tap any number to open the report — the same JSON Lighthouse generated for that exact run.
| SSR | Client | RSC | |
|---|---|---|---|
| Score | 70 | 70 | 99 |
| FCP (first paint) | 793 ms | 701 ms | 385 ms |
| LCP (main content visible) | 793 ms | 701 ms | 413 ms |
| TBT (blocking time) | 1.19 s | 1.29 s | 0 ms |
| Speed Index (perceived speed) | 793 ms | 1.07 s | 1.29 s |
| Bootup (JS processing) | 1.4 s | 1.65 s | 75 ms |
| Transfer (data to user) | 419 KB | 427 KB | 128 KB |
Mobile · Slow 4G + 4× CPU
Tap any number to open the report — the same JSON Lighthouse generated for that exact run.
| SSR | Client | RSC | |
|---|---|---|---|
| Score | 72 | 72 | 97 |
| FCP (first paint) | 1.43 s | 1.42 s | 1.4 s |
| LCP (main content visible) | 1.43 s | 1.42 s | 1.46 s |
| TBT (blocking time) | 1.95 s | 2.06 s | 0 ms |
| Speed Index (perceived speed) | 2.72 s | 1.96 s | 4.43 s |
| Bootup (JS processing) | 2.0 s | 2.13 s | 63 ms |
| Transfer (data to user) | 419 KB | 427 KB | 127 KB |
What ships to the client (desktop)
Open per-chunk breakdown →Product Page
E-commerce page with product specs, reviews, and multi-currency pricing. Traditional approaches run heavy formatting libraries in the user's browser. RSC pre-renders everything server-side, sending only the finished page.
Desktop · unthrottled
Tap any number to open the report — the same JSON Lighthouse generated for that exact run.
| SSR | Client | RSC | |
|---|---|---|---|
| Score | 99 | 100 | 100 |
| FCP (first paint) | 391 ms | 458 ms | 373 ms |
| LCP (main content visible) | 682 ms | 583 ms | 563 ms |
| TBT (blocking time) | 90 ms | 69 ms | 0 ms |
| Speed Index (perceived speed) | 898 ms | 503 ms | 785 ms |
| Bootup (JS processing) | 342 ms | 314 ms | 82 ms |
| Transfer (data to user) | 801 KB | 809 KB | 397 KB |
Mobile · Slow 4G + 4× CPU
Tap any number to open the report — the same JSON Lighthouse generated for that exact run.
| SSR | Client | RSC | |
|---|---|---|---|
| Score | 73 | 98 | 98 |
| FCP (first paint) | 3.71 s | 1.24 s | 1.42 s |
| LCP (main content visible) | 4.98 s | 2.11 s | 2.25 s |
| TBT (blocking time) | 69 ms | 104 ms | 0 ms |
| Speed Index (perceived speed) | 3.71 s | 1.24 s | 1.6 s |
| Bootup (JS processing) | 291 ms | 391 ms | 105 ms |
| Transfer (data to user) | 801 KB | 809 KB | 397 KB |
What ships to the client (desktop)
Open per-chunk breakdown →Restaurant Detail
Long-form bio, 80-item menu with descriptions and pricing, 40 review threads. The largest content payload of the four pages — and exactly where RSC's server-side processing advantage is most visible.
Desktop · unthrottled
Tap any number to open the report — the same JSON Lighthouse generated for that exact run.
| SSR | Client | RSC | |
|---|---|---|---|
| Score | 84 | 83 | 98 |
| FCP (first paint) | 337 ms | 414 ms | 441 ms |
| LCP (main content visible) | 956 ms | 1.19 s | 912 ms |
| TBT (blocking time) | 344 ms | 335 ms | 11 ms |
| Speed Index (perceived speed) | 875 ms | 730 ms | 1.28 s |
| Bootup (JS processing) | 561 ms | 642 ms | 168 ms |
| Transfer (data to user) | 791 KB | 782 KB | 425 KB |
Mobile · Slow 4G + 4× CPU
Tap any number to open the report — the same JSON Lighthouse generated for that exact run.
| SSR | Client | RSC | |
|---|---|---|---|
| Score | 75 | 66 | 88 |
| FCP (first paint) | 1.35 s | 3.73 s | 1.27 s |
| LCP (main content visible) | 4.67 s | 5.41 s | 3.33 s |
| TBT (blocking time) | 313 ms | 277 ms | 223 ms |
| Speed Index (perceived speed) | 3.24 s | 3.73 s | 2.8 s |
| Bootup (JS processing) | 803 ms | 533 ms | 230 ms |
| Transfer (data to user) | 743 KB | 732 KB | 365 KB |
What ships to the client (desktop)
Open per-chunk breakdown →Product Search
Faceted search with filters and 4 independently loaded data sections. RSC renders the page progressively so users see results faster instead of waiting for everything to load.
Desktop · unthrottled
Tap any number to open the report — the same JSON Lighthouse generated for that exact run.
| SSR | Client | RSC | |
|---|---|---|---|
| Score | 96 | 97 | 98 |
| FCP (first paint) | 626 ms | 672 ms | 382 ms |
| LCP (main content visible) | 847 ms | 948 ms | 475 ms |
| TBT (blocking time) | 92 ms | 20 ms | 0 ms |
| Speed Index (perceived speed) | 1.67 s | 1.33 s | 1.54 s |
| Bootup (JS processing) | 354 ms | 320 ms | 108 ms |
| Transfer (data to user) | 790 KB | 790 KB | 490 KB |
Mobile · Slow 4G + 4× CPU
Tap any number to open the report — the same JSON Lighthouse generated for that exact run.
| SSR | Client | RSC | |
|---|---|---|---|
| Score | 98 | 78 | 99 |
| FCP (first paint) | 1.27 s | 1.42 s | 1.4 s |
| LCP (main content visible) | 1.81 s | 4.19 s | 2.02 s |
| TBT (blocking time) | 118 ms | 256 ms | 9 ms |
| Speed Index (perceived speed) | 2.33 s | 4.59 s | 2.65 s |
| Bootup (JS processing) | 429 ms | 521 ms | 193 ms |
| Transfer (data to user) | 553 KB | 651 KB | 254 KB |
What ships to the client (desktop)
Open per-chunk breakdown →What your users no longer have to download
Every number below links to the actual bundle evidence — the real bytes that RSC removes from what users' browsers must process.
Content formatting libraries used for blog posts, product specs, and restaurant bios. RSC processes them on the server — users download none of this.
See Blog SSR'smarkdown-libs-…js chunk →
Price formatting libraries for multi-currency displays in product and restaurant pages. The server formats prices once; users receive ready-to-display text.
See Product SSR's vendor chunks →Traditional approaches send the rendering code for every page section to the browser. RSC only sends the code for elements that need to be interactive — buttons, forms, and dynamic UI.
See Restaurant SSR's entry pack →How these numbers were measured
Tool
Lighthouse 12 — the same engine PageSpeed Insights uses. Each route was loaded fresh in headless Chromium; metrics are the standard Lighthouse v12 weights applied to FCP, LCP, TBT, CLS, and Speed Index.
Conditions
- Mobile: Slow 4G simulation (1.6 Mbps down, 750 Kbps up, 150 ms RTT) + 4× CPU throttle. Same as PSI mobile.
- Desktop: 1350×940 viewport, no network throttle, 1× CPU. Same as PSI desktop.
Pages were warmed
Each route was hit twice via curl before the audit ran, so the first-request DB cold-cache penalty was excluded. Lighthouse then performed its own load with a clean Chrome profile.
Reproduce
Every report under /lighthouse-reports/ can be re-opened in Lighthouse Viewer by uploading its JSON. After deploy, run any URL through pagespeed.web.dev to compare with field-condition equivalent.
Data sources for this page
Numbers above are loaded at request time from the JSON files Lighthouse wrote. Click any of them to inspect the raw audit:
Don't take our word for it
After the production deploy, run any of the deployed pages through external tooling. Lighthouse-scored numbers should track the local-build numbers above to within ±5 points (variance from network/CDN conditions).