Main-thread task scheduling APIs on React sites
100.0% of audited sites (9,563) schedule tasks via setTimeout (99% good INP), 92.6% use requestAnimationFrame (99% good INP), 85.4% use requestIdleCallback (99% good INP), and 62.9% adopt modern scheduler.yield() (100% good INP, 39ms median).
62.9% of React sites use scheduler.yield() main-thread scheduling API usage, and 100% of those sites have a good INP, against 99% of all React sites.
INP pass rate
Sites with scheduler.yield() main-thread scheduling API usage have a good INP most often: 100%, against 99% of all React sites. Sites with setTimeout() task scheduling have it least often, at 99%.
Main-thread scheduling API usage usage
SetTimeout() is the most used: 100.0% of React sites. Scheduler.yield() is 62.9% of React sites.
Main-thread scheduling API usage per platform
Wix sets the main-thread scheduling API usage to scheduler.yield() on 100% of its sites, and 100% of Wix sites have a good INP, against 99% of all sites. WordPress sets the main-thread scheduling API usage to setTimeout() on 100% of its sites, and 100% of WordPress sites have a good INP.
Scheduling APIs or the platform
Does the platform explain the main-thread scheduling API usage difference?
Almost every site with scheduler.yield() main-thread scheduling API usage is a Wix site, and almost every Wix site has scheduler.yield() main-thread scheduling API usage, so the data can't tell scheduler.yield() main-thread scheduling API usage and Wix apart. On WordPress, 100% of sites with scheduler.yield() main-thread scheduling API usage have a good INP, against 100% of WordPress sites with setTimeout(). Within WordPress, sites with scheduler.yield() and setTimeout() 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 63.3% run recurring setInterval() timers (99% good INP, 51ms median) and 92.6% use requestAnimationFrame() (99% good INP). For background work, 85.4% call requestIdleCallback() (99% good INP, 47ms median), while the 62.9% (6,014 sites) adopting scheduler.yield() achieve a 39ms median INP (100% 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, 62.9% use scheduler.yield() (39ms median INP) while 85.4% use requestIdleCallback() (47ms median INP).
By Arjen Karel · 9,570 crawled React sites (1,979 with desktop Chrome field data, 9,563 sites with main-thread scheduling API usage, October 2026). How we measured.