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

Among sites recording Long Animation Frames, 38.2% (1,996) trigger long frames from DOM event listeners (91% good INP, 118ms median), 58.0% from classic script evaluation (93% good INP), and 31.9% from timer/rAF callbacks (90% good INP).

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

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

The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 5,825 with phone field data · 5,225 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: 93%, against 93% of all Shopify sites. Sites with timer and rAF callbacks LoAF invokers have it least often, at 90%.

SitesGood, needs improvement, poor INPMedian
All Shopify sites5,82593%111ms
Classic <script> evaluation 58.0%2,19693%113ms
ES module <script type="module"> evaluation 9.3%35391%113ms
DOM event listener (click / scroll / input) 38.2%1,47291%118ms
Timer / rAF callback (setTimeout / requestAnimationFrame) 31.9%1,25590%121ms
Promise microtask resolution (then / async-await) 1.1%4385%128ms
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 5,825 with phone field data · 5,225 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

Classic script evaluation is the most used: 58.0% of Shopify sites.

Sites using each option (sites can use more than one) 5,225 sites
Classic <script> evaluation 58.0% DOM event listener (click / scroll / input) 38.2% Timer / rAF callback (setTimeout / requestAnimationFrame) 31.9%
Classic <script> evaluation 58.0% DOM event listener (click / scroll / input) 38.2% Timer / rAF callback (setTimeout / requestAnimationFrame) 31.9% ES module <script type="module"> evaluation 9.3% Promise microtask resolution (then / async-await) 1.1%
The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 5,825 with phone field data · 5,225 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

Vue sets the Long Animation Frame (LoAF) script invoker type to classic script evaluation on 55% of its sites, and 91% of Vue sites have a good INP, against 93% of all sites.

FrameworkLong Animation Frame (LoAF) script invoker type on its sitesGood INP
Shopify sites with Long Animation Frame (LoAF) script invoker type 5,225 sitesClassic <script> evaluation 58%DOM event listener (click / scroll / input) 38%Timer / rAF callback (setTimeout / requestAnimationFrame) 32%93%
jQuery 2,073 sitesClassic <script> evaluation 54%DOM event listener (click / scroll / input) 41%Timer / rAF callback (setTimeout / requestAnimationFrame) 34%92%
Vue 652 sitesClassic <script> evaluation 55%DOM event listener (click / scroll / input) 40%Timer / rAF callback (setTimeout / requestAnimationFrame) 35%91%
Classic <script> evaluation DOM event listener (click / scroll / input) Timer / rAF callback (setTimeout / requestAnimationFrame) ES module <script type="module"> evaluation Promise microtask resolution (then / async-await)
The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 5,825 with phone field data · 5,225 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, 93% of sites with classic script evaluation Long Animation Frame (LoAF) script invoker type have a good INP, against 89% of jQuery sites with DOM event listeners. Within jQuery, sites with classic script evaluation have a good INP more often. On Vue, 92% of sites with classic script evaluation Long Animation Frame (LoAF) script invoker type have a good INP, against 94% of Vue sites with DOM event listeners. Within Vue, sites with classic script evaluation and DOM event listeners 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 1,996 sites (38.2% of LoAF sites), DOM event listeners trigger long frames (91% good INP, 118ms median). Classic script evaluation accounts for 58.0% (93% good INP) and timer/rAF user-callbacks account for 31.9% (90% good INP), while heavy module-script evaluation (9.3%) and unbatched Promise microtasks (1.1%) drop to 91% and 85% good INP.

The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 5,825 with phone field data · 5,225 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
5

Understanding Long Animation Frame script invokers

Keep click and change event listeners on variant pickers and cart drawers lightweight by yielding before analytics dispatch or DOM-wide re-renders. On Shopify, 58.0% of LoAF stores trigger long frames from classic scripts (93% good INP) while 38.2% trigger them in event listeners (91% good INP).

The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 5,825 with phone field data · 5,225 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 · 8,246 crawled Shopify sites (5,825 with phone Chrome field data, 5,225 sites with Long Animation Frame (LoAF) script invoker type, October 2026) · How we measured