Shopify store speed optimization after WooCommerce migration (2026)
How to optimize your Shopify store's loading speed after migrating from WooCommerce — theme selection, app audit, image optimization, lazy loading, Core Web Vitals, and Shopify speed score improvement.
Many WooCommerce stores migrate to Shopify expecting immediate speed improvements, then discover their Shopify store is loading slower than their old WordPress site. The problem is almost always too many installed apps each injecting JavaScript. This guide covers how to achieve fast Shopify store performance after migration.
Understanding Shopify's speed advantage (and its limits)
Shopify's infrastructure advantages over self-hosted WooCommerce:
- Global Fastly CDN: static assets (JS, CSS, images) served from the nearest edge node
- Managed server infrastructure: no slow shared hosting, no server scaling issues
- HTTP/3 support across all stores
- Automatic image optimization: WebP conversion, size variants on demand
However, these advantages are easily negated by:
- Every installed Shopify app injects JavaScript into your storefront (unless excluded)
- Many merchants install 15–25 apps — each adds 50–200ms of JavaScript execution time
- Large theme files with many unused sections
- Unoptimized product images uploaded at massive file sizes
Shopify speed score
Shopify calculates a speed score (0–100) for each theme in Online Store → Themes. This is based on Google Lighthouse performance metrics for a simulated load on a median mobile device:
- Score 80+: Fast. Green.
- Score 50–79: Needs improvement. Yellow.
- Score below 50: Slow. Red. Likely to impact conversion rate and SEO.
New Shopify store (Dawn theme, no apps): typically scores 85–95. After installing 10+ apps: often drops to 40–60. The apps are the primary degradation factor.
App script audit
The single highest-ROI speed optimization action: auditing and reducing installed app scripts.
How to audit app scripts
- Open Chrome DevTools → Network tab → filter by "JS"
- Load your Shopify store homepage
- Identify every JavaScript file loaded: see domain names (apps load from their own CDNs like
cdn.appname.com) - Match each script to an installed app
- Google PageSpeed Insights → Diagnostics → "Eliminate render-blocking resources" — shows which scripts delay First Contentful Paint
Apps to audit for page load impact
- Chat apps (Tidio, Intercom, Gorgias): live chat widgets load 100–300KB of JS. Load lazily or only on specific pages.
- Review apps (Yotpo, Okendo): review widgets can be heavy. Ensure lazy loading is configured.
- Loyalty/rewards apps (Smile, LoyaltyLion): add badges and widgets globally. Consider limiting to logged-in customers.
- Wishlist apps: add JS to every product page. Evaluate load strategy.
- Upsell apps (ReConvert, Frequently Bought Together): add JS to cart and product pages.
- Popup/marketing apps: email capture popups load JS globally. Ensure they fire after page load, not before.
App exclusions
- Most Shopify apps allow you to exclude them from specific page types (disable on homepage, only load on product pages, etc.)
- Check each app's settings for "performance" or "load pages" settings
- Some apps inject via theme.liquid (load on every page) and can't be easily limited — uninstall if not needed on all pages
Image optimization
Images are typically 60–80% of total page weight. Optimize aggressively:
Shopify's native image handling
- Upload original files at full resolution (Shopify's CDN generates all size variants)
- Shopify auto-serves WebP to supported browsers (all modern browsers)
- Use Liquid image_url filter with width parameter:
{{ product.featured_image | image_url: width: 800 }} - Use
loading="lazy"on all below-the-fold images (most modern themes do this automatically)
Image compression before upload
- Use TinyPNG or Squoosh to compress images before uploading to Shopify
- Target: product images under 500KB at full resolution. Most photos can be 100–300KB at 2000px with minimal visible quality loss.
- Shopify Image Optimizer apps (Crush.pics, TinyIMG): automatically compress images already in your Shopify Files
Hero images and banner images
- Desktop hero images: 2000–2560px wide, 80–150KB (WebP/highly compressed JPEG)
- Provide separate mobile hero images: 750px wide, lighter file size
- Background images in CSS: convert to WebP and specify via picture tag with srcset
Theme optimization
Choosing a fast theme
- Dawn (free): Shopify's reference theme. Built for speed. Consistently scores 90+. Recommended baseline.
- Paid themes vary: many premium themes include animations, parallax, and JavaScript effects that reduce scores. Test speed before purchasing.
- Shopify Theme Store: sort by "Speed" to see fastest themes in each category
Theme code optimization
- Unused sections: most themes include sections you'll never use. These still load CSS/JS definitions.
- Remove unused sections from theme code (or ask a Shopify developer to do so)
- Inline critical CSS: the CSS for above-the-fold content should load first
- Defer non-critical JavaScript: use
deferorasyncattributes on non-critical scripts
Core Web Vitals targets
| Metric | Good | Needs improvement | Poor |
|---|---|---|---|
| LCP (Largest Contentful Paint) | < 2.5s | 2.5–4.0s | > 4.0s |
| INP (Interaction to Next Paint) | < 200ms | 200–500ms | > 500ms |
| CLS (Cumulative Layout Shift) | < 0.1 | 0.1–0.25 | > 0.25 |
LCP improvement (most impactful for Shopify)
- The LCP element is usually your hero image or product featured image
- Add
fetchpriority="high"and removeloading="lazy"from the first above-the-fold image - Preload the LCP image:
<link rel="preload" as="image" href="{{ featured_image }}"> - Reduce LCP image file size as a priority over all other images
CLS improvement
- Common Shopify CLS sources: font loading (FOUT), app widgets injecting layout, image dimensions not specified
- Always specify image width and height attributes: prevents layout reflow when images load
- Use font-display: swap for custom fonts (in theme settings or CSS)
- Ensure app widgets (chat bubbles, loyalty badges) don't shift layout on load
Post-migration speed checklist
- Run Shopify speed score baseline immediately after theme install, before adding apps
- Install apps one at a time: re-run speed score after each to identify slow apps
- Audit all app scripts: use Chrome DevTools Network → JS to identify all external scripts loading
- Configure chat app to load lazily (fire 3 seconds after page load, not on DOMContentLoaded)
- Compress all product images before upload: target under 300KB per image
- Configure lazy loading on all below-the-fold images in theme
- Add fetchpriority="high" to hero image on homepage
- Enable lazy loading for review widget (typically in review app settings)
- Remove or limit apps not providing measurable revenue impact
- Run Google PageSpeed Insights on homepage, collection page, and product page
- Set CWV monitoring: Google Search Console → Core Web Vitals report shows field data from real users
The most impactful single action for most Shopify stores is uninstalling unused apps. Merchants routinely install an app to test it, then forget to uninstall it when it's not needed — but the app's JavaScript continues loading on every page. Spending one hour auditing all installed apps, uninstalling unused ones, and checking that necessary apps load lazily can improve your Shopify speed score by 20–30 points and meaningfully improve LCP. This often produces better results than any amount of image optimization or theme tweaking.
Migrate your store with k-sync
Connect your WooCommerce store, validate your products, and push to Shopify in minutes. Free for up to 50 products.
Get started freeRelated reading
Migrating a luggage and travel accessories store from WooCommerce to Shopify (2026)
How to migrate a luggage, travel bags, or travel accessories WooCommerce store to Shopify — luggage specifications, airline compliance, TSA lock, warranty and durability claims, and luggage retail Shopify setup.
Migrating a motorcycle accessories store from WooCommerce to Shopify (2026)
How to migrate a motorcycle accessories, biker gear, or motorbike parts WooCommerce store to Shopify — helmet safety standards, CE-rated protective clothing, type approval for parts, fitment compatibility, and motorcycle retail Shopify setup.