Skip to content

Problem

Shopify store slow on mobile: how to fix it

Shopify serves every store from a fast global network, so a slow mobile experience almost always comes from what has been added on top: app scripts, tracking pixels, large images and theme sections that do more than the page needs. Mobile devices on cellular connections expose that weight first. The fix is a subtraction exercise done in the right order, measured against field data rather than a single lab score.

By CartKernel · Last reviewed 2026-09-07

Does this look familiar?

  • Mobile scores in PageSpeed Insights are far below desktop for the same page
  • The Core Web Vitals report in Search Console lists product and collection URLs as poor on mobile only
  • Product pages take several seconds to become tappable, and variant buttons lag on phones
  • The theme editor feels fine, but shoppers on cellular connections report a blank screen before the hero appears
  • Speed got worse after installing a specific app or switching on a new theme section
  • The web performance report in the Shopify admin shows a decline in the past weeks

Causes, ranked

Why it happens, most common first

Check them in this order. The first two account for most cases we open.

  • most common

    App scripts loading on every page

    Reviews, upsells, wishlists, currency switchers, chat, loyalty and pop-up apps each add JavaScript, and most load on every page whether or not their feature is present. Apps removed months ago can leave code in theme.liquid or snippets. On a phone the main thread is busy running these before it can respond to a tap.

  • most common

    Images uploaded and served larger than the screen

    A hero image saved at 4,000 pixels wide, a product gallery with full-size images, or a theme section that ignores the width parameter in image filters forces the phone to download far more data than it can display. The largest visible image is usually the Largest Contentful Paint element, so it sets the score.

  • common

    Busy sections above the fold

    Autoplaying video heroes, slideshows with several slides, animated announcement bars and product recommendation carousels all load their assets before the shopper sees anything useful. Each is fine on a desktop connection; stacked at the top of a mobile page they delay the first meaningful render.

  • common

    Pixels and tags added directly to the theme

    Tracking snippets pasted into theme.liquid, plus a tag manager container with many tags, run before the page is interactive. Shopify offers customer events for pixels that run in a sandbox, which keeps them off the critical path, but many stores still carry the older copies as well.

  • common

    Custom fonts and blocking stylesheets

    Several font families in multiple weights, custom CSS added through apps, and stylesheets loaded without any async or preload hints keep text invisible until every file has arrived. Shopify's font library and system fonts avoid most of the cost.

  • occasional

    An older theme not built on Online Store 2.0

    Vintage themes often bundle a large JavaScript library, load code for every feature whether used or not, and lack the section rendering improvements newer themes carry. They can be tuned, but the ceiling is lower.

The fix

In this order

Each step is something you can do today. Do them in sequence; skipping ahead is how a review fails twice.

Prevent it next time

  • Test the speed of a product page before and after every app install and keep the app only if the trade is worth it
  • Set an image size and compression rule for anyone uploading banners and product photos
  • Keep tracking in customer events or native integrations rather than theme code
  • Review app embeds each quarter and remove what nobody uses
  • Update the theme version when the theme developer releases performance improvements
  1. Measure the mobile experience with field data first

    Run the home page, a collection page and a top product page through PageSpeed Insights and read the field data section, not just the lab score. Note which metric fails and which element is flagged as the largest contentful paint. Cross-check with the Core Web Vitals report in Search Console to see how many URLs are affected.

  2. Audit app embeds and remove leftover code

    In the theme editor, open the app embeds panel and switch off anything not in use. Uninstall apps you no longer need, then search theme.liquid, the layout files and snippets for script tags that reference those apps and remove them. Keep a note of what was removed in case a feature depends on it.

  3. Fix images at the source and in the theme

    Upload hero and collection images sized close to their display width and compressed. Confirm the theme's image tags request width-limited versions and pass a srcset, so a phone receives a phone-sized file. Set the first visible image to load eagerly and everything below the fold to load lazily.

  4. Simplify the top of the page

    Replace an autoplaying video hero with a static image and a play control, cut the slideshow to one slide on mobile, and move recommendation carousels below the fold. Each section removed from the first screen shortens the time to the first useful paint.

  5. Move tracking into customer events

    Recreate pixels as custom pixels under customer events in the Shopify admin, or use the native integrations where the platform offers them, and delete the copies pasted into the theme. If a tag manager stays, trim it to the tags you actually read reports from.

  6. Trim fonts and custom stylesheets

    Limit the theme to two font families and the weights actually used, choose them from Shopify's font library or system fonts, and remove custom CSS added by apps that are gone. Preload the one font used in the headline.

  7. Retest over the field data window

    Field data covers a rolling 28-day period, so the reports lag your changes. Rerun lab tests immediately to confirm the direction, then watch the Search Console report and the admin web performance report over the following month before deciding on a theme change.

When to get help

Get help when the field data still fails after apps and images have been dealt with, when the theme has years of custom code and nobody knows what each piece does, or when a theme change is on the table and the store needs its customisations carried across without losing speed. That work needs someone comfortable in Liquid and in the metrics at the same time.

Get a Growth Analysis

Free. We reply within one business day.

Questions

Asked alongside this problem

By CartKernel · Last reviewed

Why does the Shopify admin performance report differ from PageSpeed Insights?

The admin report is built from real visits to your store, while a PageSpeed lab run simulates one visit on a throttled device. Both are useful. Use the lab run to find the specific element or script at fault and the field reports to confirm that shoppers are actually experiencing the improvement.

Will switching to a newer Shopify theme fix mobile speed on its own?

It helps when the current theme is old, but the apps, images and pixels that made the old theme slow will make the new one slow as well if they are carried across. Do the app and image cleanup first, then decide whether a theme change is still needed.

Do installed Shopify apps slow the store even when I do not use them?

Often, yes. Many apps load their scripts on every page as long as they are installed or their app embed is switched on, whether or not the feature appears. Uninstall unused apps and remove any code they left behind rather than leaving them dormant.

Does Shopify's hosting mean I should not need to think about speed?

The hosting and network layer are handled for you, and they are quick. What you control is everything the browser has to download and run after the HTML arrives: theme code, images, fonts, apps and tags. That layer is where mobile slowness lives on Shopify.

Related problems, answers and terms

All problems
ProblemCore Web Vitals failing on product pages: how to fix itCore Web Vitals failing on product pages has three separate causes. Fix the metric that is actually failing rather than optimising everything at once.OpenProblemWooCommerce site slow: how to fix itA slow WooCommerce site is usually database work and uncached requests, not the theme alone. Diagnose server, database and front end in that order.OpenProblemEcommerce conversion rate dropped suddenly: how to fix itWhen ecommerce conversion rate dropped suddenly, check measurement, traffic mix and the site in that order. Most sharp drops have a single dated cause.OpenAnswerDoes site speed affect ecommerce rankings?Site speed is a small ranking factor and a large conversion factor. What Google measures, where store templates lose time, and how to prioritise fixes.OpenAnswerHow many apps are too many on a Shopify store?There is no app limit on Shopify. The real cost is scripts, cost and conflicts. How to audit what you have and decide what earns its place.OpenAnswerWhy is mobile conversion rate lower than desktop?Mobile converts lower for three reasons: different intent, cross-device buying counted on desktop, and real friction. How to separate them and fix the last.OpenGlossaryCore Web VitalsCore Web Vitals are Google's three field metrics for loading, responsiveness and visual stability. The thresholds, a worked store report, and what moves them.OpenGlossaryInteraction to next paint (INP)Interaction to next paint (INP) measures how long a page takes to respond visibly to a tap or click. Thresholds, a worked breakdown, and what fixes it.Open

Stop the leak.

A free Growth Analysis finds what is broken and ranks it by the revenue it costs you.