Skip to content

E-commerceShopify Speed Checklist: Faster Mobile Pages and Checkout (2026)

Simon Dziak
Simon Dziak
Founder & developer, App369
LinkedIn
Published October 12, 2026 · Updated October 21, 2026Updated October 21, 2026Facts last verified October 21, 20269 min

Key takeaways

  • Google's "good" Core Web Vitals thresholds are LCP at 2.5 seconds or less, INP at 200 milliseconds or less and CLS at 0.1 or less, measured at the 75th percentile of real page loads.
  • PageSpeed Insights shows real-user data from the previous 28 days at the top and a Lighthouse lab test below it, so a change can improve the lab score weeks before the field numbers move.
  • Shopify's guide says never to lazy-load the largest above-the-fold image, and to mark it fetchpriority high so the browser fetches it early.
  • Shopify's image_tag filter adds width and height, builds srcset and lazy-loads images lower on the page, so using it consistently covers most image basics.
  • Uninstalled apps can leave snippets in theme code, and Shopify's Theme Inspector for Chrome shows which Liquid takes longest to render.
  • Make every change on a duplicate theme, and compare three Lighthouse runs per page against a written baseline before you publish.

Pricing an app? Try the free app cost calculator or get a range for your project in the instant quote.

A slow Shopify store is rarely one big problem. It is usually a pile of small ones: oversized images, code left behind by apps you uninstalled years ago, third-party scripts that block rendering, and a cart that makes shoppers work too hard. This checklist goes through them in the order that usually pays off, on mobile, which Shopify says accounts for the majority of storefront traffic.

It is the same checklist App369 works through in its fixed-price Shopify Speed & Checkout Tune-Up. Every change below can be made on a duplicate theme and checked before you publish it. Shopify allows up to 20 themes per store, so delete an old copy first if you are at the limit.

Step 1: Measure before you change anything

Pick four URLs that matter: the home page, a busy collection, a best-selling product, and the cart. For each one:

  • Run PageSpeed Insights on mobile. If Google has enough real-user data for your store, the top of the report shows your Core Web Vitals from the Chrome UX Report. That field data comes from real visits over the previous 28 days; the Lighthouse score below it is a lab test on one simulated load.
  • Run Lighthouse three times and keep the median. Single runs vary a lot.
  • Write the numbers down. Without a baseline, you can’t tell whether a change helped.

The three Core Web Vitals and their “good” thresholds are below. Google recommends measuring them at the 75th percentile of real page loads, split by mobile and desktop:

MetricWhat it measuresGood
Largest Contentful Paint (LCP)How fast the main image or heading appears2.5 s or less
Interaction to Next Paint (INP)How fast the page responds to taps200 ms or less
Cumulative Layout Shift (CLS)How much the page jumps while loading0.1 or less

Step 2: Images

Image loading has a direct effect on LCP for most storefronts, according to Shopify’s theme performance guide.

  • Serve the right size. Use Shopify’s image_url filter with a width, and image_tag with widths and sizes, so a phone downloads a phone-sized image instead of a 4,000-pixel original.
  • Load the hero image first. Never lazy-load the main image above the fold, because that delays it. Mark it for early loading, for example {{ image | image_url: width: 1500 | image_tag: loading: 'eager', fetchpriority: 'high' }}, so the browser fetches it early. Use the preload option sparingly, for one or two images only.
  • Lazy-load everything below the fold. Product grids, reviews and footer images can wait. Shopify’s image_tag filter already lazy-loads images in sections further down the page, so check that your theme has not overridden this.
  • Set width and height. Images without dimensions push content around as they load, which hurts CLS. The image_tag filter adds both attributes for you; check any hand-written <img> tags in the theme.

Step 3: Leftover app code and third-party scripts

Uninstalling a Shopify app doesn’t always remove what it added to your theme. Older apps often pasted snippets into theme.liquid or product templates, and those keep loading after the app is gone. For a step-by-step cleanup, see How to Remove Leftover App Code From a Shopify Theme.

  • Search the theme code for the names of apps you no longer use, and remove their snippets on the duplicate theme.
  • List every script that loads on the product page (the Network tab in Chrome DevTools shows them). For each one, ask whether it still earns its keep.
  • Load chat widgets, review carousels and pop-ups after the page is usable, not before.
  • Keep tracking pixels you rely on. Removing one breaks reporting, not just a script.

To list every third-party script your store loads, and see which block rendering, paste your page source into the free Shopify app script checker.

Step 4: Fonts

  • Use one or two font families, and only the weights you actually show.
  • Prefer fonts from Shopify’s font library, which are served from Shopify’s CDN, or system fonts, which need no download. Shopify advises against loading fonts from external font services.
  • Use font-display: swap so text appears immediately in a fallback font. In Liquid, the font_face filter takes it as an option: {{ settings.type_header_font | font_face: font_display: 'swap' }}.

Step 5: Liquid on collection and product pages

Heavy Liquid slows the server’s response before the browser even starts. The usual suspects are loops over every product in a large collection, nested loops over variants and metafields, and the same snippet rendered many times. Shopify’s Theme Inspector for Chrome shows which Liquid takes the longest to render, so you can fix the slowest part first.

Step 6: Layout shift

CLS problems on Shopify usually come from announcement bars, discount banners and app badges that appear after the page loads, and push everything down. Reserve their space in CSS with a min-height, or render them in the theme instead of injecting them with a script.

Step 7: From cart to checkout

Speed doesn’t help if the cart is hard to get through. Check, on a phone:

  • Express checkout. Shop Pay, Apple Pay and Google Pay buttons (Shopify’s dynamic checkout buttons) let returning shoppers skip typing. Show them where your theme supports it.
  • The cart drawer. It should open quickly, show the total clearly, and let shoppers change quantities without reloading.
  • No surprises. Shipping costs and the returns policy should be visible before checkout, not discovered in it.
  • App injections. Upsell and gift-wrap apps that add steps or slow the cart are worth testing with and without.

Shopify’s checkout is edited in the checkout and accounts editor, separate from your theme. On plans below Shopify Plus you can change branding such as logo, colors and fonts, but apps that change the information, shipping and payment pages need Plus. The cart and everything before checkout is in your theme, so that is where you have the most control.

Step 8: Measure again, then publish

Run the same four URLs, three times each, on the duplicate theme, and compare with your baseline. Keep a short log of every change, so if something looks wrong after publishing you know exactly what to undo. Lab scores move faster than field data: Core Web Vitals in PageSpeed Insights reflect the last 28 days of real visits, so give them a few weeks.

When to get help

If you’d rather not spend a week in theme code, App369 does this as a fixed-price tune-up for $750, delivered in 5 business days. You get the baseline and after numbers for four page types, the fixes on a duplicate theme you review and publish yourself, a cart-to-checkout review, and a log of every edit. App369 never publishes to your live store or touches payment or customer data. Thinking about leaving Shopify instead? Read Shopify vs custom e-commerce development first.

Want this done at a fixed price?

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

Frequently asked questions

Why is my Shopify store slow on mobile?
Common causes are oversized or lazy-loaded hero images, scripts left behind by uninstalled apps, third-party widgets that load before the page is usable, and heavy Liquid loops on collection pages. Phones have slower processors and networks, so these problems show up there first.
What are good Core Web Vitals scores?
Google's good thresholds are LCP of 2.5 seconds or less, INP of 200 milliseconds or less and CLS of 0.1 or less, judged at the 75th percentile of real visits. PageSpeed Insights shows these from the previous 28 days when it has enough data for your store.
Do uninstalled Shopify apps still slow down my store?
They can. Some apps add code directly to theme files, and uninstalling the app does not always remove it. Search your theme for the app's name and remove leftover snippets on a duplicate theme first.
Can I make speed changes without risking my live store?
Yes. Duplicate your theme, make and test every change on the copy, compare the numbers, and publish the copy only when you are happy with it. Shopify allows up to 20 themes per store, and you can switch back to the old one if anything looks wrong.
Does a faster Shopify store sell more?
Speed affects how quickly shoppers can see and use your pages, but a faster store does not guarantee more sales. Measure your own before-and-after numbers rather than relying on a general promise.
Can I customize the Shopify checkout page for speed?
Only in limited ways. Branding such as logo, colors and fonts is available on all plans, but apps that change the information, shipping and payment pages need Shopify Plus. The cart and everything before checkout is in your theme, so that is where you have the most control.

Sources

  1. web.dev, Web Vitals
  2. web.dev, Optimize Largest Contentful Paint
  3. Google for Developers, About PageSpeed Insights
  4. Shopify.dev, Performance best practices for Shopify themes
  5. Shopify.dev, image_tag Liquid filter
  6. Shopify.dev, font_face Liquid filter
  7. Shopify.dev, Shopify Theme Inspector for Chrome
  8. Shopify Help Center, Customizing and editing your checkout and accounts pages
Tags
#shopify speed #shopify page speed #core web vitals #shopify theme performance #shopify checkout #lighthouse
Share:

Related Resources

Related guides