WordPress stylesheet loading and placement and the Core Web Vitals

20.7% of audited sites (13,129) use non-blocking stylesheets in <head> and reach 63% good LCP (2.1s median), whereas the 35.7% placing <link rel="stylesheet"> tags inside <body> drop to 62% good LCP (2.2s 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 loading and placement, 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,291 sites with stylesheet loading and placementBy Arjen Karel · corewebvitals.io/state-of-cwv
1

Core Web Vitals pass rate

Sites with inline <style> blocks stylesheet loading and placement have a good LCP most often: 70%, against 70% of all WordPress sites. Sites with <body> stylesheets CSS loading have it least often, at 62%.

SitesGood, needs improvement, poor LCPMedian
All WordPress sites60,85570%1.9s
Inline <style> blocks 99.4%60,51070%1.9s
Render-blocking in <head> 98.9%60,16770%1.9s
Non-blocking in <head> (preload / media) 20.7%12,67563%2.1s
Stylesheets inside <body> 35.7%21,77362%2.2s
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,291 sites with stylesheet loading and placementBy Arjen Karel · corewebvitals.io/state-of-cwv
2

Stylesheet loading and placement usage

Inline <style> blocks is the most used: 99.4% of WordPress sites.

Sites using each option (sites can use more than one) 63,291 sites
Inline <style> blocks 99.4% Render-blocking in <head> 98.9% Stylesheets inside <body> 35.7%
Inline <style> blocks 99.4% Render-blocking in <head> 98.9% Stylesheets inside <body> 35.7% Non-blocking in <head> (preload / media) 20.7%
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,291 sites with stylesheet loading and placementBy Arjen Karel · corewebvitals.io/state-of-cwv
3

LCP phase breakdown by stylesheet placement and loading mode

Across the four LCP sub-parts in Chrome's field data, the largest gap between inline <style> blocks and <body> stylesheets sits in time to first byte (TTFB): 1129 ms median for inline <style> blocks against 1277 ms for <body> stylesheets. 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.2s for <body> stylesheets.

Median LCP phase breakdown (Chrome field p75) Load delay Median LCP
WordPress sites with stylesheet loading and placement 43,6191127 ms340 ms235 ms340 mslab 340 ms1.9s
Non-blocking in <head> (preload / media) 9,3991304 ms334 ms265 ms334 mslab 334 ms2.1s
Inline <style> blocks 43,3791129 ms341 ms235 ms341 mslab 341 ms1.9s
Render-blocking in <head> 43,1431129 ms341 ms235 ms341 mslab 341 ms1.9s
Stylesheets inside <body> 16,0111277 ms397 ms249 ms397 mslab 397 ms2.2s
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,291 sites with stylesheet loading and placementBy Arjen Karel · corewebvitals.io/state-of-cwv
4

Stylesheet loading and placement per framework

Alpine sets the stylesheet loading and placement to inline <style> blocks on 100% of its sites, and 80% of Alpine sites have a good LCP, against 70% of all sites. Vue sets the stylesheet loading and placement to render-blocking <head> stylesheets on 100% of its sites, and 68% of Vue sites have a good LCP.

FrameworkStylesheet loading and placement on its sitesGood LCP
WordPress sites with stylesheet loading and placement 63,291 sitesInline <style> blocks 99%Render-blocking in <head> 99%Stylesheets inside <body> 36%Non-blocking in <head> (preload / media) 21%70%
Alpine 380 sitesInline <style> blocks 100%Render-blocking in <head> 98%Stylesheets inside <body> 29%Non-blocking in <head> (preload / media) 16%80%
jQuery 60,310 sitesInline <style> blocks 99%Render-blocking in <head> 99%Stylesheets inside <body> 37%Non-blocking in <head> (preload / media) 21%69%
Vue 4,844 sitesRender-blocking in <head> 100%Inline <style> blocks 100%Stylesheets inside <body> 39%Non-blocking in <head> (preload / media) 18%68%
React 2,233 sitesInline <style> blocks 100%Render-blocking in <head> 99%Stylesheets inside <body> 46%Non-blocking in <head> (preload / media) 35%61%
Inline <style> blocks Render-blocking in <head> Stylesheets inside <body> Non-blocking in <head> (preload / media)
The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,291 sites with stylesheet loading and placementBy Arjen Karel · corewebvitals.io/state-of-cwv
5

Stylesheet loading or the framework

Does the framework explain the stylesheet loading and placement difference?

Almost every site with inline <style> blocks stylesheet loading and placement is a jQuery site, and almost every jQuery site has inline <style> blocks stylesheet loading and placement, so the data can't tell inline <style> blocks stylesheet loading and placement and jQuery apart. On Vue, 68% of sites with inline <style> blocks stylesheet loading and placement have a good LCP, against 68% of Vue sites with render-blocking <head> stylesheets. Within Vue, sites with inline <style> blocks and render-blocking <head> stylesheets have a good LCP about equally often. On React, 61% of sites with inline <style> blocks stylesheet loading and placement have a good LCP, against 61% of React sites with render-blocking <head> stylesheets. Within React, sites with inline <style> blocks and render-blocking <head> stylesheets have a good LCP about equally often.

Why <link rel="stylesheet"> inside <body> hurts LCP and triggers late style recalculation

Standard <link rel="stylesheet"> tags in <head> (98.9% of sites, 62,581) block first paint until downloaded (70% good LCP, 1.9s median), while inline <style> blocks (99.4%) reach 70% good LCP and non-blocking <head> stylesheets (20.7%) reach 63% good LCP (2.1s median). Scattering <link rel="stylesheet"> tags inside <body> (35.7% of sites, 22,615) forces late parser pauses and mid-render style passes, dropping good LCP to 62% (2.2s median).

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

Understanding stylesheet loading and placement

Enqueue block and plugin CSS in <head> or inline small block styles via wp_enqueue_block_style() instead of printing <link rel="stylesheet"> tags mid-body inside shortcodes. On WordPress, 98.9% of sites load CSS in <head> (70% good LCP) while the 35.7% loading CSS inside <body> drop to 62% good LCP (2.2s median).

The State of Web Vitals · October 2026 · WordPress: 63,295 crawled sites · 60,855 with all devices field data · 63,291 sites with stylesheet loading and placementBy Arjen Karel · corewebvitals.io/state-of-cwv
Related signals CSS coverage (used vs unused) → DOM depth → Image loading attribute → Image dimensions set → By Arjen Karel · 63,295 crawled WordPress sites (60,855 with all devices Chrome field data, 63,291 sites with stylesheet loading and placement, October 2026) · How we measured