SpeedPriority
Toggle menu
Shopify

How Fast Is Your Shopify Site?

Shopify's hosted infrastructure gives stores a strong performance baseline — but apps and heavy themes can still drag a storefront below the Core Web Vitals bar. Test your store below and see exactly what to fix first.

Shopify Core Web Vitals: What the Field Data Shows

Real-user performance of every measured Shopify origin, from the Chrome UX Report (May 2026).

79.3%of Shopify sites pass all three Core Web Vitals on mobile

LCP
88.8%
INP
89.9%
CLS
92.5%
TTFB
85%
FCP
88.4%

Share of origins with a good score per metric (mobile, 417,508 Shopify origins measured). Data: May 2026, HTTP Archive Core Web Vitals Technology Report / Chrome UX Report.

Shopify is the best-performing platform in this comparison: its CDN-backed hosting makes slow server responses rare. When a store fails Core Web Vitals, the cause is almost always what was added on top — third-party app scripts competing for the main thread, and oversized banner images delaying LCP. That's good news: both are fixable without leaving Shopify.

The 3 Most Common Shopify Performance Bottlenecks

1.Third-party app scripts blocking the main thread

Every installed app can inject its own JavaScript into your storefront, and most load synchronously in the head. A store with 15–20 apps often ships megabytes of scripts that delay rendering and make taps feel sluggish (INP).

How to fix it: Audit installed apps quarterly and uninstall what you don't actively use. Newer apps built as app embeds can be switched off in the theme editor, but older ScriptTag-based apps may keep loading — and can even leave leftover code in your theme after uninstalling, so search the theme for the app's name to be sure. For your own theme scripts, always load them deferred.

<!-- theme.liquid: never load theme JS synchronously -->
<script src="{{ 'custom.js' | asset_url }}" defer></script>

2.Oversized hero and banner images (LCP)

The homepage hero or collection banner is usually the LCP element. Uploading a 4000 px original and letting the browser scale it down wastes bandwidth exactly where the 2.5 s LCP budget is tightest — on mobile.

How to fix it: Use image_url with explicit widths and let Liquid generate a responsive srcset. Mark the hero as eager with high fetch priority; everything below the fold stays lazy.

{{ section.settings.hero_image
   | image_url: width: 1600
   | image_tag: widths: '480, 800, 1200, 1600',
                loading: 'eager', fetchpriority: 'high' }}

3.Layout shift from announcement bars and web fonts (CLS)

Announcement bars injected by apps, cookie banners, and late-loading web fonts all push content around after first paint. Desktop CLS is actually Shopify's weakest single metric in the field data.

How to fix it: Reserve space for anything that appears late (min-height on announcement bars), self-host fonts with font-display: swap, and set explicit dimensions on all media in sections.

/* Reserve the announcement bar's space before it renders */
.announcement-bar { min-height: 40px; }

Frequently Asked Questions

Can I improve Core Web Vitals on Shopify without editing theme code?

Partially. Uninstalling unused apps and re-uploading properly sized images require no code and often deliver the biggest wins. Fixes like deferring theme scripts or reserving space for late-loading elements do require small theme edits — the analyzer above tells you whether they're worth it for your store.

Do Shopify apps really slow down my store?

Yes — app scripts are the most common reason a Shopify store fails Core Web Vitals despite Shopify's fast hosting. Each app adds JavaScript that competes for the main thread. Newer apps (app embeds) can be switched off in the theme editor; many older apps keep loading their script until you uninstall them, and some leave leftover code in the theme even after that.