How to Speed Up Your Shopify Store: 10 Quick Fixes

F
Faisal Hourani
| 20 min read min read

Speed is your silent conversion killer.

Every second your Shopify store takes to load costs you revenue. According to Google's Core Web Vitals research, a 1-second improvement in Largest Contentful Paint (LCP) correlates with a 27% increase in conversion probability. For a Shopify store doing $50,000/month, that improvement could mean $13,500 in additional monthly revenue. Yet most Shopify stores load in 3.5-5.5 seconds — well above the 2.5-second threshold Google considers "good." The root cause is almost never Shopify's infrastructure (which is fast and globally distributed). It is what you have added on top: apps, unoptimized images, custom code, third-party scripts, and theme bloat. This guide gives you 10 specific fixes ranked by impact-to-effort ratio so you address the biggest speed problems first.

Before implementing any fix, establish your baseline. Run your store through Google PageSpeed Insights and note your LCP, First Input Delay (FID), and Cumulative Layout Shift (CLS) scores for both mobile and desktop. Test your homepage, a collection page, and your highest-traffic product page. Record these numbers — you will measure improvement against them after each fix.

What Is Shopify Store Speed and Why Does It Matter?

Shopify store speed is the measurement of how quickly your store's pages load, render, and become interactive for visitors. It encompasses multiple metrics — Largest Contentful Paint (LCP) measures when the main content is visible, First Input Delay (FID) measures responsiveness to user interaction, and Cumulative Layout Shift (CLS) measures visual stability. Collectively known as Core Web Vitals, these metrics directly impact both user experience and Google search rankings, with stores scoring "good" on all three metrics seeing 24% lower bounce rates and 15% higher conversion rates compared to stores scoring "poor," according to a 2025 Shopify performance study by SpeedBoostr.

Store speed is not a vanity metric. It affects three revenue-critical areas:

  1. Conversion rate. Slow pages lose impatient shoppers. Mobile shoppers are especially intolerant — 53% abandon a page that takes longer than 3 seconds to load (Google, 2025).
  2. SEO rankings. Google uses Core Web Vitals as a ranking factor. Faster stores rank higher, which means more organic traffic at zero incremental cost.
  3. Ad efficiency. If you run paid ads, your landing page speed directly affects Quality Score (Google Ads) and relevance score (Meta Ads). Faster landing pages mean lower cost-per-click and higher ROAS.

The 10 fixes below are ordered by typical impact — Fix #1 delivers the most improvement for most stores, and Fix #10 delivers incremental gains. Your specific results will depend on which problems your store has.

Speed Impact Summary Table

Fix Typical LCP Improvement Effort Level Technical Skill Required
1. App audit and removal 0.5-2.0 seconds Low None
2. Image compression 0.3-1.5 seconds Low Basic
3. Lazy loading 0.2-0.8 seconds Low Basic
4. Font optimization 0.1-0.4 seconds Medium Basic
5. Third-party script management 0.3-1.0 seconds Medium Intermediate
6. Theme code cleanup 0.2-0.6 seconds Medium Intermediate
7. Reduce Liquid render time 0.1-0.5 seconds High Advanced
8. Preload critical assets 0.1-0.3 seconds Medium Intermediate
9. Minimize redirects 0.1-0.3 seconds Low Basic
10. Optimize above-the-fold content 0.2-0.5 seconds Medium Intermediate

How Do You Audit and Remove Speed-Killing Apps?

An app audit is the systematic evaluation of every installed Shopify app based on its performance impact, business necessity, and whether lighter alternatives exist. The average Shopify store has 18 apps installed but actively uses only 8-10. Each unused app injects 40-120KB of JavaScript into every page load, meaning removing 4-6 unused apps can reduce page weight by 200-500KB and improve LCP by 0.5-2.0 seconds, according to a 2025 Shopify app performance study by StoreTasker.

This is Fix #1 because it delivers the largest improvement for the least effort. No code changes, no technical skills — just decisions.

The 4-Step App Audit

Step 1: List every app. Go to Settings > Apps and sales channels. Write down every installed app.

Step 2: Categorize each app.

Category Action Examples
Essential, actively used daily Keep Payment processing, shipping, inventory
Useful but has lighter alternatives Evaluate Review apps, popup tools, SEO apps
Used occasionally (monthly or less) Consider removing Bulk edit tools, import/export
Installed but not actively used Remove now Trial apps, forgotten tools
Cannot identify what it does Remove now Unknown apps from months ago

Step 3: Remove apps AND their code remnants. Uninstalling an app removes its access, but many apps inject code into your theme files that persists after uninstallation. After removing each app, search your theme code for leftover script tags, CSS links, and div elements referencing the removed app's domain.

Step 4: Measure after each removal. Run PageSpeed Insights after removing each app to document the speed impact. This tells you which apps were the worst offenders and guides future app installation decisions.

For a comprehensive app evaluation framework, see our apps vs. code snippets comparison which covers when apps are worth the performance cost and when lighter alternatives work better.

How Does Image Compression Speed Up Your Store?

Image compression is the reduction of image file size through format conversion, quality adjustment, and dimensional resizing while maintaining acceptable visual quality. Images are typically the single largest component of page weight on Shopify stores, accounting for 50-70% of total page size. Compressing images to optimal formats and sizes can reduce page weight by 40-60% and improve LCP by 0.3-1.5 seconds, according to HTTP Archive's 2025 Web Almanac.

Most Shopify stores serve images that are 2-5x larger than they need to be. A product image uploaded as a 4000x4000px PNG at 2.5MB will be served to a mobile visitor who only needs a 400x400px image at 50KB. That is 50x more data than necessary.

Image Optimization Checklist

Convert to WebP or AVIF. Shopify's CDN automatically serves images in WebP format to supporting browsers, but only if the original image is properly uploaded. Ensure you are uploading high-quality source images (JPG or PNG) and letting Shopify handle the conversion.

Resize before uploading. Shopify will serve images at the dimensions your theme requests, but it stores and processes the original. Upload product images at a maximum of 2048x2048px. Hero banners should be no wider than 1920px. Larger originals waste storage and processing time.

Compress with quality reduction. Use tools like TinyPNG, ShortPixel, or ImageOptim to compress images before uploading. A quality setting of 80-85% is visually indistinguishable from 100% but reduces file size by 40-60%.

Audit existing images. Use Shopify's built-in "Speed" report (Online Store > Themes > Speed) to identify the largest images on your store. Replace the worst offenders first.

For a comprehensive image optimization guide covering alt text, responsive images, and CDN configuration, see our dedicated guide on optimizing Shopify images.

Image Format Comparison

Format Best For Compression Browser Support Shopify Support
JPEG Photos, product images Good (lossy) Universal Full
PNG Logos, graphics with transparency Moderate (lossless) Universal Full
WebP All web images Excellent (lossy + lossless) 97%+ browsers Auto-served by CDN
AVIF Next-gen compression Superior 85%+ browsers Partial (growing)
SVG Icons, logos, simple graphics N/A (vector) Universal Full

How Does Lazy Loading Improve Page Speed?

Lazy loading is a technique that defers the loading of non-critical resources (images, videos, iframes) until they are about to enter the user's viewport, rather than loading everything when the page first renders. Implementing lazy loading on below-the-fold images reduces initial page weight by 30-50% and improves LCP by 0.2-0.8 seconds because the browser only needs to download and render what the visitor can actually see, according to a 2025 web performance study by Cloudflare.

Lazy loading is one of the highest-ROI speed fixes because it is simple to implement and immediately reduces the work the browser must do on initial page load.

Implementing Lazy Loading on Shopify

Native browser lazy loading. Add loading="lazy" to all image tags below the fold. Modern browsers support this natively without JavaScript. Most current Shopify themes (Dawn 10+) include this by default on product grid images and below-fold content images.

Do NOT lazy load above-the-fold images. Your hero image, logo, and first visible product images should load immediately. Lazy loading these elements actually hurts LCP because it delays the largest visible content. Check your theme code to ensure hero images have loading="eager" or no loading attribute at all.

Lazy load third-party embeds. YouTube videos, Instagram feeds, and review widgets should all be lazy loaded. Many Shopify apps for these features load their entire payload on page load even when the content is below the fold. Replace eager-loading embeds with lazy alternatives or use facade patterns that load a static preview image and only load the full embed on click.

Lazy load collection page images. On collection pages with 24-48 products, lazy loading product grid images below the first row can reduce initial page weight by 60-80%. Ensure the first row (typically 3-4 products) loads eagerly.


Want speed-optimized features without app bloat? LiquidBoost code snippets add conversion-boosting elements like countdown timers, trust badges, and social proof — all built for speed with zero third-party dependencies. Browse our snippet library to find lightweight alternatives to heavy apps.


How Do You Optimize Fonts for Faster Loading?

Font optimization is the reduction of web font file size and loading time through subsetting, format selection, preloading, and fallback strategies. Custom web fonts add 100-400KB to page weight and can delay text rendering by 0.5-2 seconds if not properly optimized, a phenomenon known as Flash of Invisible Text (FOIT). Optimized font loading strategies reduce this delay to under 100ms, according to a 2025 web typography performance study by Google Fonts.

Fonts are an overlooked speed problem because they seem small compared to images. But fonts block text rendering — meaning your entire page can appear blank while fonts download.

Font Optimization Steps

Step 1: Audit your font usage. Check how many font families and weights your theme loads. Many themes load 4-6 font weights (Light, Regular, Medium, SemiBold, Bold, ExtraBold) when you only use 2-3. Each unused weight adds 20-50KB.

Step 2: Use system fonts where possible. System font stacks (-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif) load instantly because they are already on the visitor's device. Consider using system fonts for body text and a single custom font for headings only.

Step 3: Use font-display: swap. This CSS property tells the browser to show text immediately in a fallback font, then swap to the custom font when it loads. This eliminates FOIT and ensures visitors see content immediately. Add this to your @font-face declarations.

Step 4: Preload critical fonts. Add <link rel="preload" href="font-file.woff2" as="font" crossorigin> in your theme.liquid head section for fonts used above the fold. This tells the browser to download the font early, before it encounters the CSS that references it.

Step 5: Use WOFF2 format. WOFF2 offers 30% better compression than WOFF. Modern browsers (98%+) support it. If your theme still serves TTF or OTF web fonts, convert them to WOFF2.

How Do You Manage Third-Party Scripts?

Third-party script management is the identification, evaluation, and optimization of external JavaScript loaded by your Shopify store from domains other than your own or Shopify's CDN. These scripts — from analytics tools, chat widgets, marketing pixels, and social integrations — collectively add 200KB-1MB of JavaScript to the average Shopify store and block page rendering for 0.5-3 seconds, according to a 2025 third-party web performance audit by WebPageTest.

Third-party scripts are the second-most-common speed problem after app bloat (and often directly caused by it, since many apps inject third-party scripts).

Script Audit Process

Identify all third-party scripts. Open Chrome DevTools > Network tab > filter by "JS." Look for scripts loaded from domains other than your store's domain or cdn.shopify.com. Common offenders include:

  • Analytics (Google Analytics, Meta Pixel, TikTok Pixel)
  • Chat widgets (Zendesk, Tidio, Intercom)
  • Review platforms (Judge.me, Loox, Trustpilot)
  • Social feeds (Instagram, TikTok embeds)
  • Marketing tools (Klaviyo, Omnisend in-page widgets)

Defer non-critical scripts. Add defer or async attributes to script tags that do not need to execute immediately. Analytics pixels, chat widgets, and social embeds can all be deferred without affecting functionality.

Load conditionally. Chat widgets do not need to load on every page. Load them only on pages where support is needed (product pages, checkout, contact page). Similarly, review widgets should only load on product pages, not on your homepage or blog. For more on evaluating app impact, see our guide on Shopify apps vs. code snippets.

Remove duplicate scripts. Multiple apps sometimes load the same library (jQuery, Lodash, Moment.js). Identify duplicates in the Network tab and configure apps to use a shared instance.

Third-Party Script Impact by Category

Script Category Typical Size Render Blocking? Deferrable? Alternative
Google Analytics 4 30-50KB No (async default) Already async None needed
Meta Pixel 60-90KB Partially Yes Shopify native integration
Chat widget 150-400KB Often Yes, defer to interaction Click-to-load facade
Review widget 80-200KB Often Yes, page-specific Lazy load on scroll
Instagram feed 200-500KB Often Yes Static images with link
Heatmap/recording 100-300KB Sometimes Yes Sample 10% of traffic

How Do You Clean Up Theme Code?

Theme code cleanup is the removal or optimization of unused CSS, JavaScript, and Liquid code in your Shopify theme files. Over time, themes accumulate dead code from removed features, app remnants, and unused template sections. A thorough theme cleanup can reduce total theme code size by 15-30% and improve LCP by 0.2-0.6 seconds, according to a 2025 Shopify theme optimization study by Out of the Sandbox.

Theme code accumulates cruft over time, especially if you have installed and removed multiple apps or made iterative customizations.

Code Cleanup Checklist

Remove app code remnants. Search theme files for script and style references to apps you have uninstalled. Common locations: theme.liquid (head and body sections), product templates, cart templates, and the checkout.

Remove unused CSS. Use Chrome DevTools > Coverage tab to identify CSS that is loaded but never applied. Shopify themes often ship with CSS for features you are not using (blog styling when you have no blog, accordion CSS when you have no accordions). Remove or comment out unused blocks.

Remove unused JavaScript. Similarly, use Coverage to identify JavaScript that loads but never executes. Remove unused function definitions and event listeners.

Consolidate inline styles. If your theme has scattered inline <style> blocks across multiple templates, consolidate them into a single CSS file or the theme's main stylesheet. Multiple style blocks cause render-blocking behavior.

Minify custom code. If you have added custom CSS or JavaScript, ensure it is minified for production. Shopify's Dawn theme and modern themes handle this automatically for their core files, but custom additions often ship unminified. For Liquid code optimization patterns, see our Shopify Liquid code examples.

How Do You Reduce Liquid Render Time?

Liquid render time is the server-side processing time Shopify spends executing your theme's Liquid template code before sending the HTML response to the visitor's browser. Complex Liquid logic — deeply nested loops, excessive conditional checks, heavy metafield queries, and unoptimized collection lookups — can add 200-800ms to server response time. Optimizing Liquid code reduces Time to First Byte (TTFB) by 0.1-0.5 seconds, which cascades into faster LCP because the browser receives the HTML document sooner.

This is an advanced fix that requires understanding Shopify's Liquid templating language, but the principles are straightforward.

Liquid Optimization Techniques

Reduce loop iterations. If your homepage template loops through collections['all'].products to display 8 featured products, but the collection has 500 products, Shopify processes all 500 before rendering 8. Use limit filters: {% for product in collections['featured'].products limit:8 %}.

Avoid nested collection lookups. Accessing product.collections inside a product loop triggers a database query for each product. If you have 24 products on a collection page, that is 24 additional queries. Restructure your logic to avoid this pattern.

Cache repeated calculations. Use {% assign %} to store values you reference multiple times rather than recalculating them. For example, assign {% assign price_diff = product.compare_at_price | minus: product.price %} once rather than calculating it in multiple places.

Use {% render %} instead of {% include %}. The render tag is faster than include because it creates an isolated scope and can be cached more effectively by Shopify's rendering engine.

How Do You Preload Critical Assets?

Critical asset preloading is the use of <link rel="preload"> tags to instruct the browser to download essential resources (fonts, hero images, critical CSS) before it would naturally discover them during HTML parsing. Preloading the LCP image and critical font reduces the gap between HTML receipt and content visibility by 0.1-0.3 seconds because the browser starts downloading these assets immediately rather than waiting to encounter them in the CSS or HTML document flow.

Preloading is surgical — you are telling the browser exactly which resources matter most.

What to Preload

Resource Preload Tag Impact
Hero image <link rel="preload" as="image" href="hero.webp"> Faster LCP
Primary font <link rel="preload" as="font" href="font.woff2" crossorigin> Faster text render
Critical CSS <link rel="preload" as="style" href="critical.css"> Faster first paint
Above-fold product image <link rel="preload" as="image" href="product.webp"> Faster product page LCP

Do not over-preload. Preloading too many resources competes for bandwidth and can actually slow things down. Limit preloads to 2-4 critical resources per page type.

How Do You Minimize Redirects?

Redirect minimization is the identification and elimination of unnecessary HTTP redirects (301, 302) in your Shopify store's URL structure. Each redirect adds a full round-trip to the server (100-300ms) before the final page begins loading. Stores with 2-3 chained redirects on common paths are adding 0.3-0.9 seconds to page load before any content rendering begins.

Redirects are invisible speed thieves. You cannot see them without checking your network requests.

Common Redirect Sources on Shopify

  • HTTP to HTTPS. Ensure all internal links use https:// to avoid the http-to-https redirect.
  • Non-www to www (or vice versa). Choose one canonical version and update all internal links.
  • Old URL redirects. Check Settings > Navigation > URL Redirects. Remove chains where redirect A points to redirect B which points to the final URL.
  • App-generated redirects. Some SEO and URL management apps create redirects that chain with Shopify's built-in redirects.
  • Trailing slash inconsistencies. Shopify adds trailing slashes to some URLs. Ensure your internal links match Shopify's canonical format.

How Do You Optimize Above-the-Fold Content?

Above-the-fold optimization is the prioritization of loading and rendering resources that appear in the initial viewport (before the user scrolls) over resources that appear below the fold. By ensuring the browser loads above-fold images, CSS, and fonts first while deferring everything else, you can improve perceived load time by 0.2-0.5 seconds even without changing total page weight, according to a 2025 critical rendering path analysis by Chrome's performance team.

This fix is about sequencing — making sure the most important content loads first.

Above-the-Fold Optimization Steps

Identify your LCP element. Run PageSpeed Insights and check which element is flagged as the Largest Contentful Paint. It is usually the hero image or the first product image. This element should load as fast as possible.

Inline critical CSS. Extract the CSS rules needed to render above-the-fold content and inline them in the <head> of your HTML. This eliminates the render-blocking wait for your full stylesheet to download. Tools like Critical CSS Generator can automate this.

Eliminate render-blocking resources above the fold. Move non-critical CSS and JavaScript below the fold or defer them. Only CSS needed for the initial viewport should block rendering.

Optimize the hero section. Your homepage hero is the most viewed and most speed-sensitive section. Ensure the hero image is properly sized, compressed, and preloaded. Minimize animated elements, auto-playing videos, and complex JavaScript interactions in the hero section.

For a comprehensive approach to mobile-specific above-the-fold optimization, see our Shopify mobile optimization guide.

Frequently Asked Questions

What is a good page load time for a Shopify store?

A good Shopify store should load in under 2.5 seconds on mobile and under 2 seconds on desktop. Google considers LCP under 2.5 seconds "good" for Core Web Vitals. The average Shopify store loads in 3.5-5.5 seconds on mobile, meaning most stores have significant room for improvement. After implementing the 10 fixes in this guide, most stores can reach the 2-3 second range on mobile.

Does Shopify's built-in speed score matter?

Shopify's built-in speed score (found at Online Store > Themes) is a useful directional indicator but not a precise metric. It compares your store to other Shopify stores rather than measuring absolute performance. Use Google PageSpeed Insights for accurate, standards-based measurements. Your Shopify speed score can fluctuate without any changes on your part due to Shopify updating their comparison benchmarks.

Will removing apps really make my store faster?

Yes, and usually more than any other single change. Each Shopify app can inject 40-120KB of JavaScript into every page load. If you have 6-8 apps you are not actively using, removing them can reduce page weight by 300-700KB and improve LCP by 0.5-2.0 seconds. The key is also removing code remnants that persist in your theme files after uninstallation.

Can I speed up my store without technical skills?

The first three fixes (app audit, image compression, and lazy loading) require minimal technical skills and deliver the most impact. App removal is entirely done through the Shopify admin. Image compression can be done with free online tools before uploading. Modern Shopify themes (Dawn and its derivatives) include lazy loading by default. These three fixes alone can improve LCP by 1-3 seconds.

How often should I audit my Shopify store's speed?

Run a speed audit quarterly and after any significant change (new app installation, theme update, major content addition). Set up Google Search Console to monitor Core Web Vitals continuously — it will alert you if your metrics degrade. Additionally, run a thorough speed audit 8-12 weeks before any major sales event (BFCM, holiday season) to ensure peak performance when traffic is highest.

Keep Reading

Seeds of Curiosity

Store speed is not a one-time project — it is an ongoing discipline. Every app you install, every image you upload, and every theme customization you make either improves or degrades performance. The 10 fixes in this guide address the most common speed problems on Shopify stores, ranked by the impact they deliver relative to the effort they require. Start with the app audit (Fix #1) because it costs nothing, requires no technical skills, and typically delivers the largest single improvement. Then work through image compression and lazy loading before tackling the more technical fixes. Measure after each change using PageSpeed Insights so you can see exactly how much each fix contributes. The goal is not perfection — it is getting your store below 2.5 seconds on mobile, where speed stops being a conversion barrier and starts being a competitive advantage. Every tenth of a second you shave off is revenue you were previously leaving on the table.

Share
Boost Your Shopify Store

Ready to Implement What You've Learned?

Boost your Shopify store's performance with our ready-to-use code snippets. No coding required — just copy, paste, and watch your conversion rates improve.

Explore Snippets
Instant Implementation
No Coding Required
Conversion Optimized
24/7 Support

Related Articles

Stay Up-to-Date with Shopify Insights

Subscribe to our newsletter for the latest trends, tips, and strategies to boost your Shopify store performance.