Main-thread CPU (lab)

DevTools-style main-thread CPU split on the lab crawl: loading, scripting, rendering, painting.

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 Main-thread CPU (lab)

DevTools-style main-thread CPU split on the lab crawl: loading, scripting, rendering, painting.

651ms
Median CWV stack
the measures at p50
67%
Biggest: Scripting
434ms of the stack

On the typical lab load, 434ms of main-thread time goes to JavaScript.

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

Where the milliseconds go the phases at the median, against the budget

Loading14ms2% of the total Scripting434ms67% of the total Rendering125ms19% of the total Painting78ms12% of the total
Loading 14ms · 2% Scripting 434ms · 67% Rendering 125ms · 19% Painting 78ms · 12%

At the median the whole stack uses 651ms. The biggest piece is Scripting at 434ms, 67% of the total. computed

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

Passing CLS per phase the share of sites passing, by how long each phase takes

100%75%50%25%
Loading Scripting Rendering Painting

Each line is one phase: left = sites where it is quick, right = sites where it drags (buckets, short to long). The steeper the fall, the more that phase decides CLS.

Loading falls hardest: from its fastest to its slowest bucket the CLS pass rate drops -2 points, down to 83%. computed

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

The 4 distributions how each phase spreads across sites - color is the share passing in that range

Loading p50 14ms · p75 43ms
0>p98
Scripting p50 434ms · p75 1.1s
0>p98
Rendering p50 125ms · p75 370ms
0>p98
Painting p50 78ms · p75 137ms
0>p98
mostly passing tipping mostly failing

Loading stays green across its whole range: it never decides CLS. Loading turns red in its tail - the failing sites live there. computed

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

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

The main thread's time on the lab load, split four ways. Loading is parsing bytes. Scripting is JavaScript. Rendering is style and layout. Painting is pixels. The shape tells you what kind of page it is: a script-dominated profile points at INP risk, a rendering-heavy profile points at DOM and style cost.

On most modern pages scripting is the biggest slice by far. That is the same thread the visitor's first click has to share.

How does this affect the Core Web Vitals?

Main-thread CPU (lab) correlates with the CLS. Of the 4 parts, painting time separates passing sites from failing sites the most. Where the painting time is low, 79% of sites pass the CLS. Where it is high, 87% do. The rise is gradual.

Related signals Document lifecycle (lab) → Lab paint timeline → Total Blocking Time (lab) → Chrome field data from 189,915 sites, representing millions of real page loads · How we measured