Stylesheet initiators on React sites

37.5% of audited sites (3,593) load stylesheets directly via the HTML parser (69% good LCP, 2.0s median), whereas the 36.1% (3,459) injecting stylesheets via JavaScript drop to 81% good LCP (1.5s median).

Field data PhoneDesktopAll Scope All sites October 2026 edition · All devices field outcomes · React sites only
React Scoped to 9,570 sites out of 210,902 analyzed (frameworks) Compare with all sites →

99.3% of React sites use inline <style> blocks stylesheet initiator type, and 85% of those sites have a good LCP, against 85% of all React sites.

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 9,569 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
1

LCP pass rate

Sites with inline <style> blocks stylesheet initiator type have a good LCP most often: 85%, against 85% of all React sites. Sites with other CSS initiators CSS initiators have it least often, at 67%.

SitesGood, needs improvement, poor LCPMedian
All React sites9,11085%1.4s
Inline <style> blocks 99.3%9,04785%1.4s
Script-injected CSS 36.1%3,30781%1.5s
HTML parser (<link rel="stylesheet">) 37.5%3,46269%2.0s
Other initiators (@import / headers) 1.1%10167%1.8s
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 9,569 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
2

Stylesheet initiator type usage

Inline <style> blocks is the most used: 99.3% of React sites.

Sites using each option (sites can use more than one) 9,569 sites
Inline <style> blocks 99.3% HTML parser (<link rel="stylesheet">) 37.5% Script-injected CSS 36.1%
Inline <style> blocks 99.3% HTML parser (<link rel="stylesheet">) 37.5% Script-injected CSS 36.1% Other initiators (@import / headers) 1.1%
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 9,569 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 inline <style> blocks and other CSS initiators sits in resource load delay: 439 ms median for inline <style> blocks against 628 ms for other CSS initiators. Overall median field LCP is 1.4s for inline <style> blocks (TTFB 516 ms, load delay 439 ms, load duration 146 ms, render delay 174 ms) versus 1.8s for other CSS initiators.

Median LCP phase breakdown (Chrome field p75) Load delay Median LCP
React sites with stylesheet initiator type 6,739516 ms440 ms440 mslab 440 ms1.4s
HTML parser (<link rel="stylesheet">) 2,552970 ms423 ms247 ms423 mslab 423 ms2.0s
Inline <style> blocks 6,699516 ms439 ms439 mslab 439 ms1.4s
Script-injected CSS 2,487559 ms447 ms447 mslab 447 ms1.5s
Other initiators (@import / headers) 79639 ms628 ms266 ms628 mslab 628 ms1.8s
TTFB Resource load delay Resource load time Element render delay
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 9,569 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
4

Stylesheet initiator type per platform

Wix sets the stylesheet initiator type to inline <style> blocks on 100% of its sites, and 94% of Wix sites have a good LCP, against 85% of all sites.

PlatformStylesheet initiator type on its sitesGood LCP
React sites with stylesheet initiator type 9,569 sitesInline <style> blocks 99%HTML parser (<link rel="stylesheet">) 38%Script-injected CSS 36%85%
Wix 5,824 sitesInline <style> blocks 100%Script-injected CSS 31%94%
WordPress 2,342 sitesInline <style> blocks 100%HTML parser (<link rel="stylesheet">) 97%Script-injected CSS 46%61%
Inline <style> blocks HTML parser (<link rel="stylesheet">) Script-injected CSS Other initiators (@import / headers)
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 9,569 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
5

Stylesheet initiator or the platform

Does the platform explain the stylesheet initiator type difference?

On Wix, 94% of sites with inline <style> blocks stylesheet initiator type have a good LCP, against 87% of Wix sites with parser-initiated stylesheets. Within Wix, sites with inline <style> blocks have a good LCP more often. On WordPress, 61% of sites with inline <style> blocks stylesheet initiator type have a good LCP, against 61% of WordPress sites with parser-initiated stylesheets. Within WordPress, sites with inline <style> blocks and parser-initiated stylesheets have a good LCP about equally often.

Why JavaScript-injected stylesheets delay rendering and trigger layout recalculation

Stylesheets declared in HTML (37.5% of sites, 3,593) are discovered immediately by the preload scanner (69% good LCP, 2.0s median), and inline <style> blocks (99.3%) require zero network round-trips (85% good LCP). When stylesheets are injected at runtime by JavaScript (36.1% of sites, 3,459), CSS discovery waits for script download and execution, dropping good LCP to 81% (1.5s median).

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 9,569 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
6

Understanding stylesheet initiators

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, 37.5% use parser-initiated CSS (69% good LCP) while 36.1% inject CSS via JavaScript (81% good LCP).

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 9,569 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
Related signals Image dimensions set → Script initiator → Stylesheets per page → Scripts per page → By Arjen Karel · 9,570 crawled React sites (9,110 with all devices Chrome field data, 9,569 sites with stylesheet initiator type, October 2026) · How we measured