WordPress stylesheet initiators and the Core Web Vitals

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

Field data PhoneDesktopAll Scope All sites October 2026 edition · Phone 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 69% 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 · 36,524 with phone 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: 69%, against 70% of all WordPress sites. Sites with other CSS initiators CSS initiators have it least often, at 66%.

SitesGood, needs improvement, poor LCPMedian
All WordPress sites36,52470%2.0s
Inline <style> blocks 99.4%36,32369%2.0s
HTML parser (<link rel="stylesheet">) 97.4%35,53869%2.0s
Script-injected CSS 40.1%15,27766%2.1s
Other initiators (@import / headers) 1.8%64366%2.0s
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 36,524 with phone 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 · 36,524 with phone 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: 355 ms median for inline <style> blocks against 443 ms for other CSS initiators. Overall median field LCP is 2.0s for inline <style> blocks (TTFB 1117 ms, load delay 355 ms, load duration 182 ms, render delay 243 ms) versus 2.0s for other CSS initiators.

Median LCP phase breakdown (Chrome field p75) Load delay Median LCP
WordPress sites with stylesheet initiator type 26,0461116 ms355 ms242 ms355 mslab 346 ms2.0s
Inline <style> blocks 25,9071117 ms355 ms243 ms355 mslab 346 ms2.0s
HTML parser (<link rel="stylesheet">) 25,3491123 ms358 ms242 ms358 mslab 349 ms2.0s
Script-injected CSS 11,0441160 ms376 ms253 ms376 mslab 369 ms2.1s
Other initiators (@import / headers) 4521038 ms443 ms276 ms443 mslab 425 ms2.0s
TTFB Resource load delay Resource load time Element render delay
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 36,524 with phone 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 78% 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%78%
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%67%
React 2,233 sitesInline <style> blocks 100%HTML parser (<link rel="stylesheet">) 97%Script-injected CSS 47%63%
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 · 36,524 with phone 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, 67% of sites with inline <style> blocks stylesheet initiator type have a good LCP, against 66% 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, 63% of sites with inline <style> blocks stylesheet initiator type have a good LCP, against 63% 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 (69% good LCP, 2.0s median), and inline <style> blocks (99.4%) require zero network round-trips (69% 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.1s median).

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 36,524 with phone 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 (69% good LCP) while 40.1% inject CSS via scripts (66% good LCP, 2.1s median).

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