Stylesheet initiators and the Core Web Vitals

92.3% of audited sites (183,683) load stylesheets directly via the HTML parser (82% good LCP, 1.5s median), whereas the 32.5% (64,771) injecting stylesheets via JavaScript drop to 77% good LCP (1.7s median).

Field data PhoneDesktopAll Scope All sites October 2026 edition · All devices field outcomes

5.4% of sites use other CSS initiators stylesheet initiator type, and 87% of those sites have a good LCP, against 82% of all sites.

The State of Web Vitals · October 2026 · 210,902 crawled sites · 196,263 with all devices field data · 198,997 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
1

LCP pass rate

Sites with other CSS initiators stylesheet initiator type have a good LCP most often: 87%, against 82% of all sites. Sites with script-injected stylesheets CSS initiators have it least often, at 77%.

SitesGood, needs improvement, poor LCPMedian
All sites196,26382%1.5s
Other initiators (@import / headers) 5.4%10,38787%1.5s
HTML parser (<link rel="stylesheet">) 92.3%176,81082%1.5s
Inline <style> blocks 88.3%169,16881%1.6s
Script-injected CSS 32.5%62,63277%1.7s
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · 210,902 crawled sites · 196,263 with all devices field data · 198,997 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
2

Stylesheet initiator type usage

Parser-initiated stylesheets is the most used: 92.3% of sites. Other CSS initiators is 5.4% of sites.

Sites using each option (sites can use more than one) 198,997 sites
HTML parser (<link rel="stylesheet">) 92.3% Inline <style> blocks 88.3% Script-injected CSS 32.5%
HTML parser (<link rel="stylesheet">) 92.3% Inline <style> blocks 88.3% Script-injected CSS 32.5% Other initiators (@import / headers) 5.4%
The State of Web Vitals · October 2026 · 210,902 crawled sites · 196,263 with all devices field data · 198,997 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
3

LCP phase breakdown by stylesheet initiator

Across the four LCP sub-parts in Chrome's field data, the largest gap between other CSS initiators and script-injected stylesheets sits in time to first byte (TTFB): 459 ms median for other CSS initiators against 693 ms for script-injected stylesheets. Overall median field LCP is 1.5s for other CSS initiators (TTFB 459 ms, load delay 509 ms, load duration 173 ms, render delay 278 ms) versus 1.7s for script-injected stylesheets.

Median LCP phase breakdown (Chrome field p75) Load delay Median LCP
Sites with stylesheet initiator type 139,176647 ms319 ms224 ms319 mslab 319 ms1.5s
HTML parser (<link rel="stylesheet">) 128,809663 ms313 ms227 ms313 mslab 313 ms1.5s
Inline <style> blocks 123,867677 ms337 ms227 ms337 mslab 337 ms1.6s
Script-injected CSS 46,649693 ms389 ms242 ms389 mslab 389 ms1.7s
Other initiators (@import / headers) 8,126459 ms509 ms173 ms278 ms509 mslab 509 ms1.5s
TTFB Resource load delay Resource load time Element render delay
The State of Web Vitals · October 2026 · 210,902 crawled sites · 196,263 with all devices field data · 198,997 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
4

Understanding stylesheet initiators

Why JavaScript-injected stylesheets delay rendering and trigger layout recalculation

Stylesheets declared in HTML (92.3% of sites, 183,683) are discovered immediately by the preload scanner (82% good LCP, 1.5s median), and inline <style> blocks (88.3%) require zero network round-trips (81% good LCP). When stylesheets are injected at runtime by JavaScript (32.5% of sites, 64,771), CSS discovery waits for script download and execution, dropping good LCP to 77% (1.7s median).

Extract component CSS at build time into static <link rel="stylesheet"> tags or inline critical <style> blocks instead of injecting stylesheets dynamically from JavaScript at runtime. Across all audited sites, 92.3% use parser-initiated CSS (82% good LCP) while 32.5% inject CSS via JavaScript (77% good LCP).

The State of Web Vitals · October 2026 · 210,902 crawled sites · 196,263 with all devices field data · 198,997 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
Platform & Framework Takeaways

How stylesheet initiator type plays out per platform

What the field data shows when you isolate a single CMS or framework.

WordPress 65,503 sites
70% vs 66% good LCP (parser CSS vs script-injected CSS)

39.9% of WordPress sites inject stylesheets from JavaScript (66% vs 70% good LCP, 4 points apart).

Across 65,503 WordPress sites, 97.4% load CSS from the HTML parser (70% good LCP, 1.9s median) and 39.9% inject stylesheets from JavaScript (66% good LCP, 2.0s median).

Read the WordPress stylesheet initiator breakdown →
React & Next.js 9,569 sites
85% vs 69% good LCP (inline CSS vs external parser CSS)

99.3% of React & Next.js sites use inline styles (85% good LCP), while 37.5% load external <link> CSS (69%).

Across 9,569 React sites, 99.3% emit inline <style> tags (85% good LCP, 1.4s median), 36.1% load CSS from JS chunks (81% good LCP), and 37.5% load parser <link rel="stylesheet"> tags (69% good LCP, 2.0s median).

Related signals Image dimensions set → Script initiator → Stylesheets per page → Scripts per page → By Arjen Karel · 210,902 crawled sites (196,263 with all devices Chrome field data, 198,997 sites with stylesheet initiator type, October 2026) · How we measured