Long Animation Frame (LoAF) script invokers and the Core Web Vitals

Among sites recording Long Animation Frames, 45.5% (45,852) trigger long frames from DOM event listeners (99% good INP, 50ms median), 40.1% from classic script evaluation (99% good INP), and 30.1% from timer/rAF callbacks (99% good INP).

Field data PhoneDesktopAll Scope All sites October 2026 edition · Desktop field outcomes

30.1% of sites use timer and rAF callbacks Long Animation Frame (LoAF) script invoker type, and 99% of those sites have a good INP, against 99% of all sites.

The State of Web Vitals · October 2026 · 210,902 crawled sites · 69,745 with desktop field data · 100,740 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
1

INP pass rate

Sites with timer and rAF callbacks Long Animation Frame (LoAF) script invoker type have a good INP most often: 99%, against 99% of all sites. Sites with Promise resolution microtasks LoAF invokers have it least often, at 97%.

SitesGood, needs improvement, poor INPMedian
All sites69,74599%49ms
Timer / rAF callback (setTimeout / requestAnimationFrame) 30.1%11,17899%52ms
Classic <script> evaluation 40.1%14,49299%52ms
DOM event listener (click / scroll / input) 45.5%16,77699%50ms
ES module <script type="module"> evaluation 2.5%1,21598%65ms
Promise microtask resolution (then / async-await) 1.0%54697%64ms
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · 210,902 crawled sites · 69,745 with desktop field data · 100,740 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
2

Long Animation Frame (LoAF) script invoker type usage

DOM event listeners is the most used: 45.5% of sites. Timer and rAF callbacks is 30.1% of sites.

Sites using each option (sites can use more than one) 100,740 sites
DOM event listener (click / scroll / input) 45.5% Classic <script> evaluation 40.1% Timer / rAF callback (setTimeout / requestAnimationFrame) 30.1%
DOM event listener (click / scroll / input) 45.5% Classic <script> evaluation 40.1% Timer / rAF callback (setTimeout / requestAnimationFrame) 30.1% ES module <script type="module"> evaluation 2.5% Promise microtask resolution (then / async-await) 1.0%
The State of Web Vitals · October 2026 · 210,902 crawled sites · 69,745 with desktop field data · 100,740 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
3

Understanding Long Animation Frame script invokers

What triggers main-thread Long Animation Frames during load and interaction

The Long Animation Frames API (LoAF) attributes every frame over 50ms to the exact invoker that started the script task. Across 45,852 sites (45.5% of LoAF sites), DOM event listeners trigger long frames (99% good INP, 50ms median). Classic script evaluation accounts for 40.1% (99% good INP) and timer/rAF user-callbacks account for 30.1% (99% good INP), while heavy module-script evaluation (2.5%) and unbatched Promise microtasks (1.0%) drop to 98% and 97% good INP.

Update visual UI state first inside click/keydown event listeners, then yield via scheduler.yield() before running analytics, storage writes, or non-critical Promise chains. Across all sites with Long Animation Frames, 45.5% trigger long frames in event listeners (99% good INP) and 1.0% in Promise microtasks (97% good INP).

The State of Web Vitals · October 2026 · 210,902 crawled sites · 69,745 with desktop field data · 100,740 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
Platform & Framework Takeaways

How Long Animation Frame (LoAF) script invoker type plays out per platform

What the field data shows when you isolate a single CMS or framework.

WordPress 35,048 sites
40.8% / 36.1% timer/rAF callbacks / event listeners on WordPress

On WordPress sites with Long Animation Frames, 40.8% record timer/rAF callbacks and 36.1% record event listeners.

Across 35,048 WordPress sites recording LoAF entries, 40.8% record long frames in setTimeout/requestAnimationFrame callbacks (100% good INP), 38.5% during classic <script> evaluation (100%), and 36.1% in DOM event listeners (99%).

Read the WordPress LoAF invoker breakdown →
React & Next.js 5,840 sites
59.8% / 44.3% event listener / classic script LoAF on React

59.8% of LoAF React & Next.js sites record long frames in event listeners (99% good INP).

Across 5,840 React sites recording Long Animation Frames, 59.8% record long frames in DOM event listeners (99% good INP, 47ms median), 44.3% during script evaluation (98% good INP), and 18.8% in timer callbacks (99%).

Wix 3,502 sites
74.2% / 45.5% event listener / classic script LoAF on Wix

On Wix sites with Long Animation Frames, 74.2% occur in event listeners (100% good INP) and 7.1% in timers.

Across LoAF Wix sites, 7.1% record long timer callbacks (100% good INP), 74.2% record long frames in event listeners (100% good INP, 38ms median), and 45.5% record them in classic scripts (99%).

Read the Wix LoAF invoker breakdown →
Related signals INP phase breakdown → Yielding strategy → Blocking frame breakdown → Scheduling API use → By Arjen Karel · 210,902 crawled sites (69,745 with desktop Chrome field data, 100,740 sites with Long Animation Frame (LoAF) script invoker type, October 2026) · How we measured