Mobile Speed Is Revenue. Full Stop.
Google’s research found that a one-second delay in mobile page load time can reduce conversions by up to 20%. Shopify’s own internal data shows similar patterns: stores that improve their mobile PageSpeed score from below 50 to above 70 see measurable lifts in mobile conversion rate, session duration, and pages per session. This isn’t correlation — slower pages genuinely cause more abandonment, and faster pages genuinely sell more.
Yet most Shopify store owners accept their mobile speed as a fixed constant — something determined by Shopify’s platform that they can’t control. This is wrong. The platform establishes a performance floor; what sits on top of it — your theme code, your apps, your images, your customizations — is entirely within your control, and it often accounts for 70–80% of the actual load time difference between a fast store and a slow one.
This guide diagnoses the five most common causes of Shopify mobile slowness and gives you the specific technical remediation for each.
Cause 1: Too Many Installed Apps Injecting Scripts
Every Shopify app you install that requires a storefront component injects JavaScript and CSS into every page of your store. A loyalty app adds a loyalty widget script. A review app adds a review rendering script. A chat widget adds a chat initialization script. A recently-viewed-products app adds another script. Multiply these across 8–15 apps that many growing Shopify stores have installed and you’ve added seconds of JavaScript parse and execution time to every mobile page load.
The compounding factor: JavaScript on mobile executes significantly more slowly than on desktop. A mid-range Android phone has roughly 4–6x less JavaScript processing power than a typical desktop computer. Scripts that are imperceptible on desktop create real, user-visible delays on mobile.
The fix: Go to your Shopify admin → Apps and audit every installed app. For each one, ask: is this app actively generating value that justifies its script overhead? Apps you installed “to try” and never properly configured, apps for features you’ve stopped using, and apps with duplicated functionality should be uninstalled — not just disabled. A disabled app still loads its script on your storefront unless explicitly removed. After uninstalling apps, use GTmetrix or Chrome DevTools’ Network tab to verify that their scripts are no longer loading.
Cause 2: Unoptimized Images at Desktop Resolution
This was covered in detail in our image best practices post, but it’s worth revisiting here in the context of speed specifically: images are the single largest contributor to page weight on most Shopify stores, and page weight is the primary driver of load time on mobile networks.
A Shopify store with 48 products on a collection page, each with a 400KB JPEG thumbnail, is serving 19MB of image data just for the collection grid. On a typical 4G connection at 20 Mbps, that’s nearly 8 seconds of download time — before the browser has even started rendering. With properly sized WebP images at 50KB each, the same collection page serves under 2.5MB of images and loads in under 1 second of download time.
The fix: Ensure your theme is using Shopify’s image_url Liquid filter with explicit width parameters. Add loading="lazy" to below-the-fold images. Audit your homepage hero image specifically — it should be served at 750px wide for mobile (not 2000px). Check PageSpeed Insights specifically for the “Properly size images” and “Serve images in next-gen formats” recommendations and implement each one.
OneOnic Shopify Experts
Every Second Your Store Takes to Load Costs You Sales
With 70%+ of ecommerce traffic on mobile, a broken mobile experience is costing you daily. We do complete mobile UX audits and fixes.
Book a Free Mobile Audit →Cause 3: Render-Blocking Resources in the Document Head
When a browser loads an HTML page, it parses the document from top to bottom. When it encounters a <script> tag without a defer or async attribute, it stops parsing, downloads the script, executes it, and then continues. This is called render-blocking: the browser cannot show the user anything on screen until every render-blocking script has loaded and run. On a slow mobile connection, this delay can be 2–5 seconds of a blank white screen.
The fix: In your theme’s layout/theme.liquid file, audit every <script> tag in the <head> section. Scripts that aren’t needed immediately for above-the-fold rendering should have defer added to their tag: <script src="..." defer>. Analytics scripts (Google Analytics, Facebook Pixel, TikTok Pixel), chat widget scripts, and review platform scripts are almost always safe to defer. Theme core scripts may have dependencies that require specific load order — test after any changes.
Also check for unused CSS. Many themes load the full stylesheet including styles for sections that aren’t used on a given page. CSS Modules or critical CSS inlining can reduce the stylesheet size dramatically, but these require deeper theme engineering.
Cause 4: Large, Unoptimized Web Fonts
Custom web fonts are a common culprit in mobile speed problems that gets overlooked. A theme using 3 weights of a custom serif font and 3 weights of a custom sans-serif font from Google Fonts is making 6 external font file requests, each of which requires a DNS lookup, a TCP connection, and a download. Until these fonts are loaded, the browser either shows blank space where text should be (FOIT — Flash of Invisible Text) or shows a fallback font that shifts layout when the custom font loads (FOUT — Flash of Unstyled Text).
The fix: Use Shopify’s built-in font library instead of external Google Fonts — Shopify serves the same fonts from its own CDN, eliminating the external DNS and connection overhead. Limit yourself to 2 font files maximum (one weight of your heading font and one weight of your body font). Use <link rel="preload"> for the font files that are needed for above-the-fold text. And use font-display: swap in your @font-face declarations to show text immediately in the fallback font rather than leaving blank space while custom fonts load.
Cause 5: Inefficient Theme Code and Unused Liquid Sections
Shopify themes — particularly heavily customized themes or themes that have been updated from an older version — often accumulate dead code: Liquid sections for features that aren’t enabled, CSS for components that aren’t in use, and JavaScript modules for interactive features that were later replaced by apps. This dead code adds page weight and JavaScript parse time without providing any user-visible value.
Shopify themes that ship with features like video backgrounds, parallax scrolling, full-screen overlays, and complex animation libraries load the JavaScript for these features on every page, even pages that don’t use them. On mobile, JavaScript execution is expensive — these unused feature bundles can add 200–800ms of parse and compile time.
The fix: Use Chrome DevTools’ Coverage tab (F12 → More tools → Coverage) to see exactly which JavaScript and CSS is unused on each page. Sections of code with 80%+ unused coverage on mobile are candidates for removal or conditional loading. This work is more technical than most store owners can do themselves — it requires theme development knowledge — but it’s often the source of the last 20–30 points of PageSpeed improvement after the lower-hanging fruit has been picked.
Measuring Your Improvement
After implementing any speed fix, measure the impact systematically. Run PageSpeed Insights before and after each change and record the Mobile score. Use GTmetrix to track Total Blocking Time (TBT) — the metric most correlated with perceived JavaScript slowness on mobile. Run a WebPageTest filmstrip comparison to see how many seconds earlier your content becomes visible after the fix.
Aim for a Mobile PageSpeed score above 70 as a minimum, 80+ as good, and 90+ as excellent. Most Shopify stores with heavy app installations score in the 30–50 range before optimization. Consistent improvement in this score reliably produces measurable conversion rate improvements over 2–4 week observation windows.
The OneOnic Shopify team specializes in Shopify performance engineering — diagnosing the specific causes of mobile slowness in your store and implementing targeted code-level fixes. Book a free performance audit to find out exactly what’s slowing your store down. Browse our portfolio to see speed optimization results from previous projects, or learn more about our full range of services at OneOnic.com.
Shopify Experts · OneOnic
Ready to Grow Your Shopify Store?
Our Shopify experts at OneOnic have helped hundreds of brands launch, optimise, and scale.
