Explore 9,570 React 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 · Desktop field outcomes · React 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 React & Next.js

Field data findings across React & Next.js sites from our metric deep dives.

LCP image loading 5,497 sites
19.6% lazy-load the LCP image

19.6% of React sites have loading="lazy" on their hero component.

Next.js <Image> sets loading="lazy" by default unless priority or preload is configured. Across React sites, 83% with default loading pass LCP compared with 87% with loading="lazy".

Read the LCP image loading study →
LCP resource discovery 9,109 sites
82% vs 64% good LCP (HTML img vs CSS background)

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

Across React sites, 84.1% include the LCP image in initial HTML (82% good LCP, 1.5s median) compared with 13.7% that reference the hero image in CSS (64% good LCP, 2.0s median).

Read the LCP resource discovery study →
Font-display 9,246 sites
90% vs 69% good LCP (all swap vs mixed rules)

React sites with all fonts on swap pass LCP 21 points more often than mixed-font sites.

Across React sites, 71.3% of @font-face rules use swap. Sites with all fonts on swap pass LCP at 90% (1.2s median) compared with 69% (1.9s median) on mixed-rule sites.

Read the font-display study →
HTML document protocol 9,282 sites
86% vs 69% good LCP (HTTP/3 vs HTTP/2)

68.3% of React sites serve HTML over HTTP/3 (86% good LCP vs 69% on HTTP/2).

Across React sites, 68.3% serve main HTML over HTTP/3 (86% good LCP, 1.3s median) compared with 23.9% on HTTP/2 (69% good LCP, 1.9s median).

Read the HTML document protocol study →
Main-thread yielding 9,282 sites
100% vs 98% good INP (scheduler.yield vs requestIdleCallback)

React sites using scheduler.yield() pass INP 2 points more often than sites using requestIdleCallback().

Across React sites, 62.9% call scheduler.yield() (100% good INP, 39ms median) compared with 22.9% calling requestIdleCallback() (98% good INP, 57ms median).

Read the main-thread yielding study →
LCP image format 6,642 sites
60.3% serve AVIF on the LCP image (92% good LCP)

60.3% of React sites serve an AVIF hero image (1.2s median LCP).

Next.js Image Optimization supports image/avif and image/webp output formats. Across React sites, 60.3% serve AVIF hero images (92% good LCP, 1.2s median), 13.5% serve WebP, and 25% serve JPEG or PNG.

Read the LCP image format study →
Speculation rules 9,282 sites
60.1% use eager speculation rules

60.1% of React sites emit eager speculation rules and 16.8% emit no inline tag.

Next.js App Router provides route prefetching on <Link> components in JavaScript. Across React sites in the dataset, 60.1% carry inline eager speculation rules, 22.2% carry conservative rules, and 16.8% have no inline speculation rules tag.

Read the speculation rules study →
LCP priority hints 9,109 sites
88% vs 76% good LCP (highprio vs none)

35.3% of React & Next.js sites set fetchpriority="high" on the LCP element (88% vs 76% good LCP).

Next.js <Image> supports the fetchPriority="high" and priority props. Across React sites, 35.3% set fetchpriority="high" on the LCP element (88% good LCP, 1.3s median) compared with 60.9% with no hint (76% good LCP, 1.6s median, 12 percentage points apart).

Read the LCP priority hints study →
As the LCP element 9,109 sites
84% vs 65% good LCP (<img> vs background-image)

React & Next.js sites with an <img> LCP element pass LCP 19 percentage points more often than sites with CSS background-image LCP.

Across React sites, 60.3% paint LCP from an <img> tag (84% good LCP, 1.4s median), 23.0% paint from text blocks (79% good LCP), and 14.6% paint from CSS background-image styles (65% good LCP, 1.9s median).

Read the as the LCP element study →
LCP image hosting 6,931 sites
72.1% React sites using external image CDNs

72.1% of React & Next.js sites load LCP media from external image origins (88% good LCP).

Next.js <Image> supports custom loader functions for external image CDNs. Across React sites, 72.1% load the LCP image from an external origin (88% good LCP, 1.3s median) and 27.9% load it from the application origin (70% good LCP, 1.8s median).

Read the LCP image hosting study →
Speculation rules 9,282 sites
77.2% React sites with prefetch posture

Among React & Next.js sites with speculation rules, 77.2% use prefetch and 5.7% use prerender_until_script.

Across React sites in the dataset, 77.2% emit prefetch rules (67% CWV pass rate), 5.7% emit prerender_until_script (92% CWV pass rate), and 16.8% emit no inline speculation rules tag.

Read the speculation rules study →
HTML compression 9,282 sites
86% vs 69% good LCP (Brotli vs gzip)

React & Next.js sites on Brotli (70.6%) pass LCP 17 percentage points more often than sites on gzip (17.9%).

Across React sites, 70.6% serve Brotli-compressed HTML (86% good LCP, 1.4s median) compared with 17.9% serving gzip-compressed HTML (69% good LCP, 1.9s median).

Read the HTML compression study →
An HTML edge CDN 9,282 sites
91% vs 73% good LCP (Fastly edge vs origin)

React sites serving HTML from Fastly (37.1%) pass LCP at 91% vs 73% on direct origins.

Across React sites, 37.1% serve main HTML from Fastly edge nodes (91% good LCP, 1.2s median) compared with 46.9% serving HTML from direct origins (73% good LCP, 1.7s median, 18 points apart).

Read the an HTML edge CDN study →
As their CMS 7,993 sites
63% React all-three CWV pass rate

React & Next.js sites record a 63% all-three CWV pass rate across 7,993 sites.

Across 7,993 audited React & Next.js sites, 63% pass all three Core Web Vitals (LCP, INP, and CLS) simultaneously.

Open React & Next.js Explorer Hub →
CSS @import rules 9,282 sites
80% vs 67% good LCP (no @import vs @import)

React & Next.js sites without CSS @import pass LCP 13 percentage points more often than sites with @import.

Across React sites, 96.0% ship stylesheets without runtime @import rules (80% good LCP, 1.5s median) compared with 4.0% that include a runtime CSS @import (67% good LCP, 1.8s median).

Read the CSS @import rules study →
Text compression coverage 9,282 sites
42.4% React sites with all text compressed

57.6% of React & Next.js sites ship at least one uncompressed JSON, SVG, or script response.

Across React sites, 42.4% compress every text asset (80% good LCP, 1.5s median) and 57.6% include at least one uncompressed text response (78% good LCP, 1.6s median).

Read the text compression coverage study →
Last-Modified cache validation 9,282 sites
99.6% React sites with Last-Modified

99.6% of React & Next.js sites include Last-Modified headers on static and CDN responses.

Across React & Next.js deployments, 99.6% emit Last-Modified timestamps on static chunks or media assets (79% good LCP, 1.5s median).

Read the Last-Modified cache validation study →
Image loading strategies 9,274 sites
33.1% lazy-load an image inside the viewport

33.1% of React sites lazy-load at least one above-the-fold image.

Next.js <Image> components default to loading="lazy" unless priority or preload is passed. Across React sites, 96.6% render an eager image in the viewport and 33.1% have a visible viewport image with loading="lazy".

Read the image loading strategies study →
Responsive image markup 9,216 sites
86% vs 78% good LCP (<picture> vs fixed <img>)

React sites using <picture> (29.4%) pass LCP at 86%, 8 points above sites with fixed images.

Next.js <Image> generates responsive srcset candidate URLs. Across React sites, 84.9% use srcset on <img> (79% good LCP) and 29.4% use <picture> (86% good LCP).

Read the responsive image markup study →
Image dimension sizing 9,216 sites
82% vs 64% good CLS (width/height vs CSS aspect-ratio)

React sites with HTML width/height (88.4%) pass CLS 18 points more often than sites with CSS-only aspect-ratio (5.1%).

Next.js <Image> requires width and height props unless fill is set. Across React sites, 88.4% include HTML width and height attributes (82% good CLS) and 5.1% use CSS aspect-ratio (64% good CLS).

Read the image dimension sizing study →
Iframe dimension sizing 5,148 sites
79% vs 73% good CLS (sized vs unsized iframes)

Iframe-using React sites with sized iframes (62.5%) pass CLS 6 points more often than sites with unsized iframes.

Across 5,148 iframe-using React sites, 62.5% declare explicit width and height on their embeds (79% good CLS) compared with 70.4% with unsized iframes (73% good CLS).

Read the iframe dimension sizing study →
CSS rendering hints 8,797 sites
77.3% scroll-driven CSS (99% good INP)

Hint-using React sites include scroll-driven CSS on 77.3% and will-change on 71.3% (99% good INP).

Across 8,797 hint-using React sites, 77.3% include scroll-driven animation rules (99% good INP), 71.3% use will-change, and 53.5% use aspect-ratio.

Read the CSS rendering hints study →
Layout shift causes 3,771 sites
66% vs 46% good CLS (box growth vs unsized media)

Among shifting React sites, unsized_media sites pass field CLS at 46% and displaced sites at 72%.

Across 3,771 React sites that record a lab layout shift, 76.9% record box growth (66% good CLS), 35.4% record sibling displacement (72% good CLS), and 2.4% record unsized media shifts (46% good CLS).

Read the layout shift causes study →
Subresource network protocols 9,282 sites
92.1% negotiate HTTP/3 (79% good LCP)

React sites reach 98.8% HTTP/2 and 92.1% HTTP/3 subresource adoption (79% good LCP).

Across 9,282 React sites, 98.8% serve subresources over HTTP/2 and 92.1% serve subresources over HTTP/3 (79% good LCP).

Read the subresource network protocols study →
HTTP cache TTL tiers 9,282 sites
70.8% immutable hashed chunks (86% good LCP)

70.8% of React & Next.js sites serve Cache-Control: immutable assets (86% good LCP).

Across React sites, 70.8% emit Cache-Control: immutable headers on static chunks (86% good LCP) compared with 75% on short-TTL sites.

Read the HTTP cache TTL tiers study →
JavaScript frameworks 9,282 sites
63% vs 50% all 3 CWV pass (all React vs React + jQuery)

27.7% of React sites also load jQuery (50% CWV pass vs 63% across all React sites).

Across 9,282 React sites, 27.7% load jQuery alongside React and pass all three Core Web Vitals at 50% (13 points below the 63% React cohort pass rate).

Read the JavaScript frameworks study →
Analytics providers 4,068 sites
96.6% / 5.2% GA4 (99% INP) / Matomo (99% INP)

React sites with analytics use GA4 on 96.6% (99% good INP) and Matomo on 5.2% (99% good INP).

Across 4,068 analytics-using React sites, 96.6% load Google Analytics 4 (99% good INP), 71.0% include UA tags, and 5.2% run Matomo Analytics (99% good INP).

Read the analytics providers study →
Ad networks 894 sites
54% vs 44% all 3 CWV pass (AdSense vs GPT)

Ad-supported React sites pass all three CWV at 54% with AdSense and 44% with GPT.

Across 894 React sites running display ads, 93.5% load Google AdSense (54% passing all three CWV) and 8.9% load Google Publisher Tag (44%).

Read the ad networks study →
Performance optimization plugins 597 sites
43% / 62% all 3 CWV pass on hybrid WordPress + React sites

On the 597 WordPress + React sites using caching plugins, LiteSpeed Cache (26.1%) passes all three CWV at 43% and WP Rocket (34.7%) at 62%.

Across 597 React sites with a detected WordPress optimization plugin, 34.7% use WP Rocket (62% passing all three CWV), 26.1% use LiteSpeed Cache (43%), and 20.8% use Autoptimize (53%).

Read the performance optimization plugins study →
Third-party technology categories 9,280 sites
81% vs 57% all 3 CWV pass (RUM vs tag managers)

React sites with RUM (64.0%) pass all three CWV at 81% vs 57% on sites with tag managers (39.4%).

Across 9,280 React sites, 89.8% use a CDN (64% passing all three CWV), 64.0% include Real User Monitoring (81% CWV pass), and 39.4% load tag managers (57% CWV pass).

Read the third-party technology categories study →
Maximum DOM depth 9,282 sites
42.6% / 40.3% 21-31 levels / 32+ levels on React

83% of React & Next.js sites have a DOM depth above 20 levels (40.3% at 32+ levels).

Across React sites, 42.6% have a maximum DOM depth of 21 to 31 levels (99% good INP) and 40.3% have 32+ levels (99% good INP).

Read the maximum DOM depth study →
Initial HTML document size 9,282 sites
67.8% React sites over 75 KB HTML (84% LCP)

67.8% of React & Next.js sites ship over 75 KB of HTML (84% good LCP).

Across React sites, 67.8% transfer over 75 KB of initial HTML (84% good LCP) and 16.8% transfer 30 to 75 KB (66% good LCP).

Read the initial HTML document size study →
Iframe count per page 9,282 sites
84% vs 69% good CLS (0 iframes vs 4+ iframes)

React & Next.js sites with 4+ iframes (8.1%) pass field CLS at 69% vs 84% with 0 iframes.

Across 9,282 React sites, 44.5% use 0 iframes (84% good CLS), 25.7% use 1 iframe (84%), and 8.1% embed 4 or more iframes (69% good CLS).

Read the iframe count per page study →
Layout shift count 9,282 sites
91% vs 62% good CLS (0 shifts vs 3-5 shifts)

58.3% of React & Next.js sites record 0 lab layout shifts (91% good CLS vs 62% at 3 to 5 shifts).

Across 9,282 React sites, 58.3% record 0 lab shifts (91% good CLS), 26.0% record 1 to 2 shifts (79%), 9.2% record 3 to 5 shifts (62% good CLS), and 6.4% record 6+ shifts (54% good CLS).

Read the layout shift count study →
Largest single layout shift score 3,867 sites
85% vs 51% good CLS (<0.01 vs >0.25 largest shift)

Shifting React & Next.js sites with a largest shift over 0.25 (15.3%) pass field CLS at 51% vs 85% under 0.01 (34 points apart).

Across 3,867 shifting React sites, 36.3% have a largest shift under 0.01 (85% good CLS) and 15.3% exceed 0.25 (51% good CLS).

Read the largest single layout shift score study →
Distinct network domain count 9,282 sites
69% vs 57% all 3 CWV pass (8-14 vs 15+ domains)

React & Next.js sites connecting to 15+ domains (16.6%) pass all three CWV at 57% vs 69% at 8 to 14 domains.

Across 9,282 React sites, 61.3% connect to 8 to 14 domains (69% passing all three CWV) and 16.6% connect to 15 or more domains (57%, 12 percentage points apart).

Read the distinct network domain count study →
Cacheable resource share 9,282 sites
81% vs 69% good LCP (80%+ vs <20% cacheable)

React & Next.js sites caching under 20% of resources (9.3%) pass LCP at 69% vs 81% at 80%+ (12 points apart).

Across React sites, 58.3% cache 80%+ of assets (81% good LCP), 29.0% cache 50% to 79% (80%), and 9.3% cache under 20% (69% good LCP).

Read the cacheable resource share study →
Third-party provider count 9,282 sites
79% vs 49% all 3 CWV pass (0-1 vs 9+ providers)

React & Next.js sites with 9+ third-party providers (7.7%) pass all three CWV at 49% vs 79% at 0 to 1 providers (30 points apart).

Across 9,282 React sites, 43.2% load 0 to 1 external providers (79% passing all three CWV), 23.0% load 2 to 4 (68%), 26.0% load 5 to 8 (60%), and 7.7% load 9+ providers (49%).

Read the third-party provider count study →
Page image format mix 9,274 sites
90% vs 74% good LCP (with AVIF vs with PNG)

React & Next.js sites serving AVIF (63.5%) pass LCP at 90% vs 74% on sites serving PNG (54.4%).

Next.js <Image> supports image/avif and image/webp output formats. Across 9,274 React sites, 63.5% serve AVIF images (90% good LCP, 1.2s median), 54.4% serve PNGs (74% good LCP, 1.7s median), and 44.2% serve JPEGs (74% good LCP).

Read the page image format mix study →
Image hosting origin 9,274 sites
79% vs 72% good LCP (dedicated image CDN vs origin)

93.9% of React & Next.js sites serve images from external image origins (79% good LCP vs 72% self-hosted).

Next.js <Image> supports custom loader functions for external media CDNs. Across 9,274 React sites, 93.9% serve images from external origins (79% good LCP, 1.5s median) and 32.3% serve images from the primary origin (72% good LCP, 1.8s median).

Read the image hosting origin study →
Script loading strategy 9,282 sites
80% vs 69% good LCP (deferred vs blocking scripts)

React & Next.js sites with synchronous blocking scripts (30.0%) pass LCP at 69% vs 80% with defer.

Across React sites, 89.2% load scripts with defer (80% good LCP), 96.8% use async (79% good LCP), and 30.0% include synchronous blocking scripts in <head> (69% good LCP, 1.9s median, 11 points apart).

Read the script loading strategy study →
Script origin (first-party vs third-party) 9,282 sites
100.0% / 94.8% first-party / third-party scripts on React

94.8% of React & Next.js sites load cross-origin scripts (99% good INP, 48ms median).

Across 9,282 React sites, 100.0% run first-party bundles (99% good INP) and 94.8% also execute cross-origin scripts (99% good INP, 48ms median).

Read the script origin (first-party vs third-party) study →
Script initiator type 9,282 sites
99.6% / 95.1% parser / script-injected on React

99.6% of React & Next.js sites declare scripts in HTML and 95.1% also load script-initiated chunks (99% good INP).

Across 9,282 React sites, 99.6% use parser-discovered <script> tags (99% good INP), 95.1% load script-initiated chunks (99% good INP), and 71.8% use other initiators (99% good INP).

Read the script initiator type study →
Stylesheet loading and placement 9,281 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,281 React sites, 99.3% use inline <style> blocks (79% good LCP, 1.5s median), 56.0% load blocking <head> CSS (74%), and 14.1% include <link rel="stylesheet"> tags inside <body> (63% good LCP, 2.1s median).

Read the stylesheet loading and placement study →
Stylesheet origin (first-party vs third-party) 9,281 sites
79% vs 73% good LCP (first-party vs third-party CSS)

React & Next.js sites loading third-party stylesheets (44.8%) pass LCP 6 points less often than sites on first-party CSS (73% vs 79%).

Across 9,281 React sites, 99.9% serve first-party CSS (79% good LCP, 1.5s median) and 44.8% load external third-party stylesheets (73% good LCP, 1.7s median).

Read the stylesheet origin (first-party vs third-party) study →
Stylesheet initiator type 9,281 sites
79% vs 70% good LCP (inline CSS vs external parser CSS)

99.3% of React & Next.js sites use inline styles (79% good LCP), while 37.4% load external <link> CSS (70%).

Across 9,281 React sites, 99.3% emit inline <style> tags (79% good LCP, 1.5s median), 36.2% load CSS from JS chunks (76% good LCP), and 37.4% load parser <link rel="stylesheet"> tags (70% good LCP, 1.8s median).

Read the stylesheet initiator type study →
Web font format 9,147 sites
79% vs 61% good LCP (WOFF2 vs raw TTF on React)

React & Next.js sites loading TTF fonts (7.3%) pass LCP 18 points less often than sites on WOFF2 (61% vs 79%).

Across 9,147 font-using React sites, 97.1% serve WOFF2 (79% good LCP, 1.5s median), 13.8% serve WOFF (68% good LCP), and 7.3% serve TTF (61% good LCP, 2.1s median).

Read the web font format study →
Web font hosting source 9,147 sites
84% vs 65% good LCP (CDN font host vs Google Fonts)

React & Next.js sites loading external Google Fonts (18.9%) pass LCP at 65% vs 84% on dedicated CDNs.

Across 9,147 font-using React sites, 77.3% serve fonts from external CDNs (84% good LCP, 1.4s median) and 18.9% load Google Fonts at runtime (65% good LCP, 2.0s median, 19 percentage points apart).

Read the web font hosting source study →
Video and audio media source 1,803 sites
86% vs 69% good LCP (external media CDN vs self-hosted)

85.6% of media-using React & Next.js sites stream from external CDNs (86% good LCP vs 69% self-hosted).

Across 1,803 React sites with <video> or <audio> tags, 85.6% serve media from external CDNs (86% good LCP, 1.3s median) and 15.9% serve media from their own origin (69% good LCP, 1.9s median, 17 points apart).

Read the video and audio media source study →
Long Animation Frame (LoAF) script invoker type 5,701 sites
60.0% / 44.3% event listener / classic script LoAF on React

60.0% of LoAF React & Next.js sites record long frames in event listeners (99% good INP).

Across 5,701 React sites recording Long Animation Frames, 60.0% record long frames in DOM event listeners (99% good INP, 47ms median), 44.3% during script evaluation (98% good INP), and 18.6% in timer callbacks (99%).

Read the Long Animation Frame (LoAF) script invoker type study →
Network resource type mix 9,282 sites
91.6% / 98.5% fetch() API / web fonts on React sites

91.6% of React & Next.js sites execute fetch() requests during load (79% good LCP, 1.5s median).

Across 9,282 React sites, 100.0% load JS bundles, 99.9% load images, 98.5% load web fonts (79% good LCP), and 91.6% fire fetch() requests (79% good LCP).

Read the network resource type mix study →
Subresource HTTP compression 9,282 sites
91.1% / 97.7% Brotli / Gzip subresources on React

91.1% of React & Next.js sites serve Brotli-compressed subresources (79% good LCP, 1.5s median).

Across 9,282 React sites, 91.1% serve Brotli-compressed bundles (79% good LCP), 97.7% use Gzip (79% good LCP), and 41.3% include Zstandard-compressed scripts (74% good LCP).

Read the subresource HTTP compression study →
Subresource CDN distribution 9,282 sites
85% / 82% good LCP (Fastly / CloudFront on React)

74.6% of React & Next.js sites load subresources from CloudFront (82% good LCP) and 68.1% from Fastly (85%).

Across 9,282 React sites, 74.6% load subresources from Amazon CloudFront (82% good LCP, 1.4s median), 68.1% from Fastly (85% good LCP, 1.3s median), and 36.0% from Cloudflare (74% good LCP).

Read the subresource CDN distribution study →
Total image payload 9,282 sites
86% vs 67% good LCP (< 350 KB vs > 3 MB)

React apps exceeding 3 MB of images pass LCP 19 points less often than apps under 350 KB.

Across React sites, 38% transfer under 350 KB of images (86% good LCP, 1.3s median) compared with 14% transferring over 3 MB (67% good LCP, 1.9s median).

Explore React image payload data →
Total CSS payload 6,014 sites
88% vs 58% good LCP (< 40 KB vs > 160 KB)

React sites under 40 KB of external CSS pass LCP 30 points more often than sites over 160 KB.

Across React sites, 55% ship under 40 KB of external CSS (88% good LCP, 1.3s median) and 22% ship over 160 KB (58% good LCP, 2.2s median).

Explore React CSS payload data →
Unused CSS bytes 9,279 sites
93% vs 65% good LCP (< 140 KB vs > 600 KB unused)

React sites with over 600 KB of unused CSS pass LCP 28 points less often than sites under 140 KB.

Across React sites, 28% have under 140 KB of unused CSS (93% good LCP, 1.2s median) and 22% have over 600 KB of unused styles (65% good LCP, 2.0s median).

Explore React unused CSS data →
Web font file count 9,282 sites
83% vs 71% good LCP (1-3 fonts vs 7+ fonts)

React sites loading 7+ font files pass LCP 12 points less often than sites with 1 to 3 fonts.

Across React sites, 27% load 1 to 3 font files (83% good LCP), 42% load 4 to 6 font files, and 30% load 7 or more font files (71% good LCP, 1.7s median).

Explore React font count data →
Audio and video payload 9,282 sites
81% sites with no initial media streams

81% of React apps load no audio or video streams on initial render.

Across React sites, 81% load no audio or video requests during initial navigation (78% LCP pass rate, 1.6s median) and 12% load under 500 KB (81%).

Explore React media payload data →
Connection and preload hints 9,282 sites
88% vs 65% good LCP (preload vs dns-prefetch)

63% of React sites emit preload hints (88% good LCP vs 65% on dns-prefetch only).

Across React sites, 63% emit preload hints (88% good LCP, 1.3s median) compared with 9% emitting dns-prefetch only (65% good LCP, 2.1s median).

Explore React resource hints data →
Cookie count 9,282 sites
89% vs 65% good LCP (3-5 cookies vs 6+ cookies)

React sites with 6+ cookies pass LCP 24 points less often than sites with 3 to 5 cookies.

Across React sites, 43% set 3 to 5 cookies (89% good LCP, 1.3s median) and 20% set 6 or more cookies (65% good LCP, 2.0s median).

Explore React cookie count data →
Synthetic paint milestones 9,273 sites
90% vs 62% good field LCP (< 300ms vs > 1.5s lab)

React sites painting under 300ms in the lab pass field LCP 28 points more often than sites over 1,500ms.

Across React sites, 46% paint their hero element in under 300ms in the lab (90% field LCP pass rate, 1.2s median) compared with 26% taking over 1,500ms (62% pass rate, 2.1s median).

Explore React lab paint data →
Document lifecycle milestones 9,282 sites
90% vs 58% good LCP (< 350ms vs > 1.5s DOMComplete)

React sites reaching DOMComplete under 350ms pass field LCP 32 points more often than sites over 1,500ms.

Across React sites, 48% reach DOMComplete in under 350ms (90% field LCP pass rate, 1.2s median) and 18% take over 1,500ms (58% pass rate, 2.2s median).

Explore React document lifecycle data →
LCP sub-part breakdown 6,559 sites
88% vs 71% good LCP (load delay vs TTFB dominant)

TTFB is the largest LCP sub-part on 57% of React sites (71% good LCP vs 88% when load delay leads, 17 points apart).

Across React sites, TTFB is the largest LCP sub-part on 57% (71% LCP pass rate, 1.8s median) and load delay is the largest sub-part on 38% (88% pass rate, 1.3s median).

Explore React LCP sub-part data →
LCP image byte weight 6,193 sites
87% vs 69% good LCP (< 40 KB vs > 300 KB hero)

React hero images over 300 KB pass LCP 18 points less often than hero images under 40 KB.

Across React sites, 49% serve an LCP image under 40 KB (87% LCP pass rate, 1.4s median), 29% serve 40 to 100 KB (79%), and 9% exceed 300 KB (69% pass rate, 1.9s median).

Explore React hero image size data →
Total page weight 9,282 sites
93% vs 66% good LCP (< 1.2 MB vs > 5 MB page)

React sites exceeding 5 MB of total transfer pass LCP 27 points less often than sites under 1.2 MB.

Across React sites, 14% transfer under 1.2 MB (93% LCP pass rate, 1.0s median), 42% transfer 1.2 to 2.5 MB (89%), and 20% exceed 5 MB (66% pass rate, 1.9s median).

Explore React 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…

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