Shopify Site Speed: What Actually Slows Stores Down

What actually slows a Shopify store down, how to measure it with Core Web Vitals, and the fixes worth doing in order.

Cracktab6 min read

Site speed advice for Shopify tends to arrive as a list of thirty tips, most of which don't apply to your store. The truth is that a small number of things account for most of the slowness on most stores, and they're usually the same things: oversized images, a pile of apps, and a theme doing more work than it needs to. This guide walks through how to find out which one is hurting you, and what to do in what order.

What Shopify already handles, and what it doesn't

Shopify runs the hosting, the CDN, and the server side of your store. You can't tune the server, and you don't need to. That means almost every speed problem on a Shopify store lives in the front end: what your theme asks the browser to download, and what runs once it arrives.

That's good news, because front end problems are the ones you can actually fix without migrating anything.

Measure before you change anything

A stopwatch on a white background, used here for measuring Shopify page load times before optimizing

Optimizing without measuring usually means spending a week on something that saved 40 milliseconds. Start by getting a baseline for your three most important templates: the homepage, a busy collection page, and a best-selling product page.

The three numbers that matter

Google's Core Web Vitals are the standard most tools report against. According to web.dev, a page should reach a Largest Contentful Paint (LCP) of 2.5 seconds or less, an Interaction to Next Paint (INP) of 200 milliseconds or less, and a Cumulative Layout Shift (CLS) of 0.1 or less, measured at the 75th percentile of page loads and split between mobile and desktop.

In plain terms: LCP is how long until the main thing on screen appears, usually your hero image or product photo. INP is how long the page takes to respond when someone taps or clicks. CLS is how much the layout jumps around while loading, which is what causes those mis-taps on mobile.

Lab tests and real user data are different things

PageSpeed Insights runs a simulated test and also shows real Chrome user data for your site when there's enough of it. The lab score is useful for finding specific problems. The field data is what reflects your actual shoppers, on their actual phones and connections. Shopify's own web performance report in the admin gives you a similar view across your store.

Don't chase a perfect score. A store that loads well for real customers on mobile is the goal, and that's a different target from a green number in a testing tool.

What actually slows Shopify stores down

Images that are far bigger than they need to be

A tall stack of photo prints, standing in for product image files that are far larger than the page needs

This is the most common problem and the easiest to fix. A product photo exported straight from a camera or a design tool can be several megabytes and 4000 pixels wide, displayed in a 600 pixel box. Shopify will serve resized versions when your theme asks for them properly, but oversized originals still cause trouble, especially in sections where a developer hardcoded a URL.

Practical fixes: compress images before uploading, keep the largest dimension near what's actually displayed, let images below the fold load lazily, and make sure the hero image on each template is not lazy-loaded, since that's usually your LCP element.

Apps, and the code they leave behind

Every app that renders something on the storefront adds requests. Individually, none of them look like much. Fifteen of them together can double your page weight.

Two things to check. First, whether you still use every app you pay for. Second, whether removed apps left code in the theme. Shopify's newer framework helps here: as the developer docs put it, "apps built in the theme app extension framework don't edit theme code, which decreases the risk of introducing breaking changes to the theme." Older apps did edit theme files, and uninstalling them doesn't always clean up. Search your theme for leftover snippets and script tags from apps you no longer have.

A theme doing too much work

Heavy sliders, quick-view modals on every card, a mega menu that loads images for 200 collections, related product logic that loops through the whole catalog. Each is fine alone. Stacked on one template, they add up to slow rendering and a laggy feel when people interact.

Collection pages deserve a specific look. Loading 48 products per page with swatches, review stars, and a quick-add button on each one is a lot of markup. Fewer products per page with real pagination often feels faster than infinite scroll.

Fonts and third-party embeds

Custom fonts are worth it for brand, but four weights of two families is two too many. Chat widgets, tracking pixels, video embeds, and social feeds all bring their own code from someone else's server, and you can't control how fast that server is. Load what you truly need, and consider loading chat and social widgets only after the page is usable.

Layout shift you've stopped noticing

An announcement bar that appears a second late, a cookie banner that pushes the page down, images without width and height so the text jumps when they load, a popup that resizes the content behind it. These don't show up in a load-time number, but they're what makes a store feel cheap on a phone, and they're what CLS measures.

A sensible order to work in

  1. Measure your three main templates and write the numbers down.

  2. Fix images first, starting with the hero and product images on those templates.

  3. Audit apps, remove what you don't use, and clean up leftover code.

  4. Reserve space for anything that loads late, so the layout stops shifting.

  5. Trim fonts and third-party embeds.

  6. Only then look at theme code changes, which need a developer and a proper staging theme.

Measure again after each step. If a change didn't move anything, revert it rather than leaving it in the theme.

What speed does and doesn't do for search

Page experience is one of many signals Google uses, and a fast page won't outrank a genuinely better result. What speed does reliably is protect the traffic you already earn. Slow pages lose people before they see the product, and on mobile that loss is worse. Treat speed as a conversion project that also helps search, rather than an SEO trick.

If your store is slow and you'd rather have someone find the real causes than work through a generic checklist, our team does performance work as part of Shopify development.

Threshold figures above come from web.dev's Core Web Vitals documentation, and the quoted line about theme app extensions is from Shopify's developer documentation.

Let's build something that performs

Launching, redesigning, migrating to Shopify, or looking for a long-term partner — Cracktab can help you plan and execute the next stage of your growth.