WordPress stylesheet initiators and the Core Web Vitals

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

Field data PhoneDesktopAll Scope All sites October 2026 edition · Desktop 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 76% of those sites have a good LCP, against 76% of all WordPress sites.

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 17,005 with desktop 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: 76%, against 76% of all WordPress sites. Sites with other CSS initiators CSS initiators have it least often, at 70%.

SitesGood, needs improvement, poor LCPMedian
All WordPress sites17,00576%1.7s
Inline <style> blocks 99.4%16,91576%1.7s
HTML parser (<link rel="stylesheet">) 97.4%16,38976%1.8s
Script-injected CSS 40.1%7,52273%1.8s
Other initiators (@import / headers) 1.8%36070%1.9s
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 17,005 with desktop 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 · 17,005 with desktop 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 time to first byte (TTFB): 999 ms median for inline <style> blocks against 912 ms for other CSS initiators. Overall median field LCP is 1.8s for inline <style> blocks (TTFB 999 ms, load delay 289 ms, load duration 129 ms, render delay 219 ms) versus 1.9s for other CSS initiators.

Median LCP phase breakdown (Chrome field p75) Load delay Median LCP
WordPress sites with stylesheet initiator type 11,803999 ms289 ms219 ms289 mslab 330 ms1.8s
Inline <style> blocks 11,741999 ms289 ms219 ms289 mslab 331 ms1.8s
HTML parser (<link rel="stylesheet">) 11,3941002 ms290 ms218 ms290 mslab 334 ms1.8s
Script-injected CSS 5,2881035 ms308 ms225 ms308 mslab 351 ms1.8s
Other initiators (@import / headers) 250912 ms333 ms234 ms333 mslab 391 ms1.9s
TTFB Resource load delay Resource load time Element render delay
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 17,005 with desktop 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 82% of Alpine sites have a good LCP, against 76% 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%76%
Alpine 380 sitesInline <style> blocks 100%HTML parser (<link rel="stylesheet">) 97%Script-injected CSS 36%82%
jQuery 60,308 sitesInline <style> blocks 99%HTML parser (<link rel="stylesheet">) 97%Script-injected CSS 41%75%
Vue 4,844 sitesInline <style> blocks 100%HTML parser (<link rel="stylesheet">) 95%Script-injected CSS 88%75%
React 2,233 sitesInline <style> blocks 100%HTML parser (<link rel="stylesheet">) 97%Script-injected CSS 47%66%
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 · 17,005 with desktop 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, 75% of sites with inline <style> blocks stylesheet initiator type have a good LCP, against 74% 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, 66% of sites with inline <style> blocks stylesheet initiator type have a good LCP, against 65% 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 (76% good LCP, 1.8s median), and inline <style> blocks (99.4%) require zero network round-trips (76% 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 73% (1.8s median).

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 17,005 with desktop 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 (76% good LCP) while 40.1% inject CSS via scripts (73% good LCP, 1.8s median).

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