Benchmarks

Benchmark page

Shopify speed and Core Web Vitals benchmarks

A benchmark guide for judging Shopify storefront speed by template, using Core Web Vitals, page weight, script load, and image handling in the context of real user experience.

Last updated March 9, 202614 min read
Editorial note: A speed benchmark is only useful when it distinguishes field data from lab data and helps merchants decide what to fix on revenue-driving templates first.

Benchmark notes

How to read this page

  • Separate field data from lab data. Core Web Vitals describe real user experience at the 75th percentile, while Lighthouse is a controlled diagnostic test.
  • Benchmark by template family, especially homepage, collection, product, article, cart, and search templates.
  • Discuss page weight, JavaScript load, image handling, and third-party scripts alongside CWV outcomes.

Key takeaways

  • Shopify as a platform benchmarks well overall, but individual stores still regress badly when templates accumulate apps, media, and merchandising code.
  • Product and collection pages usually deserve more attention than the homepage because they carry the most revenue pressure and the most front-end complexity.
  • The most useful benchmark pages combine hard thresholds, context about sample limitations, and clear next-step guidance.

Homepage

Often strongest template

Homepages are frequently more curated and lighter than revenue-driving templates deeper in the funnel.

Product page

Highest risk template

Media galleries, variant logic, reviews, upsells, and app embeds often make product pages the first serious CWV pressure point.

Collection page

Common mobile bottleneck

Product grids, swatches, filters, sort logic, and merchandising scripts can hurt both LCP and INP.

Cart and slide cart

Interaction-sensitive

These templates often expose INP issues caused by script-heavy drawers, shipping estimators, and async UI updates.

What a Shopify speed benchmark should actually measure

Most Shopify speed pages are too shallow to be useful. They publish a single Lighthouse score, usually from the homepage, and present it as if it explains the whole storefront. It does not. A serious benchmark page should answer four separate questions:

  • How do real users experience the store in the field?
  • How do key templates behave under controlled lab testing?
  • How much page weight, JavaScript, and image cost is being shipped?
  • Which template family is hurting revenue the most?

Google’s Core Web Vitals remain the universal baseline for field performance: LCP should be at or below 2.5s, INP at or below 200ms, and CLS at or below 0.10, measured at the 75th percentile. A page or origin only passes the overall assessment when all three are in the good range. Source: web.dev, PageSpeed Insights docs, threshold methodology.

“the key is to focus on real user data.”

Benchmark the commercial path, not just the pretty path

On most stores, the homepage is the showroom. Product, collection, search, and cart templates are where performance debt becomes expensive.

Benchmark by template, not by homepage alone

Shopify itself evaluates theme performance across multiple template types, not the homepage alone. In Theme Store testing, a theme must achieve a minimum average Lighthouse performance score of 60 across the home page, product page, and collection page. That is a useful signal: even Shopify’s own benchmark process assumes template-level variance matters. Source:

Shopify theme performance best practices

.

In practice, merchants usually care most about four template families:

  • Homepage: often curated, image-heavy, but relatively controlled.

  • Collection pages: vulnerable to grid weight, filters, swatches, quick-add UI, and merchandising scripts.

  • Product pages: usually the first place where galleries, variant pickers, reviews, recommendation blocks, subscriptions, bundles, and trust widgets pile up.

  • Cart / drawer / search: often the place where INP problems surface because these interactions are JavaScript-sensitive.

That is why “our homepage scores 90+ in Lighthouse” is often meaningless. A storefront can look healthy at the front door while mobile product pages fail LCP or carts feel sluggish because main-thread work is too heavy.

“Themes should minimize the use of JavaScript”

Current platform context: what "normal" looks like in 2026

Public benchmark context is useful, but it has to be interpreted correctly. The best current high-level view comes from the 2025 HTTP Archive Web Almanac ecommerce chapter. It is not a Shopify-only study of themes or apps, but it does provide platform-level context across a large ecommerce dataset.

Public benchmark contextShopify resultWhat it means
Good Core Web Vitals pass rate, desktop ecommerce origins76%Shopify performs strongly at the platform level relative to major ecommerce peers.
Good Core Web Vitals pass rate, mobile ecommerce origins76%Mobile performance is still where individual stores most often lose discipline, even on a strong platform baseline.
Median Lighthouse Performance, desktop71Desktop lab scores are decent, but not a substitute for field data.
Median Lighthouse Performance, mobile55Mobile remains the more demanding benchmark and usually the right default device context.

Source:

HTTP Archive Web Almanac 2025, Ecommerce chapter

.

Two conclusions matter here. First, Shopify itself is not the usual reason a store is slow. Second, the gap between platform-level results and store-level reality is where theme choices, app embeds, third-party scripts, media handling, and implementation quality matter most.

“A site is considered ‘good’ on CWV when it passes all three thresholds.”

Recommended operating benchmarks by template

There is no single authoritative public Shopify-only average for every template type. So the most honest way to benchmark is to combine:

  • Google’s official CWV pass thresholds
  • Shopify’s own multi-template testing approach
  • current web weight realities from the Web Almanac
  • editorial operating targets that are strict enough to be useful

The table below is best read as a recommended operating benchmark for Shopify teams, not as a claim that “this is the platform average.”

TemplateHealthy benchmarkCaution zoneUsually breaks first
HomepageLCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.10, mobile Lighthouse 60+LCP 2.5 to 4.0s, CLS above 0.10Hero media, announcement bars, app-loaded promos
Collection pageLCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.10, mobile Lighthouse 55 to 70+INP 200 to 500ms, mobile score below 55filters, swatches, product-card JS, infinite scroll, merchandising scripts
Product pageLCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.10, mobile Lighthouse 55 to 70+LCP above 2.5s, INP above 200msgallery payload, reviews, recommendation widgets, variant logic, app embeds
Article / content pageLCP ≤ 2.5s, CLS ≤ 0.10, lighter than product templatesunexpected layout shift or oversized medialazy-loaded embeds, ad units, image dimensions
Cart / slide cartINP ≤ 200ms, CLS ≤ 0.10, no visible jank during updatesINP 200 to 500msdrawer scripts, shipping estimators, discount logic, cross-sell modules

Why use these bands? Because they align with official CWV pass criteria while staying realistic about what heavily merchandised storefronts tend to achieve in practice. Shopify’s own Theme Store floor of 60 average Lighthouse performance also makes mobile 60+ a useful minimum viability signal for important templates, even though strong stores should aim higher.

Page-weight and script-load heuristics

Bytes are not a ranking factor by themselves, but they are a practical debugging lens. The 2025 Web Almanac reports a median mobile homepage weight of roughly 2.6 MB and a median mobile inner-page weight of roughly 1.8 MB. That is the modern web, not an ideal target. On Shopify, stores usually perform better when revenue templates stay lighter than those medians, especially on mobile. Source:

HTTP Archive Web Almanac 2025, Page Weight chapter

.

JavaScript deserves its own budget discussion. The Web Almanac’s 2024 JavaScript chapter reports median JavaScript payloads of 558 KB on mobile and 613 KB on desktop across the web. Again, that is descriptive, not aspirational. Source:

HTTP Archive Web Almanac 2024, JavaScript chapter

.

For Shopify apps specifically, Shopify advises that an app entry point should stay under 10 KB of JavaScript and 50 KB of CSS on a page and should load itself on interaction. That recommendation is narrow, but it explains why a store with many app touches can degrade quickly. Source:

Shopify app performance best practices

.

“less than 10KB of JavaScript and less than 50KB of CSS”

How to read field data, lab data, and page weight together

Good benchmark pages explain measurement layers instead of blending them into one vague score.

SignalWhat it tells youBest useCommon mistake
Core Web Vitals field dataWhat real users experienced on actual devices and networksJudging whether customers are genuinely getting a good experienceIgnoring low-volume templates because the origin average looks fine
Lighthouse lab testingHow the page behaves in a controlled environmentDebugging and before/after comparisonsTreating a single run as ground truth
Page weight and request countHow much front-end cost you are shippingFinding bloated templates and prioritizing payload reductionAssuming lighter always equals faster without checking render-blocking and main-thread cost
Session recordings or RUM tracesWhere users actually feel lag or jankConnecting technical regressions to template UXOnly diagnosing with synthetic tools

Shopify’s current performance guidance is aligned with this layered view. Its 2026 tooling article emphasizes real user monitoring first, then debugging, then automation and alerting. Source:

Shopify Performance, Web Performance Tools for 2026

.

This also explains why stores sometimes see a decent Lighthouse score while customers still feel friction. Field data includes the real mix of devices, old phones, flaky networks, and long-tail geographies that lab tests cannot fully simulate.

What usually moves the needle on Shopify stores

On Shopify storefronts, the highest-impact fixes are usually not mysterious:

  • Prioritize the LCP asset. On many product and homepage templates, the largest visible image is the LCP element. If it loads late, everything feels slow.

  • Reserve layout space. Shopify’s own performance guidance on CLS and image optimization repeatedly points to media handling as a major source of instability.

  • Reduce JavaScript on revenue templates. Variant pickers, filters, bundle widgets, recommendation components, and review embeds are often where INP starts to slip.

  • Audit app embeds and third-party tags. Many stores blame the theme first when the larger regression is injected code.

  • Benchmark mobile first. Mobile is where good intentions die under real CPU and network constraints.

“The way you implement image loading can have a large impact on both.”

For CLS specifically, product grids, image placeholders, announcement bars, sticky elements, and late-loading app blocks deserve scrutiny before almost anything else. Source:

Shopify on optimizing CLS

.

A useful rule of thumb

If your homepage is fast but your product pages are slow, investigate media strategy and app embeds. If your pages load quickly but feel laggy when users click, investigate JavaScript and INP.

What to publish with every benchmark table

Benchmark pages become high trust when they make limitations obvious. Every table should publish:

  • Measurement method: CrUX, Search Console, PageSpeed Insights, Lighthouse CI, or custom RUM.
  • Date range and whether the result is page-level or origin-level.
  • Template type and device context, especially mobile versus desktop.
  • Whether the result is a field metric, lab metric, or editorial operating target.
  • Sample limitations, such as low-traffic templates or seasonal merchandising spikes.
  • Interpretation guidance: what the merchant should audit next if a benchmark is missed.

One of the fastest ways to make a benchmark page low trust is to mix all of those categories together and publish a single average. Speed work gets practical when the reader can tell which template is slow, which metric is failing, and which type of front-end cost is likely responsible.

Sources and methodology

This page combines official Google thresholds, official Shopify performance guidance, and broad public ecommerce and web-performance datasets. It deliberately avoids inventing a fake “average Shopify speed score” for all stores because that number is not a serious benchmark.

How to use this page

Use the public figures as context, the CWV thresholds as the hard pass line, and the template benchmarks above as operating targets for prioritization.

Related resources

Keep exploring the playbook

Benchmarks

Shopify conversion rate benchmarks

Current Shopify conversion rate benchmarks, plus the context merchants need on traffic mix, device mix, product category, price point, and checkout friction.

benchmarkconversionanalytics
Benchmarks

Shopify cart abandonment benchmarks

A benchmark guide for interpreting Shopify cart abandonment with proper context around traffic quality, device mix, checkout completion, pricing transparency, and purchase complexity.

benchmarkcheckoutconversion