Which framework wins Core Web Vitals?

Field data PhoneDesktopAll October 2026 edition · Phone field outcomes
1

The league table share of sites passing — overall, then metric by metric

Sorted by the share passing all three Core Web Vitals. Each cell is the share of that platform’s sites passing that metric; the small number is the p75.

vs
#
Platform
Overallpass all 3
LCP% good
INP% good
CLS% good
TTFB% good
1
htmx301 sites
79.8%
90.5% 1.9s
98.8% 108ms
87.3% 0.03
58.5% 1.1s
2
Alpine2,671 sites
79.4%
89.4% 1.9s
96.5% 115ms
90.5% 0.03
56.9% 1.1s
3
React9,570 sites
76.1%
84.6% 2.1s
95.1% 103ms
91.8% 0.01
66.5% 1.1s
4
jQuery143,509 sites
70.4%
80.7% 2.3s
96.7% 104ms
88.4% 0.04
51.3% 1.4s
5
Svelte467 sites
67.3%
83.3% 2.1s
92.3% 138ms
85.4% 0.05
71.2% 885ms
6
Vue12,115 sites
63.6%
76.3% 2.4s
95.1% 127ms
83.4% 0.06
52.5% 1.4s
7
Remix53 sites
58.7%
84.6% 2.2s
87.0% 151ms
73.1% 0.11
56.3% 1.1s
8
Gatsby218 sites
48.6%
71.4% 2.6s
81.8% 180ms
64.9% 0.19
77.7% 755ms
9
Nuxt1,309 sites
48.1%
71.9% 2.6s
88.3% 157ms
69.3% 0.14
62.7% 1.0s
10
Next.js1,832 sites
46.5%
85.2% 2.1s
67.5% 233ms
66.2% 0.17
69.1% 877ms
11
Angular3,377 sites
37.4%
66.2% 2.8s
87.6% 162ms
56.5% 0.24
76.1% 767ms
Champions LCP htmx 90.5% INP htmx 98.8% CLS React 91.8% TTFB Gatsby 77.7%

Cell shade tracks the share of each platform’s sites passing that metric (red → green); the small number is the p75.

2

Market share vs. speed does popularity buy performance?

Each bubble is a platform, sized by how many sites run it. Up = a higher share passing all three CWV.

Small & fast Popular & slow
% passing all 3 CWV ↑
50%
60%
70%
75%
80%
htmx 79.8% Alpine 79.4% React 76.1% jQuery 70.4% Svelte 67.3% Vue 63.6% Remix 58.7% Gatsby 48.6% Nuxt 48.1% Next.js 46.5% Angular 37.4%
market share (log) →

Bubble size = number of sites. The widely-used libraries cluster low; the smaller, newer frameworks score higher.

3

The spread behind the pass-rate the split a single number hides

A pass-rate is one number; this is the good / needs-work / poor split underneath it, per metric. Sorted by overall standing.

htmx
90.5%
1.9s
Alpine
89.4%
1.9s
React
84.6%
2.1s
jQuery
80.7%
2.3s
Svelte
83.3%
2.1s
Vue
76.3%
2.4s
Remix
84.6%
2.2s
Gatsby
71.4%
2.6s
Nuxt
71.9%
2.6s
Next.js
85.2%
2.1s
Angular
66.2%
2.8s
goodneeds workpoorp75 →

“Pass” = good on LCP and INP and CLS together. 210,902 crawled sites with Chrome field data, representing millions of real page loads, October 2026 edition. How we measured.