Explore 63,295 WordPress websites

Pivot to any metric, technology, or signal in the dataset. Charts pick themselves. Prose writes itself.

Field data PhoneDesktopAll Scope All sites October 2026 edition · All devices field outcomes · WordPress sites only
MCP Query the State of CWV directly from your AI!
https://www.corewebvitals.io/api/state-of-cwv/mcp Setup
Metric & Architecture Takeaways

What moves Core Web Vitals on WordPress

Field data findings across WordPress sites from our metric deep dives.

LCP image loading 21,174 sites
74% vs 69% good LCP (default vs lazy)

WordPress sites without loading="lazy" on the hero image pass LCP 5 percentage points more often than sites with lazy-loaded heroes.

WordPress 6.3+ omits loading="lazy" on the first three content images by default. Across WordPress, 80.9% of sites use default loading and 14.5% have loading="lazy" on the LCP image, with median LCP ranging from 1.8s to 2.0s (74% vs 69% good LCP).

Read the WordPress LCP loading breakdown →
LCP resource discovery 60,125 sites
73% vs 66% good LCP (HTML img vs CSS background)

WordPress sites with an HTML <img> hero pass LCP 7 percentage points more often than sites with CSS background heroes.

Across WordPress sites, 55.4% reference the hero image in initial HTML (73% good LCP, 1.9s median), 39.7% use section background-image styles (66% good LCP, 2.1s median), and sites with <link rel="preload"> pass at 77% good LCP.

Read the WordPress LCP discovery breakdown →
Font-display 62,571 sites
79% vs 65% good LCP (all swap vs mixed rules)

WordPress sites with all fonts on swap pass LCP 14 points more often than mixed-rule sites.

Across WordPress, 48.8% of @font-face rules use swap and 50% use auto or block. Sites with every font on swap record a 1.7s median LCP (79% good LCP) compared with 2.1s (65% good LCP) on mixed-rule sites.

Read the WordPress font-display breakdown →
HTML document protocol 63,295 sites
75% vs 69% good LCP (HTTP/3 vs HTTP/2)

20.9% of WordPress sites serve HTML over HTTP/3, passing LCP 6 points more often than those on HTTP/2.

Across WordPress origins, 20.9% serve main HTML over HTTP/3 (75% good LCP, 1.8s median), 71.8% use HTTP/2 (69% good LCP, 2.0s median), and 7.3% use HTTP/1.1.

Read the WordPress HTML protocol breakdown →
Main-thread yielding 63,291 sites
65.4% run scripts with no yielding API

65.4% of WordPress sites call no main-thread yielding API.

Across WordPress, 65.4% of sites run scripts without a yielding API, 32.1% call requestIdleCallback(), and 2.6% call scheduler.yield().

Read the WordPress yielding breakdown →
Speculation rules 63,293 sites
84.2% use WordPress 6.8 conservative prefetch

84.2% of WordPress sites emit conservative speculation rules (62% CWV pass vs 64% with none).

WordPress 6.8+ enables Speculative Loading in core with prefetch and conservative eagerness by default, configurable with the wp_speculation_rules_configuration filter. Across WordPress, 84.2% of sites emit conservative rules (62% passing all three Core Web Vitals) compared with 64% on sites with no inline rules.

Read the WordPress speculation rules breakdown →
LCP priority hints 60,125 sites
76% vs 69% good LCP (highprio vs none)

84.8% of WordPress hero elements carry no priority hint (76% good LCP with highprio vs 69% with none).

WordPress 6.3+ adds fetchpriority="high" to the first detected content image during server rendering. Across WordPress, 10.7% of LCP elements carry fetchpriority="high" (76% good LCP, 1.8s median) and 84.8% carry no priority hint (69% good LCP, 2.0s median).

Read the WordPress priority hints breakdown →
As the LCP element 60,125 sites
73% vs 67% good LCP (<img> vs background-image)

42.5% of WordPress sites paint LCP from a CSS background-image (73% good LCP on <img> vs 67%).

Across WordPress sites, 35.2% paint LCP from an HTML <img> element (73% good LCP, 1.8s median) and 42.5% paint LCP from a CSS background-image (67% good LCP, 2.0s median, 6 points apart).

Read the WordPress LCP element types breakdown →
LCP image hosting 48,028 sites
94.5% WordPress same-origin LCP images

94.5% of WordPress sites serve their LCP image from the same origin (70% good LCP).

Across WordPress sites, 94.5% serve the LCP image from the first-party document origin (70% good LCP) and 5.5% serve it from an external origin (69% good LCP).

Read the WordPress LCP origins breakdown →
Responsive LCP image markup 60,125 sites
75% vs 69% good LCP (srcset vs non-responsive)

79.1% of WordPress hero elements have no responsive srcset or <picture> (75% good LCP with srcset vs 69% without, 6 points apart).

WordPress core generates srcset attributes on standard <img> blocks with wp_calculate_image_srcset(). Across WordPress, 18.2% of LCP elements carry srcset (75% good LCP, 1.8s median) and 79.1% have no responsive markup (69% good LCP, 2.0s median).

Read the WordPress responsive LCP breakdown →
Speculation rules 63,293 sites
84.5% WordPress sites using prefetch

84.5% of WordPress sites emit document prefetch speculation rules (63% CWV pass rate).

WordPress 6.8+ enables Speculative Loading in core with a conservative prefetch posture by default. Across WordPress, 84.5% of sites with speculation rules use prefetch (63% passing all three Core Web Vitals) and 0.6% use prerender.

Read the WordPress speculation posture breakdown →
HTML compression 63,295 sites
78% vs 67% good LCP (Brotli vs gzip)

50.2% of WordPress sites compress HTML with gzip (67% good LCP vs 78% with Brotli, 11 points apart).

Across WordPress sites, 50.2% serve gzip-compressed HTML (67% good LCP, 2.0s median), 31.4% serve Brotli-compressed HTML (78% good LCP, 1.7s median), and 12.3% send uncompressed HTML (66% good LCP).

Read the WordPress HTML compression breakdown →
An HTML edge CDN 63,295 sites
86.1% WordPress sites serving HTML from origin

86.1% of WordPress sites serve main HTML directly from the origin server without a detected CDN proxy.

Across WordPress sites, 86.1% serve main HTML directly from the origin server (70% good LCP, 1.9s median) and 8.4% proxy main HTML through Cloudflare (72% good LCP).

Read the WordPress CDN usage breakdown →
As their CMS 63,295 sites
63% WordPress all-three CWV pass rate

WordPress is the largest CMS cohort in the dataset at 63% all-three Core Web Vitals pass rate.

Across 63,295 audited WordPress sites, 63% pass all three Core Web Vitals (LCP, INP, and CLS) simultaneously.

Open WordPress Explorer Hub →
CSS @import rules 63,295 sites
70% vs 66% good LCP (no @import vs @import)

2.9% of WordPress sites use CSS @import rules, passing LCP 4 points less often than @import-free sites.

WordPress recommends enqueueing parent and child theme stylesheets with wp_enqueue_style(). Across WordPress, 97.1% of sites have no CSS @import (70% good LCP, 1.9s median) and 2.9% contain @import rules (66% good LCP, 2.1s median).

Read the WordPress CSS @import breakdown →
Text compression coverage 63,295 sites
73% vs 65% good LCP (all compressed vs uncompressed leak)

32.9% of WordPress sites serve at least one uncompressed text response (65% vs 73% good LCP, 8 percentage points apart).

Across WordPress, 67.1% of sites compress every text resource (73% good LCP, 1.9s median) and 32.9% serve at least one uncompressed HTML, CSS, JS, JSON, or SVG response (65% good LCP, 2.1s median).

Read the WordPress uncompressed text breakdown →
ETag cache validation 63,295 sites
87.7% WordPress sites serving ETag headers

87.7% of WordPress sites emit ETag headers, while 12.3% omit them.

Across WordPress sites, 87.7% serve ETag headers on responses (70% good LCP, 1.9s median) and 12.3% serve responses without ETag headers (73% good LCP, 1.9s median).

Read the WordPress ETag breakdown →
Last-Modified cache validation 63,295 sites
98.9% WordPress sites with Last-Modified

98.9% of WordPress sites send Last-Modified headers on responses.

Across WordPress sites, 98.9% emit Last-Modified headers (70% good LCP, 1.9s median).

Read the Last-Modified cache validation study →
Image loading strategies 63,233 sites
93% / 18.6% eager below fold / lazy above fold

WordPress sites have eager below-the-fold images on 93% of sites and lazy above-the-fold images on 18.6%.

WordPress 6.3+ adds loading="lazy" to content images while omitting it on the first three images. Across 63,233 WordPress sites, 70% with eager above-the-fold images pass LCP compared with 66% when an above-the-fold image has loading="lazy".

Read the WordPress image loading breakdown →
Responsive image markup 62,969 sites
81% vs 7.4% srcset on <img> vs <picture>

WordPress generates srcset on 81% of sites, while 7.4% use <picture>.

WordPress core adds srcset and sizes to attachment images with wp_calculate_image_srcset(). Across WordPress, 80.9% of sites use srcset on <img> (69% good LCP) and 7.4% use <picture> (71% good LCP).

Read the WordPress responsive image breakdown →
Image dimension sizing 62,969 sites
92.2% size content images (89% good CLS)

WordPress sets width and height on 92.2% of sites, while 74.4% also have unsized images.

WordPress core adds width and height attributes to media library images with wp_img_tag_add_width_and_height_attr(). Across WordPress, 92.2% of sites include explicitly sized images (89% good CLS) and 74.4% include at least one unsized <img> (88% good CLS).

Read the WordPress image dimensions breakdown →
Image fetchpriority hints 62,969 sites
65.6% ship fetchpriority="high" (69% good LCP)

WordPress 6.3+ emits fetchpriority="high" on 65.6% of sites (69% good LCP).

WordPress 6.3+ adds fetchpriority="high" to the first large content image with wp_get_loading_optimization_attributes(). Across 62,969 WordPress sites, 65.6% include fetchpriority="high" (69% good LCP) compared with 70% on sites with default priority.

Read the WordPress fetchpriority breakdown →
Iframe loading 29,444 sites
19.2% lazy-load iframes (63% good LCP)

19.2% of iframe-using WordPress sites lazy-load iframes, while 89.4% use default iframe loading.

WordPress 5.7+ adds loading="lazy" to iframes with wp_iframe_tag_add_loading_attr(). Across iframe-using WordPress sites, 19.2% use loading="lazy" (63% good LCP) and 89.4% use default iframe loading (67% good LCP).

Read the WordPress iframe loading breakdown →
Iframe dimension sizing 29,444 sites
62.7% size embeds explicitly (86% good CLS)

62.7% of iframe-using WordPress sites set explicit iframe dimensions (86% good CLS).

Across iframe-using WordPress sites, 62.7% include explicit width and height attributes on iframes (86% good CLS) and 82.1% include unsized iframes (85% good CLS).

Read the WordPress iframe dimensions breakdown →
CSS rendering hints 51,385 sites
85% / 37% will-change / content-visibility

WordPress sites using CSS hints include will-change on 84.8% and content-visibility on 37.2%.

Across 51,385 WordPress sites using CSS hints, 84.8% use will-change, 67.4% use aspect-ratio, and 37.2% use content-visibility (98% good INP).

Read the WordPress CSS hints breakdown →
Layout shift causes 44,905 sites
87% vs 51% good CLS (font swap vs embed growth)

On WordPress sites with lab layout shifts, embed_grow sites pass field CLS at 51% vs 87% on font_text sites.

Across 44,905 WordPress sites with lab layout shifts, 78.5% record element box growth (85% good field CLS), 24.1% record web font reflow (87% good CLS), and 0.7% record embed_grow (51% good CLS).

Read the WordPress CLS attribution breakdown →
Layout shift direction 44,884 sites
86% vs 84% good CLS (lateral vs downward shifts)

WordPress sites with downward layout shifts (49.8%) pass field CLS at 84% vs 86% for lateral shifts.

Across 44,884 shifting WordPress sites, 83.2% record horizontal shifts (86% good field CLS) and 49.8% record downward vertical shifts (84% good CLS).

Read the WordPress shift direction breakdown →
Subresource network protocols 63,295 sites
97% / 78% / 62% H2 / H3 / HTTP/1.1 subresources

WordPress sites fetch subresources over HTTP/2 on 96.9%, HTTP/3 on 78.1%, and HTTP/1.1 on 62.1%.

Across 63,295 WordPress sites, 96.9% fetch subresources over HTTP/2 (70% good LCP), 78.1% over HTTP/3, and 62.1% include at least one HTTP/1.1 request (67% good LCP).

Read the WordPress network protocol breakdown →
HTTP cache TTL tiers 63,295 sites
80.2% vs 15.8% long TTL vs Cache-Control: immutable

15.8% of WordPress sites serve Cache-Control: immutable assets, while 80.2% use long TTLs.

WordPress core appends a ?ver= query string to enqueued scripts and styles with wp_enqueue_script(). Across WordPress, 80.2% of sites serve long-TTL static files and 15.8% emit Cache-Control: immutable.

Read the WordPress cache strategy breakdown →
Analytics providers 38,557 sites
94.4% / 76.9% GA4 / legacy UA tag presence

WordPress sites with analytics run GA4 on 94.4% and Universal Analytics tags on 76.9%.

Across 38,557 analytics-using WordPress sites, 94.4% load Google Analytics 4 (98% good INP), 76.9% include Universal Analytics script references, and 8.0% run Matomo (98% good INP).

Read the WordPress analytics breakdown →
Ad networks 5,121 sites
51% vs 49% all 3 CWV pass (AdSense vs Taboola)

Ad-supported WordPress sites pass all three CWV at 51% with AdSense (94.0%) and 49% with Taboola.

Across 5,121 ad-supported WordPress sites, 94.0% run Google AdSense (51% passing all three CWV), 15.8% run Google Publisher Tag (51%), and 5.3% run Prebid.js (54%), compared with 63% across all ad-using WordPress sites.

Read the WordPress ad network breakdown →
Tag managers 34,882 sites
93.9% / 7.3% GTM / Matomo Tag Manager

WordPress sites with a tag manager use GTM on 93.9% (98% good INP) and Matomo on 7.3%.

Across 34,882 tag-manager-using WordPress sites, 93.9% load Google Tag Manager (98% good INP) and 7.3% load Matomo Tag Manager (98% good INP), compared with 98% across the cohort.

Read the WordPress tag manager breakdown →
Consent management platforms 22,633 sites
63% vs 58% all 3 CWV pass (Borlabs vs Complianz)

On WordPress, Borlabs Cookie (21.1%) passes all three CWV at 63% vs 58% for Complianz (37.0%).

Across 22,633 WordPress sites with a consent platform, 37.0% use Complianz (58% passing all three CWV), 21.7% use Quantcast Choice (59%), 21.1% use Borlabs Cookie (63%), and 16.8% use CookieYes (59%).

Read the WordPress consent platform breakdown →
Performance optimization plugins 14,818 sites
74% / 68% all 3 CWV pass (LiteSpeed / WP Rocket)

On WordPress, LiteSpeed Cache (74%) and WP Rocket (68%) pass all three CWV more often than Autoptimize (61%).

Across 14,818 WordPress sites with a detected optimization plugin, 27.6% use LiteSpeed Cache (74% passing all three CWV), 28.9% use WP Rocket (68%), 24.6% use Autoptimize (61%), and 13.6% use WP Fastest Cache (59%).

Read the WordPress optimization plugin breakdown →
Third-party technology categories 63,295 sites
60.9% / 58.8% analytics / external font services

WordPress sites load external analytics on 60.9% and third-party font services on 58.8% (60% CWV pass).

Across 63,295 WordPress sites, 96.5% load a JS library, 60.9% load analytics (60% passing all three CWV), 58.8% load external font services (60%), and 57.7% use a CDN (60%).

Read the WordPress third-party categories breakdown →
DOM element count 63,295 sites
99% vs 96% good INP (400-799 vs 1,500+ nodes)

WordPress pages with 1,500+ DOM elements (15.9%) pass field INP at 96% vs 99% at 400 to 799 nodes.

Across 63,295 WordPress sites, 37.3% have between 400 and 799 DOM nodes (99% good INP, 81ms median) and 15.9% exceed 1,500 nodes (96% good INP, 99ms median).

Read the WordPress DOM element count breakdown →
Maximum DOM depth 63,295 sites
42.0% / 3.9% 21-31 levels / 32+ levels deep

WordPress sites with 32+ DOM levels (3.9%) pass field INP at 97% vs 98% at 15 to 20 levels.

Across 63,295 WordPress sites, 39.2% have a maximum DOM depth of 15 to 20 levels (98% good INP), 42.0% have 21 to 31 levels (98% good INP), and 3.9% have 32+ levels (97% good INP).

Read the WordPress DOM depth breakdown →
Initial HTML document size 63,295 sites
83% vs 59% good LCP (<14 KB vs >75 KB HTML)

WordPress pages over 75 KB HTML (10.9%) pass LCP at 59% vs 83% under 14 KB.

Across 63,295 WordPress sites, 11.8% ship HTML under 14 KB (83% good LCP, 1.6s median), 39.6% ship 14 to 30 KB (75% good LCP), 37.8% ship 30 to 75 KB (65% good LCP), and 10.9% exceed 75 KB (59% good LCP).

Read the WordPress HTML size breakdown →
Preloaded font count 63,295 sites
88.3% / 6.6% 0 preloads / 1-2 preloads on WordPress

88.3% of WordPress sites preload zero fonts (71% good LCP), while 6.6% preload 1 to 2 fonts.

Across 63,295 WordPress sites, 88.3% emit no font preload links (71% good LCP), 6.6% preload 1 to 2 fonts (68% good LCP), and 5% preload 3 or more font files.

Read the WordPress font preloading breakdown →
Iframe count per page 63,295 sites
92% vs 80% good CLS (0 iframes vs 4+ iframes)

WordPress pages embedding 4+ iframes (9.1%) pass field CLS at 80% vs 92% with 0 iframes.

Across 63,295 WordPress sites, 53.5% embed 0 iframes (92% good CLS), 16.2% embed 1 iframe (87%), 21.2% embed 2 to 3 (87%), and 9.1% embed 4+ iframes (80% good CLS).

Read the WordPress iframe count breakdown →
Lab Total Blocking Time (TBT) 63,295 sites
98% vs 97% good INP (1-200ms vs >600ms TBT)

17.1% of WordPress sites exceed 600ms lab TBT (97% good field INP vs 98% at 1 to 200ms TBT).

Across 63,295 WordPress sites, 30.0% record 0ms lab TBT (98% good INP), 37.0% sit at 1 to 200ms TBT (98% good INP), and 17.1% exceed 600ms TBT (97% good INP, 94ms median).

Read the WordPress Total Blocking Time breakdown →
CLS shift concentration 44,905 sites
89% vs 82% good CLS (single shift vs multi-shift)

WordPress pages with multi-shift lab CLS (18.2%) pass field CLS at 82% vs 89% for a single shift.

Across 44,905 WordPress sites with non-zero lab CLS, 57.7% have 95%+ of their CLS in a single shift (89% good field CLS), 24.1% sit at 65% to 94% (84%), and 18.2% have multiple shifts (82% good CLS).

Read the WordPress CLS concentration breakdown →
Layout shift count 63,291 sites
94% vs 79% good CLS (0 shifts vs 6+ shifts)

WordPress pages with 6+ lab layout shifts (14.8%) pass field CLS at 79% vs 94% with 0 shifts (15 points apart).

Across 63,291 WordPress sites, 25.8% record 0 lab shifts (94% good CLS), 43.9% record 1 to 2 shifts (92%), 15.5% record 3 to 5 shifts (82%), and 14.8% record 6+ shifts (79% good CLS).

Read the WordPress layout shift count breakdown →
Largest single layout shift score 46,976 sites
95% vs 68% good CLS (<0.01 vs >0.25 largest shift)

Shifting WordPress sites with a largest shift over 0.25 (12.5%) pass field CLS at 68% vs 95% under 0.01 (27 points apart).

Across 46,976 WordPress sites with non-zero lab CLS, 37.8% have a largest shift under 0.01 (95% good CLS), 35.3% sit at 0.01 to 0.10 (91%), 14.3% sit at 0.10 to 0.25 (76%), and 12.5% exceed 0.25 (68% good CLS).

Read the WordPress largest shift breakdown →
Distinct network domain count 63,295 sites
72% vs 52% all 3 CWV pass (1-3 vs 15+ domains)

WordPress sites connecting to 15+ domains (10.5%) pass all three CWV at 52% vs 72% at 1 to 3 domains (20 points apart).

Across 63,295 WordPress sites, 21.9% connect to 1 to 3 domains (72% passing all three CWV), 35.3% use 4 to 7 domains (65%), 32.3% use 8 to 14 domains (59%), and 10.5% connect to 15+ domains (52%).

Read the WordPress network domain count breakdown →
Third-party request share 63,295 sites
99% vs 96% good INP (<10% vs >50% 3P requests)

51.2% of WordPress sites have under 10% third-party requests (99% good INP vs 96% over 50%).

Across 63,295 WordPress sites, 51.2% have under 10% external requests (99% good INP), 33.6% sit at 10% to 25% (98%), 12.1% sit at 25% to 50% (97%), and 3.1% exceed 50% (96%).

Read the WordPress third-party request share breakdown →
Cacheable resource share 63,295 sites
72% vs 66% good LCP (80%+ vs <20% cacheable)

35.9% of WordPress sites mark under 20% of resources cacheable (66% good LCP vs 72% at 80%+).

Across 63,295 WordPress sites, 38.7% mark 80%+ of subresources as cacheable (72% good LCP), 17.3% cache 50% to 79% (75% good LCP), and 35.9% cache under 20% (66% good LCP).

Read the WordPress cacheable resource breakdown →
Third-party provider count 63,295 sites
71% vs 54% all 3 CWV pass (0-1 vs 9+ providers)

WordPress sites with 9+ third-party providers (12.5%) pass all three CWV at 54% vs 71% with 0 to 1 providers.

Across 63,295 WordPress sites, 24.4% load 0 to 1 external providers (71% passing all three CWV), 28.3% load 2 to 4 (65%), 34.8% load 5 to 8 (60%), and 12.5% load 9+ providers (54%).

Read the WordPress third-party provider count breakdown →
Page image format mix 63,231 sites
86.7% / 39.0% PNG / WebP usage across WordPress pages

86.7% of WordPress sites serve PNG images, 85.8% serve JPEG, and 39.0% serve WebP.

WordPress 6.5 added native AVIF upload support alongside existing WebP, JPEG, and PNG support. Across 63,231 WordPress sites, 86.7% include PNG files (69% good LCP), 85.8% include JPEGs (70% good LCP), and 39.0% include WebP (69% good LCP).

Read the WordPress image format breakdown →
Image hosting origin 63,231 sites
70% vs 68% good LCP (same-origin vs cross-origin)

98.4% of WordPress sites serve same-origin images (70% good LCP), while 70.0% also load cross-origin images (68%).

Across 63,231 WordPress sites, 98.4% serve images from their own domain (70% good LCP, 1.9s median), 70.0% load cross-origin images (68% good LCP), and 20.7% embed inline base64 data: URIs (68% good LCP).

Read the WordPress image source breakdown →
Script loading strategy 63,282 sites
89.1% WordPress sites with render-blocking scripts

89.1% of WordPress sites load render-blocking synchronous scripts (69% good LCP).

WordPress 6.3+ supports registering scripts with defer and async strategies in wp_register_script() and wp_enqueue_script(). Across WordPress, 89.1% of sites execute render-blocking scripts (69% good LCP, 2.0s median) and 14.1% use ES modules (71% good LCP).

Read the WordPress script loading breakdown →
Script origin (first-party vs third-party) 63,280 sites
100.0% / 77.6% first-party / third-party scripts on WordPress

77.6% of WordPress sites execute third-party scripts (98% good INP vs 98% on first-party).

Across 63,280 WordPress sites, 100.0% execute first-party scripts (98% good INP, 86ms median) and 77.6% also load cross-origin third-party scripts (98% good INP, 87ms median).

Read the WordPress script origin breakdown →
Script initiator type 63,280 sites
98% vs 97% good INP (parser-initiated vs other initiators)

87.0% of WordPress sites load script-injected scripts, while 10.4% with other initiators pass INP at 97%.

Across 63,280 WordPress sites, 98.7% load scripts from the HTML parser (98% good INP, 86ms median), 87.0% inject scripts from other scripts (98% good INP), and 10.4% use other initiators (97% good INP, 88ms median).

Read the WordPress script initiator breakdown →
Stylesheet loading and placement 63,291 sites
70% vs 62% good LCP (<head> CSS vs <body> CSS)

35.7% of WordPress sites place <link rel="stylesheet"> tags inside <body> (62% vs 70% 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 (70% good LCP, 1.9s median) and 35.7% include <link rel="stylesheet"> tags inside <body> (62% good LCP, 2.2s median).

Read the WordPress stylesheet loading breakdown →
Stylesheet origin (first-party vs third-party) 63,289 sites
70% vs 68% good LCP (first-party vs third-party CSS)

59.6% of WordPress sites load third-party CSS (68% good LCP vs 70% on first-party CSS).

Across 63,289 WordPress sites, 100.0% load first-party stylesheets (70% good LCP, 1.9s median) and 59.6% load external third-party stylesheets (68% good LCP, 2.0s median).

Read the WordPress stylesheet origin breakdown →
Stylesheet initiator type 63,289 sites
70% vs 66% good LCP (parser CSS vs script-injected CSS)

40.1% of WordPress sites inject stylesheets from JavaScript (66% vs 70% good LCP, 4 points apart).

Across 63,289 WordPress sites, 97.4% load CSS from the HTML parser (70% good LCP, 1.9s median) and 40.1% inject stylesheets from JavaScript (66% good LCP, 2.0s median).

Read the WordPress stylesheet initiator breakdown →
Web font format 61,498 sites
69% vs 65% good LCP (WOFF2 vs uncompressed TTF)

36.6% of WordPress sites download WOFF and 18.3% download TTF (65% good LCP vs 69% for WOFF2).

Across 61,498 font-using WordPress sites, 94.7% serve WOFF2 (69% good LCP), 36.6% download WOFF (67% good LCP), and 18.3% download TrueType TTF files (65% good LCP, 2.1s median).

Read the WordPress font format breakdown →
Video and audio media source 7,684 sites
87.2% / 14.5% self-hosted / external CDN video on WordPress

87.2% of media-using WordPress sites stream video from their own origin (65% good LCP, 2.1s median).

Across 7,684 WordPress sites with <video> or <audio> elements, 87.2% serve media files from their own origin (65% good LCP) and 14.5% serve media from an external CDN (63% good LCP).

Read the WordPress media source breakdown →
Main-thread scheduling API usage 63,166 sites
77.3% / 75.1% requestAnimationFrame / setInterval on WordPress

75.1% of WordPress sites run recurring setInterval() timers, while 2.6% call scheduler.yield().

Across 63,166 WordPress sites, 77.3% call requestAnimationFrame() (98% good INP), 75.1% call setInterval() (98% good INP), and 2.6% call scheduler.yield().

Read the WordPress task scheduling breakdown →
Long Animation Frame (LoAF) script invoker type 34,005 sites
40.7% / 36.1% timer/rAF callbacks / event listeners on WordPress

On WordPress sites with Long Animation Frames, 40.7% record timer/rAF callbacks and 36.1% record event listeners.

Across 34,005 WordPress sites recording LoAF entries, 40.7% record long frames in setTimeout/requestAnimationFrame callbacks (98% good INP), 38.6% during classic <script> evaluation (98%), and 36.1% in DOM event listeners (98%).

Read the WordPress LoAF invoker breakdown →
Network resource type mix 63,295 sites
100.0% / 97.2% scripts / web fonts across WordPress pages

WordPress sites load scripts on 100.0%, images on 99.9%, CSS on 99.2%, and web fonts on 97.2%.

Across 63,295 WordPress sites, 100.0% load external JavaScript, 99.9% load images, 99.2% load CSS stylesheets, and 97.2% download web fonts (70% good LCP, 1.9s median).

Read the WordPress network resource type breakdown →
Subresource HTTP compression 63,295 sites
91.4% / 72.3% Gzip / Brotli subresources on WordPress

91.4% of WordPress sites serve Gzip subresources and 72.3% serve Brotli (70% good LCP vs 69% Gzip).

Across 63,295 WordPress sites, 91.4% load Gzip-compressed text assets (69% good LCP, 1.9s median), 72.3% load Brotli-compressed assets (70% good LCP, 1.9s median), and 55.9% include Zstandard-compressed responses (67%).

Read the WordPress subresource compression breakdown →
Subresource CDN distribution 63,295 sites
42.1% / 19.2% Cloudflare / CloudFront subresources on WordPress

99.8% of WordPress sites fetch subresources from origin/custom hosts, 42.1% use Cloudflare, and 19.2% use CloudFront.

Across 63,295 WordPress sites, 99.8% serve subresources from origin or custom hosts (70% good LCP), 42.1% use Cloudflare (68% good LCP), 19.2% use CloudFront (65%), and 10.5% use Fastly (69%).

Read the WordPress subresource CDN breakdown →
Total image payload 63,295 sites
79% vs 64% good LCP (< 350 KB vs > 3 MB)

WordPress sites shipping over 3 MB of images pass LCP 15 points less often than sites under 350 KB.

Across WordPress sites, 35% transfer 1 to 3 MB of images and 31% exceed 3 MB. Sites under 350 KB pass LCP at 79% (1.6s median) compared with 64% (2.1s median) above 3 MB.

Explore WordPress image payload data →
Total JavaScript payload 63,270 sites
79ms vs 93ms median INP (< 250 KB vs > 1 MB)

24% of WordPress sites ship over 1 MB of JavaScript (93ms median INP vs 79ms under 250 KB).

Across WordPress sites, 24% transfer over 1 MB of scripts (93ms median INP, 97% pass rate) and 21% transfer under 250 KB (79ms median INP, 98% pass rate).

Explore WordPress script payload data →
Unused JavaScript bytes 63,282 sites
54% sites with > 850 KB unused JS

54% of WordPress sites ship over 850 KB of unused JavaScript.

Across WordPress sites, 31% load 850 KB to 1.5 MB of unused scripts and 23% exceed 1.5 MB, with median INP ranging from 78ms under 400 KB unused to 95ms above 1.5 MB.

Explore WordPress unused JS data →
Total CSS payload 62,783 sites
85% vs 58% good LCP (< 40 KB vs > 160 KB)

WordPress sites over 160 KB of CSS pass LCP 27 points less often than sites under 40 KB.

Across WordPress sites, 36% ship over 160 KB of stylesheets (58% LCP pass rate, 2.3s median) and 13% ship under 40 KB (85% pass rate, 1.5s median).

Explore WordPress CSS payload data →
Unused CSS bytes 63,268 sites
86% vs 60% good LCP (< 140 KB vs > 600 KB unused)

38% of WordPress sites load over 600 KB of unused CSS (60% vs 86% good LCP under 140 KB).

Across WordPress sites, 38% have over 600 KB of unused CSS (60% good LCP, 2.2s median) compared with 86% (1.5s median) under 140 KB.

Explore WordPress unused CSS data →
Web font file count 63,295 sites
77% vs 62% good LCP (1-3 fonts vs 7+ fonts)

32% of WordPress sites load 7+ font files, passing LCP 15 points less often than sites with 1 to 3 fonts.

Across WordPress sites, 32% request 7 or more web font files (62% good LCP, 2.2s median) compared with 77% (1.7s median) on sites with 1 to 3 fonts.

Explore WordPress font count data →
Audio and video payload 63,295 sites
71% vs 64% good LCP (no media vs with media)

WordPress pages with initial video/audio requests pass LCP 7 points less often than pages with no media.

Across WordPress sites, 88% transfer no audio or video during initial load (71% good LCP, 1.9s median) and 8% load initial media under 500 KB (64% good LCP, 2.1s median).

Explore WordPress media payload data →
Connection and preload hints 63,295 sites
35% sites with dns-prefetch only

35% of WordPress sites emit only dns-prefetch connection hints.

WordPress core prints resource hints in <head> with wp_resource_hints(), populating dns-prefetch from registered script and style hosts. Across WordPress, 35% of sites ship only dns-prefetch (69% LCP pass rate), 16% use preload (72%), and 24% emit no hints (75%).

Explore WordPress resource hints data →
Cookie count 63,295 sites
77% vs 63% good LCP (0 cookies vs 6+ cookies)

WordPress sites setting 6+ cookies pass LCP 14 points less often than sites with 0 cookies.

Across WordPress sites, 28% set zero cookies on initial load (77% good LCP, 1.7s median) and 35% set 6 or more cookies (63% good LCP, 2.1s median).

Explore WordPress cookie count data →
Synthetic paint milestones 63,151 sites
89% vs 48% good field LCP (< 300ms vs > 1.5s lab)

WordPress sites over 1,500ms lab LCP pass field LCP at 48% vs 89% under 300ms.

Across WordPress sites, 32% take over 1,500ms to paint in unthrottled lab conditions (48% field LCP pass rate, 2.6s median) compared with 89% (1.3s median) on the 16% painting under 300ms.

Explore WordPress lab paint data →
Document lifecycle milestones 63,291 sites
89% vs 49% good LCP (< 350ms vs > 1.5s DOMComplete)

WordPress sites taking over 1,500ms to reach DOMComplete pass LCP 40 points less often than sites under 350ms.

Across WordPress sites, 34% take over 1,500ms to reach DOMComplete in the lab (49% field LCP pass rate, 2.5s median) compared with 89% (1.3s median) on the 13% finishing under 350ms.

Explore WordPress document lifecycle data →
Main-thread CPU breakdown 63,295 sites
77ms vs 92ms median INP (< 150ms vs > 1.2s CPU)

35% of WordPress sites spend over 1.2 seconds in scripting CPU during load.

Across WordPress sites, 35% spend over 1,200ms in main-thread scripting during boot (92ms median field INP, 97% pass rate), compared with 77ms median INP on the 14% under 150ms.

Explore WordPress main-thread CPU data →
LCP sub-part breakdown 43,622 sites
84% sites where TTFB is largest LCP phase

Server TTFB is the largest LCP phase on 84% of WordPress sites (68% good LCP vs 81% when load delay leads).

Across WordPress sites, TTFB is the largest LCP sub-part on 84% (68% LCP pass rate, 2.0s median) and load delay is the largest sub-part on 9% (81% pass rate, 1.6s median).

Explore WordPress LCP sub-part data →
LCP image byte weight 45,765 sites
72% vs 66% good LCP (40-100 KB vs > 300 KB hero)

30% of WordPress sites ship an LCP hero image heavier than 300 KB (66% vs 72% good LCP at 40 to 100 KB).

Across WordPress sites, 30% serve a hero image over 300 KB (66% LCP pass rate, 2.0s median) compared with 72% (1.9s median) on the 21% with a 40 to 100 KB hero image.

Explore WordPress hero image size data →
Total page weight 63,295 sites
86% vs 61% good LCP (< 1.2 MB vs > 5 MB page)

60% of WordPress sites exceed 2.5 MB of total page weight (61% good LCP over 5 MB vs 86% under 1.2 MB, 25 points apart).

Across WordPress sites, 31% transfer 2.5 to 5 MB, 29% exceed 5 MB (61% LCP pass rate, 2.2s median), and 13% transfer under 1.2 MB (86% pass rate, 1.5s median).

Explore WordPress total page weight data →

Hot questions this edition

Or browse the data

120 signals across 13 sections. Use the tree on the left or the search box.

  • Headline metrics 5 signals LCP, INP, CLS…
  • Tech stack 3 signals CDN (7), CMS (12), Frameworks (11)…
  • Third parties 27 signals JS libraries (26), Analytics (20), CMS (17)…
  • Main thread 1 signals Top INP blockers (25)…
  • LCP Image 8 signals LCP discovery, LCP element type, LCP image format…
  • LCP Timing 1 signals LCP phase breakdown…
  • Page resources 36 signals Bytes by resource type, Compression mix, Cookies per site…
  • INP 6 signals Blocking frame breakdown, CSS hints, INP phase breakdown…
  • CLS 5 signals Largest single shift, Layout shift count, Shift concentration…
  • CDN & Delivery 12 signals Cache strategy mix, Cacheable responses, Connection hints…
  • Synthetic (lab) 4 signals Document lifecycle (lab), Lab paint timeline, Main-thread CPU (lab)…
  • Speculation rules 2 signals Speculation eagerness, Speculation posture…
  • Tech stack 10 signals Ad networks on page, Analytics on page, CMS…

203,892 crawled sites with Chrome field data, representing millions of real page loads, October 2026 edition. How we measured.