Why Shopify speed matters more than ever
A 1-second delay in mobile page load reduces conversions by up to 20% (Google/Deloitte, 2019). For Shopify stores, the culprits are almost always the same: bloated app scripts, unoptimised images, and render-blocking fonts.
1. Audit and remove unused apps
Every installed app — even deactivated ones — often leaves scripts in your theme. Audit your theme.liquid for orphaned tags and remove them.
2. Lazy-load below-the-fold images
<img
src="{{ image | img_url: '800x' }}"
loading="lazy"
width="800"
height="{{ 800 | divided_by: image.aspect_ratio | round }}"
alt="{{ image.alt }}"
/>3. Preload your LCP image
For the hero image (usually the first product image), add to :
<link rel="preload" as="image" href="{{ section.settings.hero_image | img_url: '1200x' }}" />4. Defer non-critical scripts
<script src="non-critical.js" defer></script>Never put analytics, chat widgets, or review badges in without defer or async.
5. Use Shopify's native image CDN
Always use img_url filter — never hotlink external images. Shopify's CDN serves WebP automatically to supported browsers.
6. Minimise CLS with explicit image dimensions
Always set width and height attributes. Without them, the browser can't reserve space and the layout shifts when the image loads.
7. Reduce font variants
Loading 6 font weights of a Google Font adds 300–600ms. Use font-display: swap and load only the weights you actually use.
8. Enable Shopify's built-in performance features
In Online Store → Themes → Actions → Edit code, ensure content_for_header is in . This enables Shopify's automatic resource hints.
9. Use Shopify Metaobjects instead of custom JavaScript data stores
If you're storing config data in a JavaScript variable embedded in Liquid, move it to Metaobjects accessed via the Storefront API. This separates data fetching from the critical render path.
10. Test with real device throttling
Use Chrome DevTools with "Slow 4G" throttling and "Mid-tier mobile" CPU to simulate your actual audience. Desktop Lighthouse scores are meaningless for mobile-first markets like Pakistan and India.