Measure before you change anything
Run your product page and your home page through Google’s PageSpeed Insights on a mobile connection, and note the largest content paint and layout shift figures. Those two numbers tell you whether the problem is what loads first or what moves around while it loads.
Test the pages customers actually land on, not only the home page. Product and collection pages usually carry the heaviest content.
Oversized images
The most common cause by far. A photo uploaded at several thousand pixels wide is still downloaded in full by a phone showing it at a fraction of that size.
Upload images close to the size they are displayed, use modern formats, give them fixed dimensions so the page does not jump, and load only the first image on the screen eagerly. Shopify already serves images in modern formats from its own network, so an image-compression app is rarely needed. What matters is asking for the right size, which this Liquid does.
{%- comment -%} The first image on the page: load it straight away {%- endcomment -%}
{{ product.featured_image | image_url: width: 1200 | image_tag:
widths: '400, 800, 1200',
sizes: '(min-width: 990px) 50vw, 100vw',
loading: 'eager',
fetchpriority: 'high' }}
{%- comment -%} Everything below the fold: lazy load {%- endcomment -%}
{{ image | image_url: width: 800 | image_tag: loading: 'lazy' }}Too many apps
Many apps add their own scripts to every page, whether or not that page uses them. Review the list and remove anything that is unused or that overlaps with something else.
Uninstalling an app does not always remove its code from your theme, so check the theme files for leftovers as well. Search your theme for the app’s name in the code editor and remove what remains.
A heavy or outdated theme
Themes packed with sliders, animations and features you never turned on still ship the code for them. A lighter theme, or a custom one that includes only what your store uses, is often the biggest single improvement.
Fonts and third-party scripts
Limit yourself to a couple of font weights, load them in a way that lets text appear straight away, and be selective with chat widgets, trackers and pop-ups. Each one costs time on every visit. In your theme, load fonts with display swap and add defer to your own scripts so they do not block the page.
Fix things in this order: images, apps, theme, then scripts. Measure again after each change so you know what actually helped.
<style>
{{ settings.type_body_font | font_face: font_display: 'swap' }}
</style>
<script src="{{ 'custom.js' | asset_url }}" defer></script>Common questions
Why is my Shopify store slow?
The most common causes are oversized images, too many apps that add scripts to every page, a heavy theme with features you do not use, and third-party scripts such as chat and tracking. Measure your product page first to see which applies.
How do I speed up my Shopify store?
Resize and lazy-load images, remove unused apps and the code they leave behind, choose a lighter theme, limit fonts and scripts, then test again on mobile after each change.
Do Shopify apps slow down my store?
They can, because many add scripts to every page. Audit them regularly, remove any you do not use and check the theme for leftover code after uninstalling.
What is a good speed score for a Shopify store?
Shopify’s hosting is fast, so scores depend on your theme and apps. Aim for a green score on mobile for your product and collection pages and pay most attention to the largest content paint time.
Have a project in mind? I reply within a day or two.