Stylesheet loading and placement and the Core Web Vitals

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

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

93.3% of sites use render-blocking <head> stylesheets stylesheet loading and placement, and 86% of those sites have a good LCP, against 86% of all sites.

The State of Web Vitals · October 2026 · 210,902 crawled sites · 69,745 with desktop 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 render-blocking <head> stylesheets stylesheet loading and placement have a good LCP most often: 86%, against 86% of all sites. Sites with <body> stylesheets CSS loading have it least often, at 82%.

SitesGood, needs improvement, poor LCPMedian
All sites69,74586%1.4s
Render-blocking in <head> 93.3%63,74586%1.4s
Inline <style> blocks 88.3%59,01985%1.4s
Non-blocking in <head> (preload / media) 19.4%14,50185%1.4s
Stylesheets inside <body> 23.7%15,85282%1.5s
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · 210,902 crawled sites · 69,745 with desktop 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.

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 · 69,745 with desktop 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 render-blocking <head> stylesheets and <body> stylesheets sits in resource load delay: 275 ms median for render-blocking <head> stylesheets against 372 ms for <body> stylesheets. Overall median field LCP is 1.4s for render-blocking <head> stylesheets (TTFB 577 ms, load delay 275 ms, load duration 110 ms, render delay 193 ms) versus 1.5s for <body> stylesheets.

Median LCP phase breakdown (Chrome field p75) Load delay Median LCP
Sites with stylesheet loading and placement 49,563571 ms274 ms192 ms274 mslab 316 ms1.4s
Render-blocking in <head> 47,001577 ms275 ms193 ms275 mslab 318 ms1.4s
Inline <style> blocks 43,672591 ms290 ms198 ms290 mslab 334 ms1.4s
Non-blocking in <head> (preload / media) 11,278546 ms345 ms219 ms345 mslab 389 ms1.4s
Stylesheets inside <body> 12,056615 ms372 ms228 ms372 mslab 418 ms1.5s
TTFB Resource load delay Resource load time Element render delay
The State of Web Vitals · October 2026 · 210,902 crawled sites · 69,745 with desktop 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 (86% good LCP, 1.4s median), while inline <style> blocks (88.3%) reach 85% good LCP and non-blocking <head> stylesheets (19.4%) reach 85% good LCP (1.4s 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 82% (1.5s 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 (85% good LCP) while 23.7% place stylesheets in <body> (82% good LCP).

The State of Web Vitals · October 2026 · 210,902 crawled sites · 69,745 with desktop 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
76% vs 68% good LCP (<head> CSS vs <body> CSS)

35.7% of WordPress sites place <link rel="stylesheet"> tags inside <body> (68% vs 76% good LCP, 8 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 (76% good LCP, 1.7s median) and 35.7% include <link rel="stylesheet"> tags inside <body> (68% good LCP, 2.0s 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 (97% good LCP) and 76.8% include <body> CSS links.

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

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

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

Across 9,569 React sites, 99.3% use inline <style> blocks (79% good LCP, 1.5s median), 56.2% load blocking <head> CSS (74%), and 14.1% include <link rel="stylesheet"> tags inside <body> (63% good LCP, 2.1s median).

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