Main-thread task scheduling APIs on React sites
100.0% of audited sites (9,563) schedule tasks via setTimeout (92% good INP), 92.6% use requestAnimationFrame (92% good INP), 85.4% use requestIdleCallback (93% good INP), and 62.9% adopt modern scheduler.yield() (96% good INP, 79ms median).
62.9% of React sites use scheduler.yield() main-thread scheduling API usage, and 96% of those sites have a good INP, against 92% of all React sites.
INP pass rate
Sites with scheduler.yield() main-thread scheduling API usage have a good INP most often: 96%, against 92% of all React sites. Sites with setInterval() task scheduling have it least often, at 91%.
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 96% of Wix sites have a good INP, against 92% of all sites. WordPress sets the main-thread scheduling API usage to setTimeout() on 100% of its sites, and 96% 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, 96% of sites with scheduler.yield() main-thread scheduling API usage have a good INP, against 96% 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%, 92% good INP), while 63.3% run recurring setInterval() timers (91% good INP, 96ms median) and 92.6% use requestAnimationFrame() (92% good INP). For background work, 85.4% call requestIdleCallback() (93% good INP, 88ms median), while the 62.9% (6,014 sites) adopting scheduler.yield() achieve a 79ms median INP (96% 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() (79ms median INP) while 85.4% use requestIdleCallback() (88ms median INP).
By Arjen Karel · 9,570 crawled React sites (5,488 with phone Chrome field data, 9,563 sites with main-thread scheduling API usage, October 2026). How we measured.