Stylesheet loading and placement and the Core Web Vitals

19.4% of audited sites (38,676) use non-blocking stylesheets in <head> and reach 82% good LCP (1.5s median), whereas the 23.7% placing <link rel="stylesheet"> tags inside <body> drop to 75% good LCP (1.7s median).

Field data PhoneDesktopAll Scope All sites October 2026 edition · Phone field outcomes

19.4% of sites use non-blocking <head> stylesheets stylesheet loading and placement, and 82% of those sites have a good LCP, against 82% of all sites.

The State of Web Vitals · October 2026 · 210,902 crawled sites · 126,761 with phone field data · 199,080 sites with stylesheet loading and placementBy Arjen Karel · corewebvitals.io/state-of-cwv
1

Core Web Vitals pass rate

Sites with non-blocking <head> stylesheets stylesheet loading and placement have a good LCP most often: 82%, against 82% of all sites. Sites with <body> stylesheets CSS loading have it least often, at 75%.

SitesGood, needs improvement, poor LCPMedian
All sites126,76182%1.6s
Non-blocking in <head> (preload / media) 19.4%24,37182%1.5s
Render-blocking in <head> 93.3%115,75081%1.6s
Inline <style> blocks 88.3%109,25480%1.6s
Stylesheets inside <body> 23.7%29,10675%1.7s
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · 210,902 crawled sites · 126,761 with phone field data · 199,080 sites with stylesheet loading and placementBy Arjen Karel · corewebvitals.io/state-of-cwv
2

Stylesheet loading and placement usage

Render-blocking <head> stylesheets is the most used: 93.3% of sites. Non-blocking <head> stylesheets is 19.4% of sites.

Sites using each option (sites can use more than one) 199,080 sites
Render-blocking in <head> 93.3% Inline <style> blocks 88.3% Stylesheets inside <body> 23.7%
Render-blocking in <head> 93.3% Inline <style> blocks 88.3% Stylesheets inside <body> 23.7% Non-blocking in <head> (preload / media) 19.4%
The State of Web Vitals · October 2026 · 210,902 crawled sites · 126,761 with phone field data · 199,080 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 non-blocking <head> stylesheets and <body> stylesheets sits in time to first byte (TTFB): 602 ms median for non-blocking <head> stylesheets against 711 ms for <body> stylesheets. Overall median field LCP is 1.5s for non-blocking <head> stylesheets (TTFB 602 ms, load delay 401 ms, load duration 160 ms, render delay 262 ms) versus 1.7s for <body> stylesheets.

Median LCP phase breakdown (Chrome field p75) Load delay Median LCP
Sites with stylesheet loading and placement 90,428650 ms336 ms236 ms336 mslab 326 ms1.6s
Render-blocking in <head> 84,721665 ms336 ms239 ms336 mslab 325 ms1.6s
Inline <style> blocks 80,523675 ms354 ms239 ms354 mslab 344 ms1.6s
Non-blocking in <head> (preload / media) 18,912602 ms401 ms262 ms401 mslab 391 ms1.5s
Stylesheets inside <body> 22,245711 ms426 ms258 ms426 mslab 419 ms1.7s
TTFB Resource load delay Resource load time Element render delay
The State of Web Vitals · October 2026 · 210,902 crawled sites · 126,761 with phone field data · 199,080 sites with stylesheet loading and placementBy Arjen Karel · corewebvitals.io/state-of-cwv
4

Understanding stylesheet loading and placement

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

Standard <link rel="stylesheet"> tags in <head> (93.3% of sites, 185,784) block first paint until downloaded (81% good LCP, 1.6s median), while inline <style> blocks (88.3%) reach 80% good LCP and non-blocking <head> stylesheets (19.4%) reach 82% good LCP (1.5s median). Scattering <link rel="stylesheet"> tags inside <body> (23.7% of sites, 47,237) forces late parser pauses and mid-render style passes, dropping good LCP to 75% (1.7s median).

Inline critical above-the-fold CSS in <head>, load non-critical stylesheets asynchronously in <head> via preload or print-media swap, and never output synchronous <link rel="stylesheet"> tags inside <body>. Across all audited sites, 19.4% use non-blocking <head> CSS (82% good LCP) while 23.7% place stylesheets in <body> (75% good LCP).

The State of Web Vitals · October 2026 · 210,902 crawled sites · 126,761 with phone field data · 199,080 sites with stylesheet loading and placementBy Arjen Karel · corewebvitals.io/state-of-cwv
Platform & Framework Takeaways

How stylesheet loading and placement plays out per platform

What the field data shows when you isolate a single CMS or framework.

WordPress 65,505 sites
70% vs 61% good LCP (<head> CSS vs <body> CSS)

35.7% of WordPress sites place <link rel="stylesheet"> tags inside <body> (61% vs 70% good LCP, 9 points apart).

WordPress 5.8+ provides the should_load_separate_core_block_assets filter to enqueue styles only for used blocks in <head>. Across WordPress, 98.9% of sites load blocking <head> stylesheets (70% good LCP, 2.0s median) and 35.7% include <link rel="stylesheet"> tags inside <body> (61% good LCP, 2.2s median).

Read the WordPress stylesheet loading breakdown →
Shopify 8,570 stores
90.7% / 76.8% non-blocking <head> / section <body> CSS

90.7% of Shopify stores use non-blocking <head> CSS (95% good LCP) and 76.8% include <body> CSS links.

Across Shopify storefronts, 90.7% load non-blocking stylesheets in <head> (95% good LCP) and 76.8% include section <link rel="stylesheet"> tags inside <body> (95% good LCP).

Read the Shopify stylesheet loading breakdown →
React & Next.js 9,569 sites
84% vs 62% good LCP (inline CSS vs <body> CSS)

React & Next.js sites with <body> stylesheets (14.1%) pass LCP 22 points less often than sites with inline CSS (62% vs 84%).

Across 9,569 React sites, 99.3% use inline <style> blocks (84% good LCP, 1.4s median), 56.2% load blocking <head> CSS (77%), and 14.1% include <link rel="stylesheet"> tags inside <body> (62% good LCP, 2.2s median).

Related signals CSS coverage (used vs unused) → DOM depth → Image loading attribute → Image dimensions set → By Arjen Karel · 210,902 crawled sites (126,761 with phone Chrome field data, 199,080 sites with stylesheet loading and placement, October 2026) · How we measured