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

Among sites recording Long Animation Frames, 36.1% (12,267) trigger long frames from DOM event listeners (96% good INP, 99ms median), 38.6% from classic script evaluation (97% good INP), and 40.7% from timer/rAF callbacks (96% good INP).

Field data PhoneDesktopAll Scope All sites October 2026 edition · Phone field outcomes · WordPress sites only
WordPress Scoped to 63,295 sites out of 203,892 analyzed (cms) Compare with all sites →

38.6% of WordPress sites use classic script evaluation Long Animation Frame (LoAF) script invoker type, and 97% of those sites have a good INP, against 97% of all WordPress sites.

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 36,524 with phone field data · 34,005 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
1

INP pass rate

Sites with classic script evaluation Long Animation Frame (LoAF) script invoker type have a good INP most often: 97%, against 97% of all WordPress sites. Sites with DOM event listeners LoAF invokers have it least often, at 96%.

SitesGood, needs improvement, poor INPMedian
All WordPress sites36,52497%96ms
ES module <script type="module"> evaluation 0.5%11197%112ms
Classic <script> evaluation 38.6%7,60697%97ms
Timer / rAF callback (setTimeout / requestAnimationFrame) 40.7%8,16696%102ms
DOM event listener (click / scroll / input) 36.1%7,08796%99ms
Promise microtask resolution (then / async-await) 0.5%9893%111ms
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 36,524 with phone field data · 34,005 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

Timer and rAF callbacks is the most used: 40.7% of WordPress sites. Classic script evaluation is 38.6% of WordPress sites.

Sites using each option (sites can use more than one) 34,005 sites
Timer / rAF callback (setTimeout / requestAnimationFrame) 40.7% Classic <script> evaluation 38.6% DOM event listener (click / scroll / input) 36.1%
Timer / rAF callback (setTimeout / requestAnimationFrame) 40.7% Classic <script> evaluation 38.6% DOM event listener (click / scroll / input) 36.1% Promise microtask resolution (then / async-await) 0.5% ES module <script type="module"> evaluation 0.5%
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 36,524 with phone field data · 34,005 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
3

Long Animation Frame (LoAF) script invoker type per framework

On jQuery, 41% of sites use timer and rAF callbacks Long Animation Frame (LoAF) script invoker type, and 97% of jQuery sites have a good INP, against 97% of all sites. On Vue, 48% of sites use timer and rAF callbacks, and 95% of Vue sites have a good INP.

FrameworkLong Animation Frame (LoAF) script invoker type on its sitesGood INP
WordPress sites with Long Animation Frame (LoAF) script invoker type 34,005 sitesTimer / rAF callback (setTimeout / requestAnimationFrame) 41%Classic <script> evaluation 39%DOM event listener (click / scroll / input) 36%97%
jQuery 32,959 sitesTimer / rAF callback (setTimeout / requestAnimationFrame) 41%Classic <script> evaluation 39%DOM event listener (click / scroll / input) 36%97%
React 1,334 sitesTimer / rAF callback (setTimeout / requestAnimationFrame) 43%Classic <script> evaluation 38%DOM event listener (click / scroll / input) 35%96%
Vue 2,694 sitesTimer / rAF callback (setTimeout / requestAnimationFrame) 48%DOM event listener (click / scroll / input) 33%Classic <script> evaluation 30%95%
Timer / rAF callback (setTimeout / requestAnimationFrame) Classic <script> evaluation DOM event listener (click / scroll / input) Promise microtask resolution (then / async-await) ES module <script type="module"> evaluation
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 36,524 with phone field data · 34,005 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
4

LoAF script invoker or the framework

Does the framework explain the Long Animation Frame (LoAF) script invoker type difference?

On jQuery, 97% of sites with classic script evaluation Long Animation Frame (LoAF) script invoker type have a good INP, against 96% of jQuery sites with timer and rAF callbacks. Within jQuery, sites with classic script evaluation and timer and rAF callbacks have a good INP about equally often. On Vue, 96% of sites with classic script evaluation Long Animation Frame (LoAF) script invoker type have a good INP, against 95% of Vue sites with timer and rAF callbacks. Within Vue, sites with classic script evaluation and timer and rAF callbacks have a good INP about equally often.

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 12,267 sites (36.1% of LoAF sites), DOM event listeners trigger long frames (96% good INP, 99ms median). Classic script evaluation accounts for 38.6% (97% good INP) and timer/rAF user-callbacks account for 40.7% (96% good INP), while heavy module-script evaluation (0.5%) and unbatched Promise microtasks (0.5%) drop to 97% and 93% good INP.

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 36,524 with phone field data · 34,005 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
5

Understanding Long Animation Frame script invokers

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, 36.1% trigger long frames in event listeners (96% good INP) and 0.5% in Promise microtasks (93% good INP).

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 36,524 with phone field data · 34,005 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
Related signals INP phase breakdown → Yielding strategy → Blocking frame breakdown → Scheduling API use → By Arjen Karel · 63,295 crawled WordPress sites (36,524 with phone Chrome field data, 34,005 sites with Long Animation Frame (LoAF) script invoker type, October 2026) · How we measured