Long Animation Frame (LoAF) script invokers and the Core Web Vitals
Among sites recording Long Animation Frames, 45.5% (46,131) trigger long frames from DOM event listeners (94% good INP, 88ms median), 40.1% from classic script evaluation (96% good INP), and 30.1% from timer/rAF callbacks (96% good INP).
40.1% of sites use classic script evaluation Long Animation Frame (LoAF) script invoker type, and 96% of those sites have a good INP, against 95% of all sites.
INP pass rate
Sites with classic script evaluation Long Animation Frame (LoAF) script invoker type have a good INP most often: 96%, against 95% of all sites. Sites with Promise resolution microtasks LoAF invokers have it least often, at 88%.
Long Animation Frame (LoAF) script invoker type usage
DOM event listeners is the most used: 45.5% of sites. Classic script evaluation is 40.1% of sites.
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 46,131 sites (45.5% of LoAF sites), DOM event listeners trigger long frames (94% good INP, 88ms median). Classic script evaluation accounts for 40.1% (96% good INP) and timer/rAF user-callbacks account for 30.1% (96% good INP), while heavy module-script evaluation (2.5%) and unbatched Promise microtasks (1.0%) drop to 92% and 88% 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 (94% good INP) and 1.0% in Promise microtasks (88% good INP).
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.
On WordPress sites with Long Animation Frames, 40.8% record timer/rAF callbacks and 36.1% record event listeners.
Across 35,276 WordPress sites recording LoAF entries, 40.8% record long frames in setTimeout/requestAnimationFrame callbacks (98% good INP), 38.5% during classic <script> evaluation (98%), and 36.1% in DOM event listeners (98%).
On Shopify, 58.3% of LoAF stores record long frames in classic scripts (96% INP) vs 38.2% in event listeners (94%).
Across 5,465 Shopify stores with Long Animation Frames, 58.3% record long frames during classic script evaluation (96% good INP, 101ms median), 38.2% in DOM event listeners (94% good INP, 104ms median), and 31.7% in timer callbacks (94%).
59.7% of LoAF React & Next.js sites record long frames in event listeners (95% good INP).
Across 5,885 React sites recording Long Animation Frames, 59.7% record long frames in DOM event listeners (95% good INP, 80ms median), 44.2% during script evaluation (95% good INP), and 18.8% in timer callbacks (96%).
On Wix sites with Long Animation Frames, 74.1% occur in event listeners (98% good INP) and 7.1% in timers.
Across LoAF Wix sites, 7.1% record long timer callbacks (96% good INP), 74.1% record long frames in event listeners (98% good INP, 75ms median), and 45.5% record them in classic scripts (98%).
By Arjen Karel · 212,308 crawled sites (197,524 with all devices Chrome field data, 101,382 sites with Long Animation Frame (LoAF) script invoker type, October 2026). How we measured.