Stylesheet initiators and the Core Web Vitals

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

Field data PhoneDesktopAll Scope All sites October 2026 edition · Phone 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 · 126,761 with phone 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 76%.

SitesGood, needs improvement, poor LCPMedian
All sites126,76182%1.6s
Other initiators (@import / headers) 5.4%7,31687%1.5s
HTML parser (<link rel="stylesheet">) 92.3%114,25681%1.6s
Inline <style> blocks 88.3%109,25480%1.6s
Script-injected CSS 32.5%41,37476%1.7s
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · 210,902 crawled sites · 126,761 with phone 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 · 126,761 with phone 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): 470 ms median for other CSS initiators against 687 ms for script-injected stylesheets. Overall median field LCP is 1.5s for other CSS initiators (TTFB 470 ms, load delay 523 ms, load duration 178 ms, render delay 292 ms) versus 1.7s for script-injected stylesheets.

Median LCP phase breakdown (Chrome field p75) Load delay Median LCP
Sites with stylesheet initiator type 90,386650 ms336 ms236 ms336 mslab 326 ms1.6s
HTML parser (<link rel="stylesheet">) 83,635665 ms331 ms239 ms331 mslab 320 ms1.6s
Inline <style> blocks 80,523675 ms354 ms239 ms354 mslab 344 ms1.6s
Script-injected CSS 31,063687 ms406 ms254 ms406 mslab 397 ms1.7s
Other initiators (@import / headers) 5,781470 ms523 ms178 ms292 ms523 mslab 518 ms1.5s
TTFB Resource load delay Resource load time Element render delay
The State of Web Vitals · October 2026 · 210,902 crawled sites · 126,761 with phone 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 (81% good LCP, 1.6s median), and inline <style> blocks (88.3%) require zero network round-trips (80% 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 76% (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 (81% good LCP) while 32.5% inject CSS via JavaScript (76% good LCP).

The State of Web Vitals · October 2026 · 210,902 crawled sites · 126,761 with phone 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
69% vs 66% good LCP (parser CSS vs script-injected CSS)

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

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

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

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

Across 9,569 React sites, 99.3% emit inline <style> tags (84% good LCP, 1.4s median), 36.1% load CSS from JS chunks (80% good LCP), and 37.5% load parser <link rel="stylesheet"> tags (70% 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 (126,761 with phone Chrome field data, 198,997 sites with stylesheet initiator type, October 2026) · How we measured