Main-thread task scheduling APIs on Wix sites

100.0% of audited sites (5,621) schedule tasks via setTimeout (100% good INP), 99.8% use requestAnimationFrame (100% good INP), 99.8% use requestIdleCallback (100% good INP), and 99.9% adopt modern scheduler.yield() (100% good INP, 37ms median).

Field data PhoneDesktopAll Scope All sites October 2026 edition · Desktop field outcomes · Wix sites only
Wix Scoped to 5,623 sites out of 203,892 analyzed (cms) Compare with all sites →

52.8% of Wix sites use setInterval() main-thread scheduling API usage, and 100% of those sites have a good INP, against 100% of all Wix sites.

The State of Web Vitals · October 2026 · Wix: 5,621 crawled sites · 728 with desktop field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
1

INP pass rate

Sites with setInterval() main-thread scheduling API usage have a good INP most often: 100%, against 100% of all Wix sites. Sites with requestIdleCallback() task scheduling have it least often, at 100%.

SitesGood, needs improvement, poor INPMedian
All Wix sites728100%37ms
setInterval() 52.8%457100%39ms
setTimeout() 100.0%728100%37ms
scheduler.yield() 99.9%726100%37ms
requestAnimationFrame() 99.8%727100%37ms
requestIdleCallback() 99.8%725100%37ms
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · Wix: 5,621 crawled sites · 728 with desktop field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
2

Main-thread scheduling API usage usage

SetTimeout() is the most used: 100.0% of Wix sites. SetInterval() is 52.8% of Wix sites.

Sites using each option (sites can use more than one) 5,621 sites
setTimeout() 100.0% scheduler.yield() 99.9% requestIdleCallback() 99.8% requestAnimationFrame() 99.8% setInterval() 52.8%
setTimeout() 100.0% scheduler.yield() 99.9% requestIdleCallback() 99.8% requestAnimationFrame() 99.8% setInterval() 52.8%
The State of Web Vitals · October 2026 · Wix: 5,621 crawled sites · 728 with desktop field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
3

Main-thread scheduling API usage per framework

React sets the main-thread scheduling API usage to setInterval() on 53% of its sites, and 100% of React sites have a good INP, against 100% of all sites.

FrameworkMain-thread scheduling API usage on its sitesGood INP
All Wix sites 5,621 sitessetTimeout() 100%scheduler.yield() 100%requestIdleCallback() 100%requestAnimationFrame() 100%setInterval() 53%100%
React 5,620 sitessetTimeout() 100%scheduler.yield() 100%requestIdleCallback() 100%requestAnimationFrame() 100%setInterval() 53%100%
setTimeout() scheduler.yield() requestIdleCallback() requestAnimationFrame() setInterval()
The State of Web Vitals · October 2026 · Wix: 5,621 crawled sites · 728 with desktop field dataBy 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 React, 100% of sites with setInterval() main-thread scheduling API usage have a good INP, against 100% of React sites with setTimeout(). Within React, sites with setInterval() 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%, 100% good INP), while 52.8% run recurring setInterval() timers (100% good INP, 39ms median) and 99.8% use requestAnimationFrame() (100% good INP). For background work, 99.8% call requestIdleCallback() (100% good INP, 37ms median), while the 99.9% (5,617 sites) adopting scheduler.yield() achieve a 37ms median INP (100% good INP) by yielding to pending user input with priority continuation.

The State of Web Vitals · October 2026 · Wix: 5,621 crawled sites · 728 with desktop field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
5

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, 99.9% use scheduler.yield() (37ms median INP) while 99.8% use requestIdleCallback() (37ms median INP).

The State of Web Vitals · October 2026 · Wix: 5,621 crawled sites · 728 with desktop field dataBy Arjen Karel · corewebvitals.io/state-of-cwv
Related signals Interaction invoker types → CSS hints → Yielding strategy → INP phase breakdown → By Arjen Karel · 5,621 crawled Wix sites (728 with desktop Chrome field data, October 2026) · How we measured