Shopify main-thread task scheduling APIs and the Core Web Vitals
100.0% of audited sites (8,246) schedule tasks via setTimeout (99% good INP), 99.8% use requestAnimationFrame (99% good INP), 99.7% use requestIdleCallback (99% good INP), and 4.2% adopt modern scheduler.yield() (99% good INP, 69ms median).
100.0% of Shopify sites use setTimeout() main-thread scheduling API usage, and 99% of those sites have a good INP, against 99% of all Shopify sites.
INP pass rate
Sites with setTimeout() main-thread scheduling API usage have a good INP most often: 99%, against 99% of all Shopify sites. Sites with scheduler.yield() task scheduling have it least often, at 99%.
Main-thread scheduling API usage usage
SetTimeout() is the most used: 100.0% of Shopify sites.
Main-thread scheduling API usage per framework
jQuery sets the main-thread scheduling API usage to setTimeout() on 100% of its sites, and 99% of jQuery sites have a good INP, against 99% of all sites. Vue sets the main-thread scheduling API usage to requestIdleCallback() on 100% of its sites, and 100% of Vue sites have a good INP.
Scheduling APIs or the framework
Does the framework explain the main-thread scheduling API usage difference?
On jQuery, 99% of sites with setTimeout() main-thread scheduling API usage have a good INP, against 99% of jQuery sites with requestAnimationFrame(). Within jQuery, sites with setTimeout() and requestAnimationFrame() have a good INP about equally often. On Vue, 100% of sites with setTimeout() main-thread scheduling API usage have a good INP, against 100% of Vue sites with requestAnimationFrame(). Within Vue, sites with setTimeout() and requestAnimationFrame() have a good INP about equally often.
How timer churn (setInterval) and yielding APIs affect input responsiveness
Nearly every site uses setTimeout() (100.0%, 99% good INP), while 89.5% run recurring setInterval() timers (99% good INP, 62ms median) and 99.8% use requestAnimationFrame() (99% good INP). For background work, 99.7% call requestIdleCallback() (99% good INP, 61ms median), while the 4.2% (343 sites) adopting scheduler.yield() achieve a 69ms median INP (99% good INP) by yielding to pending user input with priority continuation.
Understanding main-thread task scheduling APIs
Use scheduler.yield() (with a setTimeout(0) fallback) to break up long main-thread tasks so the browser can paint pending user interactions before resuming work, and eliminate high-frequency setInterval() polling. Across all audited sites, 4.2% use scheduler.yield() (69ms median INP) while 99.7% use requestIdleCallback() (61ms median INP).
By Arjen Karel · 8,246 crawled Shopify sites (3,818 with desktop Chrome field data, October 2026). How we measured.