Shopify — Core Web Vitals

Field data PhoneDesktopAll October 2026 edition · All devices field outcomes
87.6% of Shopify sites pass all three Core Web Vitals
  • #3 of 12 CMSs by overall pass rate
  • Add TTFB and only 85.6% still pass
  • Runs on 4.1% of all sites measured (8,573 crawled Shopify sites, 8,378 with field data)

The distribution, not just the median

Each bar is the good / needs-work / poor split for Shopify. The marks where the whole fleet sits, so you can see who is ahead and who is behind.

LCP 1.7s p75
95.9% good ▲ fleet 82.5%
INP 124ms p75
95.9% good ▲ fleet 94.7%
CLS 0.02 p75
94.1% good ▲ fleet 87.8%
TTFB diagnostic 513ms p75
96.2% good ▲ fleet 58.7%
FCP diagnostic 1.1s p75
95.3% good ▲ fleet 76.6%
Shopify is strong across the board. Even its weakest metric, INP (95.9% good), is ahead of the fleet’s 94.7%. The takeaways below show the architecture choices behind it.
Metric & Architecture Takeaways

What moves Core Web Vitals on Shopify

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

LCP image loading 6,143 stores
31.2% lazy-load their hero banner

31.2% of Shopify stores have loading="lazy" on their main banner image.

Shopify's Liquid image_tag filter omits loading="lazy" unless explicitly passed as a parameter. Across Shopify, 45.9% of stores use default loading (97% good LCP, 1.2s median) and 31.2% have loading="lazy" (97% good LCP, 1.3s median), with 96% good LCP overall.

Read the Shopify LCP loading breakdown →
LCP resource discovery 7,970 stores
89.5% discover the hero in HTML (96% good LCP)

89.5% of Shopify stores render their hero banner as a direct HTML image.

Shopify's Liquid image_tag filter outputs standard <img> markup by default. Across Shopify, 89.5% of stores discover the hero image in HTML (96% good LCP, 1.3s median) compared with 9.4% in CSS background images (93% good LCP, 1.5s median).

Read the Shopify LCP discovery breakdown →
Font-display 8,243 stores
71.3% of @font-face rules use swap

71.3% of Shopify @font-face rules use swap, while 27% use auto or block.

Shopify's Liquid font_face filter accepts a font_display parameter on generated @font-face rules. Across Shopify, pure-swap stores pass LCP at 98% (1.2s median) compared with 95% on mixed-rule stores.

Read the Shopify font-display breakdown →
HTML document protocol 8,349 stores
95.3% serve HTML over HTTP/3 (96% good LCP)

95% of Shopify storefronts serve main HTML over HTTP/3.

Across Shopify storefronts, 95% serve main HTML over HTTP/3 (96% good LCP, 1.3s median), 0.8% use HTTP/2, and 3.9% use HTTP/1.1.

Read the HTML document protocol study →
Main-thread yielding 8,349 stores
95.5% call requestIdleCallback()

95% of Shopify stores call requestIdleCallback().

Across Shopify storefronts, 95.5% call requestIdleCallback() (96ms median INP, 96% good INP overall) and 4.2% call scheduler.yield().

Read the main-thread yielding study →
LCP image format 6,982 stores
95% serve WebP or AVIF automatically

95% of Shopify store hero images use WebP or AVIF.

Shopify's CDN serves image/webp and image/avif from uploaded source images. Across Shopify hero images, 90.1% use WebP (96% good LCP, 1.3s median) and 5.0% use AVIF.

Read the LCP image format study →
Speculation rules 8,349 stores
92.6% have no inline speculationrules script (88% pass all 3 CWV)

92.6% of Shopify stores ship no inline speculation rules tag (88% all-three CWV pass rate).

Across Shopify storefronts, 92.6% have no inline <script type="speculationrules"> tag in initial HTML, and 88% of stores pass all three Core Web Vitals.

Read the speculation rules study →
LCP priority hints 7,970 stores
1.2s vs 1.3s median LCP (highprio vs none)

27.7% of Shopify stores set fetchpriority="high" on the hero image (1.2s median LCP).

Across Shopify storefronts, 27.7% set fetchpriority="high" on the LCP element (97% good LCP, 1.2s median) and 69.8% carry no priority hint (96% good LCP, 1.3s median).

Read the Shopify priority hints breakdown →
Responsive LCP image markup 7,970 stores
69% Shopify stores with srcset or <picture>

69% of Shopify stores serve responsive hero markup with srcset or <picture>.

Shopify's Liquid image_tag filter generates width-descriptor srcset attributes from the widths parameter or default widths. Across Shopify, 55.6% of stores use srcset on the LCP image (96% good LCP) and 13.9% use <picture> (97% good LCP).

Read the Shopify responsive LCP breakdown →
Speculation rules 8,349 stores
92.6% stores without inline speculation script

92.6% of Shopify stores ship no inline <script type="speculationrules"> tag (88% CWV pass rate).

Across Shopify storefronts, 92.6% emit no inline <script type="speculationrules"> element in initial HTML, with 88% passing all three Core Web Vitals overall.

Read the Shopify speculation posture breakdown →
As their CMS 8,349 stores
88% Shopify all-three CWV pass rate

Shopify storefronts record a 88% all-three CWV pass rate across 8,349 stores.

Across 8,349 audited Shopify storefronts, 88% pass all three Core Web Vitals (LCP, INP, and CLS) simultaneously.

Open Shopify Explorer Hub →
CSS @import rules 8,349 stores
1.3s vs 1.5s median LCP (no @import vs @import)

22.7% of Shopify stores use CSS @import rules (1.5s median LCP vs 1.3s without @import).

Across Shopify storefronts, 77.3% have no CSS @import rules (97% good LCP, 1.3s median) and 22.7% include at least one stylesheet with @import (93% good LCP, 1.5s median).

Read the Shopify CSS @import breakdown →
Text compression coverage 8,349 stores
98% vs 95% good LCP (all compressed vs uncompressed leak)

68.7% of Shopify stores include at least one uncompressed text response (95% vs 98% good LCP).

Across Shopify storefronts, 31.3% compress every text response (98% good LCP, 1.2s median) and 68.7% include at least one uncompressed text response (95% good LCP, 1.4s median).

Read the Shopify uncompressed text breakdown →
Image loading strategies 8,343 stores
80% / 58% lazy below fold / lazy in viewport

Shopify stores have eager above-the-fold images on 95%, lazy below-the-fold images on 80%, and lazy in-viewport images on 58%.

Shopify's Liquid image_tag filter accepts a loading parameter. Across Shopify storefronts, 95% have eager above-the-fold images, 80% have lazy below-the-fold images, and 58.4% have a lazy-loaded image inside the initial viewport (96% good LCP).

Read the Shopify image loading breakdown →
Responsive image markup 8,326 stores
96.1% ship responsive srcset (96% good LCP)

Shopify's image_tag filter outputs srcset on 96.1% of stores and <picture> appears on 29.1%.

Shopify's Liquid image_tag filter generates srcset attributes from its widths parameter or default widths. Across Shopify, 96.1% of storefronts use srcset on <img> (96% good LCP) and 29.1% use <picture> (96% good LCP).

Read the Shopify responsive image breakdown →
Image dimension sizing 8,326 stores
95% vs 93% good CLS (sized vs unsized images)

Shopify stores include width and height on 89% of storefronts (95% good CLS).

Shopify's Liquid image_tag filter outputs width and height attributes by default based on image dimensions. Across Shopify, 89.2% of stores have explicitly sized images (95% good CLS) and 73.9% also have unsized images (93% good CLS).

Read the Shopify image dimensions breakdown →
Iframe loading 6,561 stores
99.0% default utility iframes (95% good LCP)

99.0% of iframe-using Shopify stores load default iframes (95% good LCP).

Across iframe-using Shopify storefronts, 99.0% load default iframes (95% good LCP) and 3.8% use loading="lazy".

Read the iframe loading study →
Iframe dimension sizing 6,561 stores
97.7% unsized hidden frames (93% good CLS)

97.7% of iframe-using Shopify stores include unsized iframes (93% good CLS).

Across iframe-using Shopify storefronts, 97.7% contain an iframe without HTML width or height attributes (93% good CLS) and 16.0% use explicit dimensions (90% good CLS).

Read the Shopify iframe dimensions breakdown →
CSS rendering hints 8,264 stores
97.2% ship scroll-driven CSS (96% good INP)

Shopify storefronts using CSS hints include scroll-driven animation rules on 97.2% and aspect-ratio on 63.8%.

Across hint-using Shopify storefronts, 97.2% include CSS scroll-driven animation rules (96% good INP), 65.3% use will-change, and 63.8% use aspect-ratio.

Read the Shopify CSS hints breakdown →
Layout shift causes 5,454 stores
79.7% box growth (91% good field CLS)

Among shifting Shopify stores, 79.7% record box growth (91% good CLS) and 36.0% record sibling displacement.

Across 5,454 Shopify storefronts with lab layout shifts, 79.7% record element box growth (91% good field CLS) and 36.0% record sibling displacement (90% good CLS).

Read the Shopify CLS attribution breakdown →
Layout shift direction 5,454 stores
50.3% downward shifts (90% good CLS)

50.3% of shifting Shopify stores record downward shifts (90% good CLS).

Across 5,454 Shopify stores with recorded lab shifts, 83.5% record horizontal shifts (92% good field CLS) and 50.3% record downward vertical shifts (90% good CLS).

Read the Shopify shift direction breakdown →
Subresource network protocols 8,349 stores
100% H3 / 100% H2 edge subresource multiplexing (96% good LCP)

Shopify storefronts load subresources over HTTP/3 (100%), HTTP/2 (99.6%), and HTTP/1.1 (99.9%).

Across Shopify storefronts, 100.0% fetch subresources over HTTP/3, 99.6% over HTTP/2, and 99.9% include HTTP/1.1 subresource requests (96% good LCP overall).

Read the Shopify network protocol breakdown →
JavaScript frameworks 3,926 stores
80.9% / 24.1% jQuery / Vue.js on framework-using stores

Among Shopify stores loading a JS framework, 80.9% use jQuery, 24.1% use Vue, and 5.5% use Alpine.js.

Across 3,926 Shopify stores loading a detected JS framework, 80.9% load jQuery (83% pass all 3 CWV), 24.1% load Vue (83%), and 5.5% load Alpine.js (89%).

Read the Shopify framework breakdown →
Analytics providers 5,980 stores
92.8% run GA4 (95% good INP)

Analytics-using Shopify stores include Google Analytics 4 on 92.8% and UA tags on 85.1% (95% good INP).

Across analytics-using Shopify storefronts, 92.8% load Google Analytics 4 (95% field INP pass rate) and 85.1% include Universal Analytics references.

Read the Shopify analytics breakdown →
Ad networks 666 stores
86% / 11.4% Google AdSense / Taboola retargeting

Among the 666 Shopify stores loading ad network tags, 86% use AdSense and 11.4% use Taboola.

Across ad-using Shopify storefronts, 85.6% load AdSense/Google Ads (73% passing all three CWV), 11.4% load Taboola, and 3.6% load Criteo (88% overall among ad-using Shopify stores).

Read the ad networks study →
Tag managers 5,160 stores
99.5% use Google Tag Manager (95% good INP)

Google Tag Manager is used on 99.5% of tag-manager-using Shopify stores (95% good INP).

Across 5,160 Shopify storefronts with a tag manager, 99.5% use Google Tag Manager (95% good INP vs 96% overall) and 1.0% use Tealium iQ (96% good INP).

Read the tag managers study →
Consent management platforms 772 stores
88% vs 79% all 3 CWV pass (iubenda vs Cookiebot)

Shopify stores using iubenda (30.1%) pass all three CWV at 88% vs 79% for Cookiebot (36.7%).

Across 772 Shopify stores with an external CMP, 36.7% use Cookiebot (79% passing all three CWV), 33.4% use Civic Cookie Control (79%), and 30.1% use iubenda (88%).

Read the Shopify consent platform breakdown →
Performance optimization plugins 3 stores
88% all 3 CWV pass rate

3 Shopify stores show standalone optimization signatures (88% CWV pass rate).

Across the dataset, 3 Shopify storefronts have a detected standalone optimization plugin signature, with 88% passing all three Core Web Vitals.

Read the performance optimization plugins study →
Third-party technology categories 8,349 stores
71.6% / 61.8% analytics / tag managers on Shopify

100% of Shopify stores use a CDN, 71.6% load analytics, and 61.8% load tag managers.

Across 8,349 Shopify storefronts, 100.0% use a CDN (88% passing all three CWV), 71.6% load external analytics (85% CWV pass), and 61.8% load tag managers (85% CWV pass).

Read the Shopify third-party categories breakdown →
DOM element count 8,349 stores
67.6% Shopify stores with 1,500+ DOM nodes

67.6% of Shopify storefronts exceed 1,500 DOM elements (95% good INP vs 99% at 800 to 1,499 nodes).

Across Shopify storefronts, 24.8% have between 800 and 1,499 DOM nodes (99% good INP) and 67.6% exceed 1,500 DOM nodes (95% good INP, 104ms median).

Read the Shopify DOM element count breakdown →
Maximum DOM depth 8,349 stores
97% vs 84% good INP (15-20 vs 32+ levels)

98% of Shopify stores have fewer than 32 DOM levels, while 1.6% reach 32+ levels (84% good INP).

Across 8,349 Shopify stores, 44.3% sit at 15 to 20 DOM levels (97% good INP), 49.1% sit at 21 to 31 levels (95% good INP), and 1.6% sit at 32+ levels (84% good INP).

Read the Shopify DOM depth breakdown →
Initial HTML document size 8,349 stores
63.5% / 25.6% 30-75 KB / >75 KB HTML on Shopify

89% of Shopify stores ship over 30 KB of HTML (97% good LCP at 30 to 75 KB vs 92% over 75 KB).

Across 8,349 Shopify storefronts, 63.5% transfer 30 to 75 KB of HTML (97% good LCP, 1.2s median) and 25.6% exceed 75 KB (92% good LCP, 1.5s median).

Read the Shopify HTML size breakdown →
Iframe count per page 8,349 stores
96% vs 89% good CLS (0 iframes vs 4+ iframes)

79% of Shopify stores embed iframes, with 4+ iframe stores (18.1%) passing CLS at 89%.

Across Shopify storefronts, 21.4% have 0 iframes (96% good CLS), 32.4% have 1 iframe (96%), 28.2% have 2 to 3 (93%), and 18.1% have 4+ iframes (89% good CLS).

Read the Shopify iframe count breakdown →
Lab Total Blocking Time (TBT) 8,349 stores
98% vs 90% good INP (0ms vs >600ms TBT)

20.2% of Shopify stores exceed 600ms lab TBT (90% good INP vs 98% at 0ms TBT, 8 points apart).

Across Shopify storefronts, 26.4% record 0ms lab TBT (98% good field INP), 36.0% record 1 to 200ms TBT (98% good INP), and 20.2% exceed 600ms TBT (90% good INP, 118ms median).

Read the Shopify Total Blocking Time breakdown →
CLS shift concentration 5,454 stores
94% vs 90% good CLS (single shift vs multi-shift)

57.4% of shifting Shopify stores have 95%+ of their lab CLS in one shift (94% good CLS vs 90% multi-shift).

Across 5,454 Shopify storefronts with lab layout shifts, 57.4% have a single dominant shift (94% good field CLS), 23.8% sit at 65% to 94% (90%), and 18.8% have multiple shifts (90% good CLS).

Read the Shopify CLS concentration breakdown →
Layout shift count 8,349 stores
98% vs 83% good CLS (0 shifts vs 6+ shifts)

Shopify stores with 6+ lab layout shifts (8.1%) pass field CLS at 83% vs 98% with 0 shifts.

Across 8,349 Shopify storefronts, 33.5% record 0 lab shifts (98% good CLS), 42.4% record 1 to 2 shifts (95%), and 8.1% record 6 or more shifts (83% good CLS).

Read the Shopify layout shift count breakdown →
Largest single layout shift score 5,552 stores
97% vs 79% good CLS (<0.01 vs >0.25 largest shift)

Shifting Shopify stores with a largest shift over 0.25 (12.3%) pass field CLS at 79% vs 97% under 0.01.

Across 5,552 shifting Shopify storefronts, 37.2% have a largest shift under 0.01 (97% good CLS), 37.7% sit at 0.01 to 0.10 (94%), and 12.3% exceed 0.25 (79% good CLS).

Read the Shopify largest shift breakdown →
Distinct network domain count 8,349 stores
97% vs 84% all 3 CWV pass (4-7 vs 15+ domains)

64.2% of Shopify stores connect to 15+ domains (84% CWV pass rate vs 97% at 4 to 7 domains).

Across Shopify storefronts, 9.6% connect to 4 to 7 domains (97% passing all three CWV), 26.1% connect to 8 to 14 domains (94%), and 64.2% connect to 15+ domains (84%).

Read the Shopify network domain count breakdown →
Third-party request share 8,349 stores
98% vs 89% good INP (<10% vs 25-50% 3P requests)

Shopify stores with 25% to 50% third-party requests (3.7%) pass INP at 89% vs 98% under 10%.

Across Shopify storefronts, 52.2% have under 10% third-party requests (98% good INP), 43.5% sit at 10% to 25% (94%), and 3.7% sit at 25% to 50% (89% good INP, 9 points apart).

Read the Shopify third-party request share breakdown →
Cacheable resource share 8,349 stores
100% of Shopify stores cache 50%+ of resources

100% of Shopify stores cache at least 50% of subresources (97% good LCP at 80%+ cacheable).

Across Shopify storefronts, 60.9% mark 80%+ of resources as cacheable (97% good LCP) and 38.8% cache 50% to 79% (94% good LCP).

Read the Shopify cacheable resource breakdown →
Third-party provider count 8,349 stores
96% vs 82% all 3 CWV pass (2-4 vs 9+ providers)

44.6% of Shopify stores load 9+ third-party providers (82% CWV pass rate vs 96% at 2 to 4 providers).

Across Shopify storefronts, 25.8% load 2 to 4 external providers (96% all-three CWV pass rate), 29.5% load 5 to 8 (90%), and 44.6% load 9 or more providers (82%, 14 percentage points apart).

Read the Shopify third-party provider count breakdown →
Page image format mix 8,343 stores
99.3% / 90.5% WebP / AVIF adoption on Shopify stores

Shopify serves WebP on 99.3% of storefronts and AVIF on 90.5% (96% good LCP).

Across Shopify storefronts, 99.3% serve WebP images (96% good LCP, 1.3s median) and 90.5% serve AVIF images (96% good LCP).

Read the Shopify image format breakdown →
Image hosting origin 8,343 stores
96% vs 93% good LCP (same-origin vs inline data: URI)

Shopify stores with inline base64 data-URI images (10.5%) pass LCP at 93% vs 96% with same-origin images.

Across 8,343 Shopify storefronts, 99.2% load same-origin images (96% good LCP), 82.0% load cross-origin images (95% good LCP), and 10.5% embed base64 data: URIs (93% good LCP, 1.5s median).

Read the Shopify image source breakdown →
Script loading strategy 8,346 stores
96% vs 94% good LCP (deferred vs blocking scripts)

99.6% of Shopify stores use deferred scripts (96% good LCP), while 29.8% include blocking scripts (94%).

Across Shopify storefronts, 99.6% load scripts with defer (96% good LCP, 1.3s median), 99.5% use type="module", and 29.8% include synchronous blocking scripts (94% good LCP, 1.5s median).

Read the Shopify script loading breakdown →
Script origin (first-party vs third-party) 8,346 stores
100.0% / 100.0% first-party / third-party scripts on Shopify

100.0% of Shopify stores execute both first-party and cross-origin scripts (96% good INP).

Across 8,346 Shopify storefronts, 100.0% load scripts from the primary domain and 100.0% load cross-origin scripts (96% good INP, 97ms median).

Read the Shopify script origin breakdown →
Script initiator type 8,346 stores
96% vs 94% good INP (parser-initiated vs other initiators)

99.9% of Shopify stores use script-injected loaders, while 19.1% with other initiators pass INP at 94%.

Across Shopify storefronts, 99.9% load parser-initiated scripts (96% good INP), 99.9% load script-initiated scripts (96% good INP, 97ms median), and 19.1% have other script initiators (94% good INP, 104ms median).

Read the Shopify script initiator breakdown →
Stylesheet loading and placement 8,346 stores
90.8% / 76.8% non-blocking <head> / section <body> CSS

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

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

Read the Shopify stylesheet loading breakdown →
Stylesheet origin (first-party vs third-party) 8,346 stores
99.9% / 78.0% first-party / cross-origin CSS on Shopify

99.9% of Shopify stores serve first-party CSS (96% good LCP) and 78.0% load cross-origin CSS (95%).

Across 8,346 Shopify storefronts, 99.9% load first-party stylesheets (96% good LCP, 1.3s median) and 78.0% load cross-origin stylesheets (95% good LCP).

Read the Shopify stylesheet origin breakdown →
Web font format 8,169 stores
96% vs 90% good LCP (WOFF2 vs raw TTF on Shopify)

99.4% of Shopify stores serve WOFF2 fonts (96% good LCP), while 3.0% load TTF (90%).

Shopify's Liquid font_face filter emits .woff2 and .woff font URLs. Across Shopify storefronts, 99.4% serve WOFF2 (96% good LCP, 1.3s median), 20.8% load WOFF (95% good LCP), and 3.0% load TTF (90% good LCP, 1.6s median).

Read the Shopify font format breakdown →
Web font hosting source 8,169 stores
96% vs 94% good LCP (Shopify self-hosted vs Google Fonts)

92.5% of Shopify stores serve fonts from their first-party domain (96% good LCP vs 94% with Google Fonts).

Shopify's font_face filter serves theme fonts from the storefront's /cdn/fonts/ path. Across Shopify, 92.5% of stores serve first-party fonts (96% good LCP, 1.3s median), 32.3% load Google Fonts (94% good LCP, 1.4s median), and 3.2% load Adobe Fonts (91%).

Read the Shopify font source breakdown →
Video and audio media source 1,836 stores
57.8% / 50.2% same-origin / Shopify CDN media on Shopify

Shopify stores with video split between first-party paths (57.8%, 95% good LCP) and external CDNs (50.2%, 93%).

Shopify's Liquid video_tag filter outputs HTML <video> tags with HLS and MP4 sources. Across 1,836 media-using Shopify storefronts, 57.8% serve video from their primary domain (95% good LCP, 1.4s median) and 50.2% stream from cross-origin CDNs (93% good LCP, 1.5s median).

Read the Shopify media source breakdown →
Main-thread scheduling API usage 8,349 stores
99.7% / 89.4% requestIdleCallback / setInterval on Shopify

99.7% of Shopify stores call requestIdleCallback() (96% good INP, 97ms median).

Across Shopify storefronts, 99.7% call requestIdleCallback() (96% good INP), 99.8% call requestAnimationFrame(), and 89.4% call setInterval() (96% good INP).

Read the Shopify task scheduling breakdown →
Network resource type mix 8,349 stores
99.9% of Shopify stores firing runtime fetch() requests

99.9% of Shopify stores fire runtime fetch() calls alongside scripts (100.0%) and stylesheets (100.0%).

Across 8,349 Shopify storefronts, 99.9% execute fetch() requests during page load (96% good LCP, 1.3s median), 100.0% load scripts, and 100.0% load stylesheets.

Read the Shopify network resource type breakdown →
Subresource HTTP compression 8,349 stores
100.0% / 95.5% Brotli / Dictionary-Compressed Brotli on Shopify

95.5% of Shopify stores use Dictionary-Compressed Brotli (dcb) alongside Brotli (100.0%), passing LCP at 96%.

Across Shopify storefronts, 100.0% serve Brotli (br) responses (96% good LCP) and 95.5% serve Compression Dictionary Transport (dcb) responses (96% good LCP, 1.3s median).

Read the Shopify subresource compression breakdown →
Subresource CDN distribution 8,349 stores
100.0% / 51.2% Cloudflare / CloudFront subresources on Shopify

100.0% of Shopify stores serve assets from Cloudflare (96% good LCP) and 51.2% also load CloudFront assets.

Across 8,349 Shopify storefronts, 100.0% load subresources from Cloudflare (96% good LCP, 1.3s median), 51.2% load resources from Amazon CloudFront (94% good LCP), and 44.2% load resources from Fastly (94%).

Read the Shopify subresource CDN breakdown →
Total image payload 8,349 sites
50% stores shipping > 1 MB of images

50% of Shopify storefronts transfer over 1 MB of images.

Across Shopify storefronts, 36% transfer 350 KB to 1 MB of images and 35% transfer 1 to 3 MB. Stores under 350 KB pass LCP at 98% (1.2s median) compared with 93% on stores over 3 MB.

Explore Shopify image payload data →
Total JavaScript payload 8,349 sites
99% vs 94% good INP (250-550 KB vs > 1 MB)

58% of Shopify stores transfer over 1 MB of JavaScript (94% good INP vs 99% at 250 to 550 KB).

Across Shopify storefronts, 58% load more than 1 MB of scripts (94% good INP, 110ms median) compared with 99% (80ms median) on stores transferring 250 to 550 KB.

Explore Shopify script payload data →
Unused JavaScript bytes 8,348 sites
99% vs 94% good INP (850 KB-1.5 MB vs > 1.5 MB)

64% of Shopify stores ship over 1.5 MB of unused JavaScript on load.

Across Shopify storefronts, 64% have over 1.5 MB of unused JS during initial load (94% good INP, 107ms median) compared with 99% (87ms median) at 850 KB to 1.5 MB.

Explore Shopify unused JS data →
Total CSS payload 8,347 sites
60% stores under 80 KB of CSS

60% of Shopify stores transfer under 80 KB of total CSS.

Across Shopify storefronts, 47% transfer 40 to 80 KB of CSS (97% LCP pass rate) and 14% transfer under 40 KB (98%), compared with 90% on the 8% exceeding 160 KB.

Explore Shopify CSS payload data →
Unused CSS bytes 8,344 sites
58% stores under 300 KB unused CSS

58% of Shopify stores have under 300 KB of unused CSS.

Across Shopify storefronts, 20% have under 140 KB of unused CSS (98% LCP pass rate, 1.1s median) and 38% have 140 to 300 KB (98%), compared with 90% above 600 KB.

Explore Shopify unused CSS data →
Web font file count 8,349 sites
1.2s vs 1.5s median LCP (1-3 fonts vs 7+ fonts)

Shopify stores loading 1 to 3 fonts pass LCP at 98% vs 94% with 7+ fonts.

Across Shopify storefronts, 30% load 1 to 3 font files (98% LCP pass rate, 1.2s median) and 39% load 4 to 6 (96%), compared with 94% (1.5s median) on the 29% loading 7+ fonts.

Explore Shopify font count data →
Audio and video payload 8,349 sites
22% stores loading initial video/audio

22% of Shopify storefronts load video or audio on initial load.

Shopify's Liquid video_tag filter outputs HTML <video> tags for product and section media. Across Shopify stores, 78% ship no initial audio/video media (96% LCP pass rate, 1.3s median), 12% load under 500 KB (95%), and 8% exceed 3 MB (94%).

Explore Shopify media payload data →
Cookie count 8,349 sites
58% stores setting 6+ cookies

58% of Shopify stores set 6+ cookies on initial load.

Across Shopify storefronts, 58% set 6+ cookies (95% LCP pass rate, 1.4s median) and 24% set 3 to 5 cookies (98% pass rate, 1.2s median).

Explore Shopify cookie count data →
Synthetic interaction sub-parts 7,410 sites
98% vs 91% good INP (< 35ms vs > 110ms lab)

Shopify stores over 110ms in lab interactions pass field INP 7 points less often than stores under 35ms.

Across Shopify storefronts, 34% complete synthetic interactions in under 35ms (98% field INP pass rate, 90ms median) and 20% exceed 110ms in the lab (91% pass rate, 112ms median).

Explore Shopify interaction sub-parts →
Long Animation Frame work 8,057 sites
98% vs 92% good INP (< 80ms vs > 250ms LoAF)

Shopify stores over 250ms of LoAF work pass field INP 6 points less often than stores under 80ms.

Across Shopify storefronts, 28% record under 80ms of LoAF work (98% INP pass rate, 87ms median), 29% sit between 80 and 130ms (97%), and 19% exceed 250ms (92% pass rate, 112ms median).

Explore Shopify LoAF breakdown →
Synthetic paint milestones 8,340 sites
68% stores painting in 300-1,500ms

68% of Shopify stores paint between 300ms and 1,500ms in the lab.

Across Shopify storefronts, 38% record a 600 to 1,500ms lab LCP (95% field LCP pass rate, 1.4s median) and 30% paint in 300 to 600ms (98%, 1.2s median).

Explore Shopify lab paint data →
Document lifecycle milestones 8,349 sites
98% vs 93% good LCP (350-700ms vs > 1.5s)

73% of Shopify stores reach DOMComplete after 700ms.

Across Shopify storefronts, 42% reach DOMComplete in 700 to 1,500ms (97% field LCP pass rate), 31% exceed 1,500ms (93%), and 24% finish in 350 to 700ms (98% pass rate, 1.1s median).

Explore Shopify document lifecycle data →
Main-thread CPU breakdown 8,349 sites
99% vs 93% good INP (150-450ms vs > 1.2s CPU)

46% of Shopify stores exceed 1.2s of scripting CPU, passing INP 6 points less often than stores at 150 to 450ms.

Across Shopify storefronts, 46% spend over 1,200ms in main-thread scripting CPU (93% field INP pass rate, 112ms median) compared with 99% (79ms median) at 150 to 450ms.

Explore Shopify main-thread CPU data →
LCP sub-part breakdown 7,083 sites
70% stores where load delay is largest phase

Resource load delay is the largest LCP phase on 70% of Shopify stores (97% good LCP).

Across Shopify storefronts, resource load delay is the largest LCP sub-part on 70% of stores (97% LCP pass rate, 1.3s median) and render delay is the largest sub-part on 15% (90% pass rate, 1.6s median).

Explore Shopify LCP sub-part data →
Total page weight 8,349 sites
98% vs 93% good LCP (1.2-2.5 MB vs > 5 MB)

81% of Shopify stores transfer over 2.5 MB total page weight.

Across Shopify storefronts, 47% transfer 2.5 to 5 MB (97% LCP pass rate, 1.3s median), 34% exceed 5 MB (93%, 1.5s median), and 18% transfer 1.2 to 2.5 MB (98%, 1.1s median).

Explore Shopify total page weight data →

CMS standings

All CMSs →

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