JS libraries impact

Performance impact by framework provider.

Field data PhoneDesktopAll Scope All sites Q1 2026 edition · Phone field outcomes
Metric LCP INP CLS
1

At a glance the headline numbers for JS libraries impact

Performance impact by framework provider.

20
Providers ranked
After min-sites filter
142,710
Sites in sample
Combined across all items
0.01
Best CLS (p75)
Flickity
The State of Web Vitals · Q1 2026 · 94,910 sites · phone field datacorewebvitals.io/state-of-cwv
2

The ranking sorted by CLS at p75, fastest first

# Provider CLS p75 Passing Sites
1 Flickity 0.01 92.0%
2,891
2 Turbo/Hotwire 0.01 94.1%
258
3 GSAP 0.02 89.7%
2,573
4 jQuery 0.02 89.8%
67,906
5 Swiper 0.02 89.2%
15,692
6 Stimulus/Hotwire 0.02 91.0%
1,536
7 Lodash 0.02 87.2%
13,200
8 Slick Carousel 0.03 86.6%
7,462
9 Lazysizes 0.03 88.4%
6,844
10 Backbone.js 0.04 82.6%
818
11 Moment.js 0.04 84.5%
4,065
12 Lit 0.04 83.9%
5,243
13 Vue.js 0.04 84.3%
5,677
14 Owl Carousel 0.05 83.6%
4,359
15 Next.js 0.09 76.5%
2,085
16 Nuxt 0.12 72.5%
647
17 React 0.15 72.4%
235
18 Ember.js 0.17 68.9%
67
19 Ionic 0.27 53.8%
116
20 Angular 0.32 51.1%
1,036
The State of Web Vitals · Q1 2026 · 94,910 sites · phone field datacorewebvitals.io/state-of-cwv
3

Passing CLS per provider which group passes the CLS most often

ProviderSitesPassing CLSp75
Marko 0% 12 100% 0.02
Turbo/Hotwire 0.3% 258 94% 0.01
Flickity 3% 2,891 92% 0.01
Stimulus/Hotwire 1.6% 1,536 91% 0.02
jQuery 71.5% 67,906 90% 0.02
GSAP 2.7% 2,573 90% 0.02
Swiper 16.5% 15,692 89% 0.02
lazysizes 7.2% 6,844 88% 0.03
Lodash 13.9% 13,200 87% 0.02
Slick Carousel 7.9% 7,462 87% 0.03
Moment.js 4.3% 4,065 85% 0.04
Vue.js 6% 5,677 84% 0.04
Lit 5.5% 5,243 84% 0.04
Owl Carousel 4.6% 4,359 84% 0.05
Backbone.js 0.9% 818 83% 0.04
Polyfill.io 0% 46 82% 0.01
Next.js 2.2% 2,085 77% 0.09
Nuxt.js 0.7% 647 73% 0.12
React 0.2% 235 72% 0.15
Ember.js 0.1% 67 69% 0.17
Ionic 0.1% 116 54% 0.27
Angular 1.1% 1,036 51% 0.32
Good Needs Improvement Poor Sorted best-passing first · median colored by its own rating · pass = good CLS (0.1 at p75) · one value per site

94% of Turbo/Hotwire sites pass CLS. Angular trails 43 points behind, leaving 49% of its sites failing. computed

The State of Web Vitals · Q1 2026 · 94,910 sites · phone field datacorewebvitals.io/state-of-cwv
4

All five vitals at once the whole category without toggling - cell is the pass rate, small number the p75

LCP
INP
CLS
FCP
TTFB
jQuery 71.5%
812.3s
95121ms
900.02
731.9s
521.3s
Swiper 16.5%
752.5s
94129ms
890.02
682.1s
471.5s
Lodash 13.9%
782.3s
93127ms
870.02
721.9s
601.2s
Slick Carousel 7.9%
812.2s
94128ms
870.03
751.8s
541.2s
lazysizes 7.2%
792.4s
93132ms
880.03
731.9s
531.3s
Vue.js 6%
772.4s
92145ms
840.04
711.9s
531.3s
Lit 5.5%
752.5s
90142ms
840.04
702.0s
571.2s
Owl Carousel 4.6%
802.3s
95120ms
840.05
741.8s
501.3s
Moment.js 4.3%
762.5s
91136ms
850.04
702.0s
531.3s
Flickity 3%
812.3s
96129ms
920.01
741.8s
581.2s
GSAP 2.7%
722.6s
97123ms
900.02
662.1s
451.6s
Next.js 2.2%
802.3s
71213ms
770.09
801.7s
71856ms
Stimulus/Hotwire 1.6%
882.1s
95122ms
910.02
841.5s
77768ms
Angular 1.1%
573.1s
75201ms
510.32
642.1s
81694ms
Backbone.js 0.9%
672.9s
92135ms
830.04
592.3s
411.6s
Nuxt.js 0.7%
702.7s
86169ms
730.12
691.9s
591.0s
Turbo/Hotwire 0.3%
931.7s
88159ms
940.01
871.3s
79770ms
React 0.2%
812.3s
73211ms
720.15
721.8s
471.3s
Ionic 0.1%
364.2s
76194ms
540.27
382.9s
70985ms
Ember.js 0.1%
712.7s
74189ms
690.17
652.1s
76779ms
Polyfill.io 0%
932.0s
96124ms
820.01
821.7s
681.0s
Marko 0%
552.8s
73198ms
1000.02
272.4s
91.8s
60%95%+ passing Cell: pass rate, small number = p75 · faded rows: under 100 sites

One row per provider, one column per vital - the cell is the share of sites passing, the small number the p75. No toggling needed to see where the category actually differs.

Turbo/Hotwire leads on CLS: 94% of its sites pass. Angular trails at 51%. computed

The State of Web Vitals · Q1 2026 · 94,910 sites · phone field datacorewebvitals.io/state-of-cwv
Related signals A/B testing (10) → Personalization (5) → E-commerce (14) → CDN (15) → Chrome field data from 94,910 sites, representing millions of real page loads · How we measured