Skip to main content

ยท E-Commerce

Shopify Speed: What Actually Moves the Number

Apps first, then images, then the theme. What Shopify will not let you change, why the speed score is not the metric that matters, and the order to work in.

Shopify Speed: What Actually Moves the Number

Shopify speed advice is unusually bad, because most of it is written for websites in general and Shopify is not a website in general. You do not control the server, the checkout, or a large part of what loads on every page. What you do control is a shorter list than most articles imply, and working through it in the right order matters more than the individual tactics.

First, stop optimising for the score

The speed score in the Shopify admin is a lab measurement of a few pages. It is useful for spotting a regression and it is not what affects sales. Two things matter more:

  • What real visitors experience, on the devices and connections they actually have. In India that means a mid-range Android on a variable mobile connection, not a laptop on office wifi.
  • Interaction responsiveness, which is how long it takes for a tap on a filter, a variant swatch or an add-to-cart to do something visible. Shoppers do not perceive load time nearly as sharply as they perceive a button that appears to be broken.

Measure the product listing page and the product page separately. They have different problems and an aggregate hides both.

Apps are the first and largest cause

Almost every slow Shopify store is slow because of apps, and the effect is cumulative rather than dramatic: each one adds a script, some add several, and a few inject on every page whether their feature is used there or not.

The audit is mechanical and takes an afternoon:

  1. List every installed app and, next to each, the business outcome it produces. Anything with no owner and no outcome is a candidate for removal.
  2. Check for leftovers. Uninstalling an app frequently leaves its snippet behind in the theme. Search the theme for the app’s name and remove what remains.
  3. Look for overlap. Two review apps, three analytics tools, a popup app and an email tool that also does popups.
  4. Ask where each one loads. A product-page app that also loads on the home page and the blog is paying for nothing on most of the site.

Removing four unused apps is usually a larger improvement than every code change in this article combined, and it costs nothing.

Images, which are the weight

Images dominate page weight on a store. Three rules get most of the benefit:

  • Serve the size actually displayed. Shopify’s image URLs accept size parameters and the theme should be using them with a responsive source set. A 2000px image in a 400px slot is the single most common waste on a storefront.
  • Load the first product image eagerly and everything else lazily. The main image on a product page should not be lazy loaded: it is the thing the page is about, and delaying it delays the whole impression of the page.
  • Give every image its dimensions, so nothing moves as the page fills in. Layout shift on a product grid is the reason people tap the wrong item.

Video on a collection or home page deserves its own decision. It is almost always the heaviest thing on the page, and it should be a poster image that loads a video on interaction rather than an autoplaying file on arrival.

The theme, and how much of it you are running

A modern Shopify theme is a large piece of software with a lot of optional behaviour. Common wins:

  • Turn off sections you do not use. They ship their own JavaScript regardless of whether they are visible.
  • Cut the fonts. Two families in two weights is a design decision that costs a fraction of four families in six.
  • Question the sliders. Carousel libraries are heavy, and on mobile a horizontal scroll container does the same job with no JavaScript.
  • Predictive search is genuinely useful and worth its cost. Most other progressive enhancements are not.

Heavily customised themes accumulate dead code over years. If nobody can say what a snippet does, that is a reason to investigate it, not a reason to leave it.

What you cannot change, and should stop trying to

This is the part other articles omit and it saves a great deal of wasted effort.

  • The checkout is Shopify’s, and on standard plans it is not yours to optimise. That is mostly good news: it is fast, tested and PCI compliant.
  • Server response time is the platform’s. You cannot add caching in front of it or move it closer to your customers.
  • Shopify’s own scripts load whether you want them or not.
  • The CDN is theirs, which is why self-hosting fonts and images elsewhere usually makes things worse rather than better.

What follows from that: the achievable target on Shopify is set by the platform, and a store that has done the work above is close to it. Effort beyond that point is better spent on merchandising than on milliseconds.

The order to work in

  1. Measure the real thing, on a real device, on two page types.
  2. Audit and remove apps, then remove their leftovers from the theme.
  3. Fix images: correct sizes, first image eager, dimensions everywhere.
  4. Trim fonts and unused theme sections.
  5. Re-measure. Most stores stop here because there is nothing left worth doing.
  6. Only then consider theme-level work, and only with a real number to justify it.

When speed is not the problem

Worth saying plainly, because it is often true. If a store converts poorly and loads in two seconds, speed is not the constraint. Unclear pricing, missing delivery information, thin product photography, no reviews, and a mobile filter nobody can use will each cost more sales than a second of load time. Measure where people actually leave before committing a budget to performance work.

Third-party tags, which are apps by another name

Separate from the app list, and often larger: the marketing tags added directly to the theme or through a tag manager. Advertising pixels, heat-map recorders, chat widgets, review scripts, affiliate trackers, A and B testing tools. Each was added for a reason, each is on every page, and nobody owns the list.

Two rules keep it under control. Every tag has a named owner and a review date, and anything nobody claims comes off. Nothing loads before the page is usable: analytics and chat can wait for interaction, and a chat widget that appears two seconds later loses nothing.

Worth measuring with and without consent given, if a cookie banner is in place. The consented experience is often the slower one, and it is the one your paying customers get.

A quick way to find where a store is actually losing time

Open the product listing page on a real mid-range phone, on mobile data, and time three things by hand with a stopwatch: when the first product image appears, when the page stops moving, and how long a filter tap takes to show a result.

Those three numbers point at three different causes. A slow first image is an image and priority problem. A page that keeps moving is a layout shift problem, usually missing dimensions or a late-loading banner. A slow filter is JavaScript, which means apps and theme. No tooling required, and it identifies the constraint in about five minutes.

We build and rebuild Shopify storefronts as part of our commerce work. If your store is slow and you want to know which of the four causes above it is, send us the URL and we will tell you what we would do first, in order.

More reading

Tell us what you are building.

No sales sequence. One person reads this and replies. Rather give more detail?