WordPress stylesheet initiators and the Core Web Vitals

97.4% of audited sites (61,625) load stylesheets directly via the HTML parser (70% good LCP, 1.9s median), whereas the 40.1% (25,378) injecting stylesheets via JavaScript drop to 66% good LCP (2.0s median).

Field data PhoneDesktopAll Scope All sites October 2026 edition · All devices field outcomes · WordPress sites only
WordPress Scoped to 63,295 sites out of 203,892 analyzed (cms) Compare with all sites →

99.4% of WordPress sites use inline <style> blocks stylesheet initiator type, and 70% of those sites have a good LCP, against 70% of all WordPress sites.

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,289 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: 70%, against 70% of all WordPress sites. Sites with other CSS initiators CSS initiators have it least often, at 63%.

SitesGood, needs improvement, poor LCPMedian
All WordPress sites60,85570%1.9s
Inline <style> blocks 99.4%60,51070%1.9s
HTML parser (<link rel="stylesheet">) 97.4%59,22870%1.9s
Script-injected CSS 40.1%24,52966%2.0s
Other initiators (@import / headers) 1.8%1,10463%2.1s
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,289 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.4% of WordPress sites.

Sites using each option (sites can use more than one) 63,289 sites
Inline <style> blocks 99.4% HTML parser (<link rel="stylesheet">) 97.4% Script-injected CSS 40.1%
Inline <style> blocks 99.4% HTML parser (<link rel="stylesheet">) 97.4% Script-injected CSS 40.1% Other initiators (@import / headers) 1.8%
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,289 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: 341 ms median for inline <style> blocks against 415 ms for other CSS initiators. Overall median field LCP is 1.9s for inline <style> blocks (TTFB 1129 ms, load delay 341 ms, load duration 166 ms, render delay 235 ms) versus 2.1s for other CSS initiators.

Median LCP phase breakdown (Chrome field p75) Load delay Median LCP
WordPress sites with stylesheet initiator type 43,6171127 ms340 ms235 ms340 mslab 340 ms1.9s
Inline <style> blocks 43,3791129 ms341 ms235 ms341 mslab 341 ms1.9s
HTML parser (<link rel="stylesheet">) 42,4511134 ms343 ms235 ms343 mslab 343 ms1.9s
Script-injected CSS 17,8531180 ms364 ms245 ms364 mslab 364 ms2.1s
Other initiators (@import / headers) 7801081 ms415 ms263 ms415 mslab 415 ms2.1s
TTFB Resource load delay Resource load time Element render delay
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,289 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
4

Stylesheet initiator type per framework

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

FrameworkStylesheet initiator type on its sitesGood LCP
WordPress sites with stylesheet initiator type 63,289 sitesInline <style> blocks 99%HTML parser (<link rel="stylesheet">) 97%Script-injected CSS 40%70%
Alpine 380 sitesInline <style> blocks 100%HTML parser (<link rel="stylesheet">) 97%Script-injected CSS 36%80%
jQuery 60,308 sitesInline <style> blocks 99%HTML parser (<link rel="stylesheet">) 97%Script-injected CSS 41%69%
Vue 4,844 sitesInline <style> blocks 100%HTML parser (<link rel="stylesheet">) 95%Script-injected CSS 88%68%
React 2,233 sitesInline <style> blocks 100%HTML parser (<link rel="stylesheet">) 97%Script-injected CSS 47%61%
Inline <style> blocks HTML parser (<link rel="stylesheet">) Script-injected CSS Other initiators (@import / headers)
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,289 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
5

Stylesheet initiator or the framework

Does the framework explain the stylesheet initiator type difference?

Almost every site with inline <style> blocks stylesheet initiator type is a jQuery site, and almost every jQuery site has inline <style> blocks stylesheet initiator type, so the data can't tell inline <style> blocks stylesheet initiator type and jQuery apart. On Vue, 68% of sites with inline <style> blocks stylesheet initiator type have a good LCP, against 67% of Vue sites with parser-initiated stylesheets. Within Vue, sites with inline <style> blocks and parser-initiated stylesheets have a good LCP about equally often. On React, 61% of sites with inline <style> blocks stylesheet initiator type have a good LCP, against 61% of React sites with parser-initiated stylesheets. Within React, 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 (97.4% of sites, 61,625) are discovered immediately by the preload scanner (70% good LCP, 1.9s median), and inline <style> blocks (99.4%) require zero network round-trips (70% good LCP). When stylesheets are injected at runtime by JavaScript (40.1% of sites, 25,378), CSS discovery waits for script download and execution, dropping good LCP to 66% (2.0s median).

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,289 sites with stylesheet initiator typeBy Arjen Karel · corewebvitals.io/state-of-cwv
6

Understanding stylesheet initiators

Avoid JavaScript-based CSS loaders and widget scripts that append <link rel="stylesheet"> tags after DOMContentLoaded; declare critical styles in HTML <head>. On WordPress, 97.4% of sites load CSS via the HTML parser (70% good LCP) while 40.1% inject CSS via scripts (66% good LCP, 2.0s median).

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,289 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 · 63,295 crawled WordPress sites (60,855 with all devices Chrome field data, 63,289 sites with stylesheet initiator type, October 2026) · How we measured