Scheduling API use
How the page schedules main-thread work: scheduler.yield / postTask vs setTimeout churn.
At a glance the headline numbers for Scheduling API use
How the page schedules main-thread work: scheduler.yield / postTask vs setTimeout churn.
2.0% of scheduling calls use scheduler.yield. 46.2% chunk work with setTimeout.
The scheduling API use mix who uses what, and how stable each group is
Scheduling API use. On the fleet: 47.6% raf, 46.2% settimeout, 3.4% requestidlecallback. 65.7% of sites use at least one raf.
Lowest-share bucket: CLS 0.00. Highest-share bucket: CLS 0.00. r = +0.39.
By count raf leads (47.6%); by bytes it is scheduler yield (0.0%). computed
Passing CLS per bucket every category and count level at once - color is the pass rate
Each row is a category, each column its own count bucket (few on the left, many on the right); the cell is the share of those sites passing CLS.
SetInterval swings the hardest: 93% of sites pass CLS with few, 70% with many. computed
Few vs many - does quantity cost CLS? the pass rate with few vs many of each category
Per category: the pass rate among pages with FEW of it (hollow ring) against pages with MANY (solid dot), worst trend first. Thin buckets are excluded from the endpoints.
More SetInterval costs the most: the CLS pass rate falls from 93% with few to 70% with many. computed
Why this matters for the Core Web Vitals, and where to start fixing it
Long tasks block every interaction that arrives while they run. The fix is yielding: split the work and give the browser a chance to handle input in between. How a site yields matters. scheduler.yield hands control back and resumes with priority. postTask schedules work with an explicit priority. A setTimeout chain yields too, but blindly: no priority, and every link in the chain adds delay.
Seeing the modern scheduler APIs on a site is a strong signal: someone engineered the INP instead of inheriting it.
How does this affect the Core Web Vitals?
Passing INP barely moves across the range: 96% at one end, 92% at the other. This signal does not separate passing sites from failing ones.
The split is bigger on LCP: 87% pass where Raf is rare, 79% where it is common.
Chrome field data from 94,910 sites, representing millions of real page loads. How we measured.