1
At a glance the headline numbers for JS libraries impact
Performance impact by framework provider.
14
Providers ranked
After min-sites filter
14,650
Sites in sample
Combined across all items
94ms
Best INP (p75)
Lodash
The State of Web Vitals · October 2026 · React sites (9,570) · all devices field datacorewebvitals.io/state-of-cwv
2
The ranking sorted by INP at p75, fastest first
| # | Provider | INP p75 | Passing | Sites | |
|---|---|---|---|---|---|
| 1 | Lodash | 94ms | 95.7% | 7,076 | |
| 2 | Owl Carousel | 110ms | 98.2% | 142 | |
| 3 | jQuery | 111ms | 96.9% | 2,648 | |
| 4 | Moment.js | 111ms | 97.8% | 1,028 | |
| 5 | Flickity | 111ms | 97.1% | 129 | |
| 6 | Swiper | 112ms | 95.6% | 1,237 | |
| 7 | Backbone.js | 112ms | 97.3% | 100 | |
| 8 | Lit | 118ms | 96.8% | 309 | |
| 9 | GSAP | 120ms | 96.2% | 125 | |
| 10 | Vue.js | 129ms | 95.9% | 247 | |
| 11 | Slick Carousel | 136ms | 87.3% | 343 | |
| 12 | Lazysizes | 153ms | 88.8% | 510 | |
| 13 | React | 196ms | 75.2% | 494 | |
| 14 | Next.js | 398ms | 56.4% | 262 |
The State of Web Vitals · October 2026 · React sites (9,570) · all devices field datacorewebvitals.io/state-of-cwv
3
Passing INP per provider which group passes the INP most often
ProviderSitesPassing INPp75
Angular 0.1% 9 158ms
Owl Carousel 1.5% 142 110ms
Moment.js 10.7% 1,028 111ms
Backbone.js 1% 100 112ms
Flickity 1.3% 129 111ms
jQuery 27.7% 2,648 111ms
Lit 3.2% 309 118ms
GSAP 1.3% 125 120ms
Vue.js 2.6% 247 129ms
Lodash 73.9% 7,076 94ms
Swiper 12.9% 1,237 112ms
lazysizes 5.3% 510 153ms
Stimulus/Hotwire 0.1% 8 134ms
Slick Carousel 3.6% 343 136ms
React 5.2% 494 196ms
Next.js 2.7% 262 398ms
Good Needs Improvement Poor Sorted best-passing first · median colored by its own rating · pass = good INP (200ms at p75) · one value per site
98% of Owl Carousel sites pass INP. Next.js trails 42 points behind, leaving 44% of its sites failing. computed
The State of Web Vitals · October 2026 · React sites (9,570) · all devices 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
Lodash 73.9%
901.8s
9694ms
950.01
871.3s
75811ms
jQuery 27.7%
623.0s
97111ms
840.06
522.5s
302.0s
Swiper 12.9%
642.9s
96112ms
880.03
552.4s
342.0s
Moment.js 10.7%
563.3s
98111ms
840.06
442.8s
242.3s
lazysizes 5.3%
732.6s
89153ms
870.05
722.0s
561.4s
React 5.2%
802.4s
75196ms
700.16
761.8s
481.2s
Slick Carousel 3.6%
612.9s
87136ms
750.10
562.3s
381.9s
Lit 3.2%
782.3s
97118ms
860.05
751.8s
591.3s
Next.js 2.7%
862.2s
56398ms
640.23
841.5s
481.1s
Vue.js 2.6%
613.1s
96129ms
810.08
522.5s
262.0s
Owl Carousel 1.5%
563.4s
98110ms
780.08
482.9s
272.3s
Flickity 1.3%
563.3s
97111ms
860.04
512.6s
282.2s
GSAP 1.3%
553.4s
96120ms
850.05
502.7s
222.1s
Backbone.js 1%
663.4s
97112ms
830.04
472.7s
272.0s
Angular 0.1%
563.1s
100158ms
670.13
442.3s
441.8s
Stimulus/Hotwire 0.1%
752.5s
88134ms
500.19
751.6s
501.5s
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.
Moment.js leads on INP: 98% of its sites pass. Next.js trails at 56%. computed
The State of Web Vitals · October 2026 · React sites (9,570) · all devices field datacorewebvitals.io/state-of-cwv
Related signals A/B testing (12) → Personalization (6) → E-commerce (17) → CDN (16) → 210,902 crawled sites with Chrome field data, representing millions of real page loads · How we measured
210,902 crawled sites with Chrome field data, representing millions of real page loads. How we measured.