WordPress main-thread task scheduling APIs and the Core Web Vitals

99.9% of audited sites (63,150) schedule tasks via setTimeout (98% good INP), 77.3% use requestAnimationFrame (98% good INP), 33.3% use requestIdleCallback (98% good INP), and 2.6% adopt modern scheduler.yield() (98% good INP, 84ms median).

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

77.3% of WordPress sites use requestAnimationFrame() main-thread scheduling API usage, and 98% of those sites have a good INP, against 98% of all WordPress sites.

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,166 sites with main-thread scheduling API usageBy Arjen Karel · corewebvitals.io/state-of-cwv
1

INP pass rate

Sites with requestAnimationFrame() main-thread scheduling API usage have a good INP most often: 98%, against 98% of all WordPress sites. Sites with scheduler.yield() task scheduling have it least often, at 98%.

SitesGood, needs improvement, poor INPMedian
All WordPress sites60,85598%86ms
requestAnimationFrame() 77.3%47,03298%87ms
setTimeout() 99.9%60,71798%86ms
setInterval() 75.1%45,82398%87ms
requestIdleCallback() 33.3%20,35298%87ms
scheduler.yield() 2.6%1,55698%84ms
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,166 sites with main-thread scheduling API usageBy Arjen Karel · corewebvitals.io/state-of-cwv
2

Main-thread scheduling API usage usage

SetTimeout() is the most used: 99.9% of WordPress sites. RequestAnimationFrame() is 77.3% of WordPress sites.

Sites using each option (sites can use more than one) 63,166 sites
setTimeout() 99.9% requestAnimationFrame() 77.3% setInterval() 75.1% requestIdleCallback() 33.3%
setTimeout() 99.9% requestAnimationFrame() 77.3% setInterval() 75.1% requestIdleCallback() 33.3% scheduler.yield() 2.6%
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,166 sites with main-thread scheduling API usageBy Arjen Karel · corewebvitals.io/state-of-cwv
3

Main-thread scheduling API usage per framework

Vue sets the main-thread scheduling API usage to requestAnimationFrame() on 96% of its sites, and 97% of Vue sites have a good INP, against 98% of all sites. jQuery sets the main-thread scheduling API usage to setTimeout() on 100% of its sites, and 98% of jQuery sites have a good INP.

FrameworkMain-thread scheduling API usage on its sitesGood INP
WordPress sites with main-thread scheduling API usage 63,166 sitessetTimeout() 100%requestAnimationFrame() 77%setInterval() 75%requestIdleCallback() 33%98%
React 2,228 sitessetTimeout() 100%requestAnimationFrame() 82%setInterval() 79%requestIdleCallback() 68%98%
jQuery 60,246 sitessetTimeout() 100%requestAnimationFrame() 79%setInterval() 77%requestIdleCallback() 34%98%
Vue 4,844 sitessetTimeout() 100%requestAnimationFrame() 96%setInterval() 69%requestIdleCallback() 25%97%
Alpine 380 sitessetTimeout() 100%setInterval() 87%requestAnimationFrame() 81%requestIdleCallback() 49%95%
setTimeout() requestAnimationFrame() setInterval() requestIdleCallback() scheduler.yield()
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,166 sites with main-thread scheduling API usageBy Arjen Karel · corewebvitals.io/state-of-cwv
4

Scheduling APIs or the framework

Does the framework explain the main-thread scheduling API usage difference?

On jQuery, 98% of sites with requestAnimationFrame() main-thread scheduling API usage have a good INP, against 98% of jQuery sites with setTimeout(). Within jQuery, sites with requestAnimationFrame() and setTimeout() have a good INP about equally often. On Vue, 97% of sites with requestAnimationFrame() main-thread scheduling API usage have a good INP, against 97% of Vue sites with setTimeout(). Within Vue, sites with requestAnimationFrame() and setTimeout() have a good INP about equally often.

How timer churn (setInterval) and yielding APIs affect input responsiveness

Nearly every site uses setTimeout() (99.9%, 98% good INP), while 75.1% run recurring setInterval() timers (98% good INP, 87ms median) and 77.3% use requestAnimationFrame() (98% good INP). For background work, 33.3% call requestIdleCallback() (98% good INP, 87ms median), while the 2.6% (1,622 sites) adopting scheduler.yield() achieve a 84ms median INP (98% good INP) by yielding to pending user input with priority continuation.

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,166 sites with main-thread scheduling API usageBy Arjen Karel · corewebvitals.io/state-of-cwv
5

Understanding main-thread task scheduling APIs

Replace recurring setInterval() polling in sliders and notification plugins with IntersectionObserver or event-driven listeners, and yield inside long initialization loops using scheduler.yield(). On WordPress, 75.1% of sites run setInterval() timers (87ms median INP) while 2.6% use scheduler.yield() (84ms median INP).

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,166 sites with main-thread scheduling API usageBy Arjen Karel · corewebvitals.io/state-of-cwv
Related signals Interaction invoker types → CSS hints → Yielding strategy → INP phase breakdown → By Arjen Karel · 63,295 crawled WordPress sites (60,855 with all devices Chrome field data, 63,166 sites with main-thread scheduling API usage, October 2026) · How we measured