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
85ms
Top INP
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 INP
0
100ms
200ms
300ms
400ms
500ms
scheduler.yield()82ms5% of sites
none85ms69% of sites
requestIdleCallback()93ms27% of sites
isInputPending()112ms0% of sites
scheduler.postTask()146ms0% of sites
VariantShare of sitesMedian
scheduler.yield() 8,913 sites
5%
82ms
none 127,151 sites
69%
85ms
requestIdleCallback() 48,999 sites
27%
93ms
isInputPending() 49 sites
0%
112ms
scheduler.postTask() 34 sites
0%
146ms

Little daylight between the groups: every variant sits near 82ms median INP. computed

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

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

VariantSitesPassing INPINP
None 68.7% 127,151 95% 85ms
Scheduler.yield() 4.8% 8,913 95% 82ms
RequestIdleCallback() 26.5% 48,999 94% 93ms
IsInputPending() 0% 49 85% 112ms
Scheduler.postTask() 0% 34 71% 146ms
Good Needs Improvement Poor Sorted best-passing first · median colored by its own rating · pass = good INP (200ms at p75) · one value per site

No variant stands out: pass rates sit between 94% and 95%. 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