Yielding strategy

The dominant main-thread yielding pattern the site uses, if any.

Field data PhoneDesktopAll Scope All sites Q2 2026 edition · All devices field outcomes
Metric LCP INP CLS
1

At a glance the headline numbers for Yielding strategy

The dominant main-thread yielding pattern the site uses, if any.

5
Categories
185,146 sites
68.7%
Top share
none
1.5s
Top LCP
Median for none

68.7% of sites never yield the main thread at all.

The State of Web Vitals · Q2 2026 · 189,915 sites · all devices field datacorewebvitals.io/state-of-cwv
2

Yielding strategy who uses what, and how fast each group loads

Median LCP
0
0.5s
1s
1.5s
2s
2.5s
3s
3.5s
4s
scheduler.yield()1.3s5% of sites
isInputPending()1.4s0% of sites
none1.5s69% of sites
requestIdleCallback()1.7s27% of sites
scheduler.postTask()1.7s0% of sites
VariantShare of sitesMedian
scheduler.yield() 8,913 sites
5%
1.3s
isInputPending() 49 sites
0%
1.4s
none 127,151 sites
69%
1.5s
requestIdleCallback() 48,999 sites
27%
1.7s
scheduler.postTask() 34 sites
0%
1.7s

Scheduler.yield() sites post the best median LCP (1.3s). Scheduler.postTask() sites trail at 1.7s. Correlation, not causation. computed

The State of Web Vitals · Q2 2026 · 189,915 sites · all devices field datacorewebvitals.io/state-of-cwv
3

Passing LCP per yielding strategy which group passes the LCP most often

VariantSitesPassing LCPLCP
IsInputPending() 0% 49 92% 1.4s
Scheduler.yield() 4.8% 8,913 90% 1.3s
Scheduler.postTask() 0% 34 84% 1.7s
None 68.7% 127,151 84% 1.5s
RequestIdleCallback() 26.5% 48,999 78% 1.7s
Good Needs Improvement Poor Sorted best-passing first · median colored by its own rating · pass = good LCP (2.5s at p75) · one value per site

90% of Scheduler.yield() sites pass LCP. RequestIdleCallback() trails 12 points behind. computed

The State of Web Vitals · Q2 2026 · 189,915 sites · all devices field datacorewebvitals.io/state-of-cwv
4

Why this matters for the Core Web Vitals, and where to start fixing it

This is the site's habit: how its longest scripts give the main thread back, if at all. None means work runs to completion, and every click that lands in the middle waits for all of it. INP is about the worst moments, and the worst moments are unbroken long tasks.

Any yielding beats none. A click that arrives during chunked work waits for the current chunk. A click that arrives during an unbroken task waits for the whole task. If you adopt one habit, make it scheduler.yield where supported, with setTimeout as the fallback.

How does this affect the Core Web Vitals?

The choice barely moves the INP: 95% pass at best, 94% at worst. This signal does not separate passing sites from failing ones.

The split is bigger on LCP. With Scheduler.yield(), 90% of sites pass it. With RequestIdleCallback(), 78% do.

Related signals Scheduling API use → CSS hints → Interaction invoker types → Blocking frame breakdown → Chrome field data from 189,915 sites, representing millions of real page loads · How we measured