PerformanceApril 26, 202610 min read

Shopify Speed Optimization: 12 Changes That Actually Move Your LCP Score

Most Shopify speed advice covers the same five things. This guide goes deeper — theme code audit, app impact analysis, CDN configuration, image delivery, and third-party script management.

StoreVitals Team

Shopify stores have a unique performance challenge: you're constrained by a hosted platform, a Liquid templating engine, and an ecosystem of third-party apps that each inject their own JavaScript. The good news is that most of the performance gains are still available to you — they just require knowing where to look.

Understanding What's Actually Slowing Your Store

Before optimizing, measure. Use Chrome DevTools' Network tab with throttling set to "Fast 3G" to simulate a real mobile connection. Look for:

  • LCP element: What's the largest contentful paint? Usually the hero image.
  • Blocking scripts: Any scripts in the <head> without defer or async?
  • Unused JavaScript: In the Coverage tab, what percentage of loaded JS is actually executed on this page?
  • Third-party requests: How many are firing on load? From which domains?

1. Optimize Your LCP Image

For most Shopify stores, LCP is the hero image. Three things matter:

  • Preload it: Add <link rel="preload" as="image" href="..."> in your <head> so the browser fetches it before the CSS finishes parsing.
  • Use the right format: Shopify CDN serves WebP automatically when you use their image filters (| image_url). Make sure you're using Shopify's image delivery, not raw URLs.
  • Set explicit dimensions: Add width and height attributes to avoid layout shift (CLS).

2. Audit and Remove Unused Apps

Each Shopify app that injects JavaScript adds to your load time — even if you've stopped using the app. Run an audit:

  1. Go to your theme code and search for app-specific script tags
  2. Check your theme.liquid and layout files for any <script> tags from apps you've uninstalled
  3. Use the Chrome Network tab to identify third-party domains loading scripts

A single chat widget or review app can add 200-500ms to your load time. A customer who installed 12 apps over 3 years and removed 8 of them without cleaning up the code is the most common culprit we see in StoreVitals scans.

3. Defer Non-Critical Scripts

Any analytics, chat, or marketing script that doesn't affect the initial render should be deferred. In Shopify, you can load scripts after the page renders using the theme's content_for_header or by moving scripts to the end of body with the defer attribute.

4. Reduce Render-Blocking CSS

Shopify themes often load large stylesheets in the <head>. Consider:

  • Inlining critical CSS (above-the-fold styles) and loading the rest asynchronously
  • Removing unused CSS rules — theme CSS files are often 200KB+ with 80% unused on any given page
  • Using the Shopify CLI to analyze your theme's performance footprint

5. Use Lazy Loading for Below-the-Fold Images

Add loading="lazy" to all images that are not in the initial viewport. This is not set by default in many Shopify themes. Check your product-card.liquid, collection-card.liquid, and other components.

6. Implement Native Shopify Image Sizing

Shopify's image CDN accepts size parameters directly in the URL. Use the | image_url: width: 800 filter to serve appropriately sized images instead of loading a 2000px image and scaling it in CSS. This is one of the highest-ROI changes for product image-heavy pages.

7. Reduce Font Requests

Fonts are often forgotten in performance audits. Check:

  • How many font weights are you loading? (Regular + Bold is usually enough)
  • Are they from Google Fonts or Shopify Fonts? (Shopify Fonts are served from their CDN, which is faster)
  • Do you have font-display: swap set? (Prevents invisible text during load)

8. Compress and Serve WebP

Shopify does this automatically for images uploaded through their admin, but manually embedded images in theme HTML may not be going through the CDN. Check your theme code for hardcoded image URLs that bypass Shopify's image processing pipeline.

9. Minimize Liquid Template Complexity

Complex Liquid loops and nested conditionals increase server-side render time. Watch out for:

  • Large for loops that iterate over every product in a collection
  • Multiple Metafield lookups in a single page request
  • Deeply nested section/block templates

10. Use Shopify's Built-In Performance Features

Shopify added several performance features that many store owners don't know about:

  • Instant Page: Prefetches page assets when a user hovers over a link (built into Dawn and most modern themes)
  • Script loading strategies: App Bridge 3.x supports async and deferred loading strategies
  • Section rendering API: Allows partial page renders for cart updates, filters, etc., without full page reload

11. Optimize Your Cart and Checkout Script

The cart page and checkout are often slower than the storefront because they load more JavaScript. If you have custom cart scripts, audit them with the Coverage tool to find dead code. Every 100ms on the cart page measurably impacts conversion.

12. Monitor Performance Continuously

Speed optimizations regress. A new app installation, a theme update, or a marketing pixel added by a non-technical team member can undo 6 hours of optimization work. Set up regular StoreVitals scans to catch performance regressions before they show up in your conversion rate. Our scanner flags render-blocking resources, large images, and excessive DOM size automatically.

How Much Does This Actually Matter for Conversions?

Google's own research shows a 1-second improvement in load time increases conversions by 27% on mobile. For a store doing $50k/month in revenue, that 1-second improvement is worth $13,500/month. The math makes the investment very clear.

Start by running a free StoreVitals scan to get your current performance score and see which specific issues are costing you the most time. The report prioritizes by impact so you know exactly where to start.

Shopifypage speedLCPCore Web Vitalsperformance

See these issues on your store?

Run a free scan and find out in seconds.

Run Free Scan