The biggest speed gains for Indian Shopify stores come from: compressing and converting product images to WebP format (typically saves 30-60% load time), removing unused apps (each unused app still loads JavaScript even when disabled), switching to a lightweight theme, and deferring non-critical third-party scripts like chat widgets and marketing pixels. These four actions alone can lift a mobile PageSpeed score from the 20-40 range to 60-75. The remaining 8 tips in this guide push scores into the 80+ range where Core Web Vitals pass and Google rewards your store with improved rankings.
12 Shopify Speed Optimization Tips - Quick Reference
- Compress and convert images to WebP - single biggest impact for Indian product stores
- Remove unused and unnecessary apps - each app adds JS even when disabled
- Choose a lightweight, speed-optimised theme - Dawn or Craft outperform heavy themes
- Enable lazy loading for images - defer offscreen images until scrolled to
- Reduce number of installed fonts - every font file is an extra network request
- Minimise and defer third-party scripts - chat widgets, pixels, and analytics
- Use Shopify's built-in CDN - never host images outside Shopify
- Reduce redirect chains - every redirect adds 100-300ms round trip time
- Preload Largest Contentful Paint image - hero image or first product image
- Remove render-blocking CSS and JS - defer non-critical stylesheets
- Optimise product videos - compress before upload, avoid autoplay
- Audit and minify custom Liquid code - unused sections still load assets
Why Shopify Store Speed Is More Critical for Indian Stores Than Global Averages
Global ecommerce speed benchmarks understate the importance of page speed for Indian Shopify stores. Experienced Shopify developers in Chennai build speed optimisation into every store from day one - because for Indian mobile buyers, load time directly determines whether you win or lose the sale. Here is the India-specific context that makes every millisecond matter more:
- 85%+ of Indian Shopify traffic is mobile - Mobile devices process JavaScript more slowly than desktop, and mobile network connections in India vary from 5G in metro areas to 4G with variable speeds in Tier-2 cities. A store optimised for desktop PageSpeed may still score poorly on mobile.
- Indian buyers have a lower patience threshold for load times - Research consistently shows that 53% of mobile visits are abandoned if pages take longer than 3 seconds to load. In India, where consumers often compare multiple stores during a purchase decision, a slow store simply does not compete.
- Core Web Vitals directly affect Google rankings in India - Google uses Core Web Vitals (LCP, CLS, INP) as ranking signals. A Shopify store failing Core Web Vitals is being penalised in organic search for every relevant keyword - including the product and category terms that drive your highest-intent organic traffic.
- Paid advertising ROI is directly tied to store speed - Your Meta Ads and Google Ads cost per click is fixed. If 60% of paid clicks bounce before the page loads, you are paying for traffic that never has the chance to convert. A 1-second improvement in load time can increase mobile conversion rates by 15-27%.
- WhatsApp traffic is particularly speed-sensitive - WhatsApp product link clicks open in an in-app browser with constrained resources. Stores that load in 2-3 seconds in a browser can take 4-6 seconds in WhatsApp's in-app browser without optimisation.
Before applying any of the 12 tips, measure your current score using Google PageSpeed Insights (pagespeed.web.dev). Test your homepage, your most important collection page, and your best-selling product page separately on mobile - not desktop. Note the LCP, CLS, and INP scores alongside the overall Performance score. These are your baselines. Re-test after implementing each set of changes so you can measure the actual impact of each optimisation.
The 12 Shopify Speed Optimization Tips - Ordered by Impact
Images are the single largest contributor to slow load times in Indian Shopify stores. Product photography for fashion, food, jewellery, and home goods stores frequently includes uncompressed JPEGs or PNGs at 3-8 MB each - uploaded directly from a phone camera or DSLR without any compression. On a page with 20 product images, this means 60-160 MB of image data that a mobile device on a 4G connection must download before the page renders.
WebP format typically reduces image file size by 25-35% compared to JPEG and 50-80% compared to PNG with no visible quality loss at normal screen sizes. Shopify automatically serves WebP to browsers that support it (all modern mobile browsers) when images are uploaded through the admin. The action required from you is to compress images to under 200 KB before uploading - not after.
- Use Squoosh (free, Google tool) or TinyPNG to compress before upload
- Target under 200 KB per product image, under 500 KB for hero banners
- Resize images to the actual display size - a 4000px image displayed at 800px wastes bandwidth
- For product images: 2048x2048 pixels at 80% JPEG quality is the Shopify recommended size
- The Crush.pics or Tiny IMG Shopify apps can bulk-compress your existing uploaded images
This is the most commonly overlooked speed issue in Indian Shopify stores. Every app you install adds JavaScript to your storefront - and critically, most apps continue loading their scripts even after you disable the app in the Shopify admin. Disabling an app does not remove its theme code injection unless you manually clean the theme.liquid file or use Shopify's app embed block removal.
A typical Indian Shopify store that has been running for 12 months may have 12-20 installed apps with 5-8 actively used - but all 12-20 are still injecting scripts on every page load. Each additional JavaScript file adds 50-300ms of load time depending on file size and server response time.
- Go to Shopify Admin - Apps and delete every app you are not actively using
- After deleting, check your theme.liquid and relevant section files for leftover script tags or app embed code
- Use the Shopify Speed Report (Admin - Online Store - Themes - Speed) to see which apps are slowing your store
- For apps you still need, check if they use Shopify App Blocks (loads on demand) vs theme.liquid injection (loads always)
Theme choice has a fundamental impact on baseline store speed. Heavy themes with many built-in features, animations, mega menus, and visual effects load significantly more CSS and JavaScript than lightweight themes - even when those features are not used on your store. If your current theme was chosen for visual appeal without considering performance, it may be setting a ceiling on how fast your store can ever load regardless of other optimisations.
Shopify's free themes - particularly Dawn and Craft - are built with modern performance standards and typically score 70-85 on PageSpeed mobile without any additional optimisation. Many premium themes with heavy JavaScript frameworks score 30-50 on mobile even when fully optimised.
- Dawn (Shopify free) - Shopify's reference theme, built for performance, typically 70-85 mobile score
- Craft (Shopify free) - Clean and fast, ideal for product-focused stores
- Sense (Shopify free) - Good for health, wellness, and beauty stores
- Before switching themes, use a duplicate of your store to test the new theme score at pagespeed.web.dev
- If a premium theme is required for brand reasons, run PageSpeed on the theme demo before purchasing
Lazy loading means that images below the visible viewport (below the fold) are not downloaded until the user scrolls near them. Without lazy loading, a product page with 30 images attempts to download all 30 images simultaneously when the page first loads - most of which the user will never see if they convert and go to checkout after viewing only the first 3-4 images.
Shopify's Dawn theme and most modern Shopify themes implement lazy loading natively using the loading="lazy" attribute. If your theme does not, adding this attribute to image tags in the Liquid code is a relatively simple developer task. The exception is your Largest Contentful Paint image (typically the hero or first product image) - this should NOT be lazy loaded and should instead be preloaded.
- Check if your theme already uses
loading="lazy"by viewing page source and searching for image tags - Never apply lazy loading to the first image visible on page load - this worsens LCP
- Apply lazy loading to all product grid images below the first row, all review photos, and all "you may also like" section images
Every custom font family your store uses requires one or more font files to be downloaded before text renders. A store using 3 different font families with regular, bold, and italic variants may load 6-9 separate font files - each requiring a network request, increasing the number of render-blocking resources. On Indian mobile networks where each network request adds measurable latency, font loading is a meaningful contributor to slow LCP times.
- Limit your store to a maximum of 2 font families - one for headings, one for body text
- Use only the font weights you actually need - loading "all weights" of a font family when you only use Regular and Bold wastes significant bandwidth
- Consider using a system font stack for body text (fonts already on the device - no download needed):
-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif - Use
font-display: swapin your font CSS to prevent text from being invisible during font load - In Shopify's Theme Editor, check Font settings and remove any unused font assignments
Third-party scripts are the single most common cause of poor INP (Interaction to Next Paint) scores in Indian Shopify stores. Every marketing pixel, chat widget, review widget, and analytics tool you add injects JavaScript that the browser must download, parse, and execute before the page becomes fully interactive. Meta Pixel, Google Tag Manager, Interakt WhatsApp widget, Hotjar, Crisp chat, and JudgeMe review widget - each individually acceptable, combined they can add 1-3 seconds to Time to Interactive on mobile.
- Load third-party scripts with
deferorasyncattributes so they do not block HTML parsing - Use Google Tag Manager to consolidate all marketing pixels under one script load instead of individual injections
- For chat widgets: configure them to load only on user interaction (click to open) rather than on page load
- For Hotjar or similar session recording tools: load them only on specific pages (checkout, product pages) rather than site-wide
- Audit using Chrome DevTools - Performance tab - identify which third-party scripts consume the most main thread time
Shopify includes a global Content Delivery Network (CDN) powered by Fastly for all media uploaded through the Shopify admin - product images, collection images, and theme assets. This CDN serves your images from servers geographically close to your visitors, reducing the physical distance data must travel and cutting latency significantly for Indian visitors.
The critical mistake is hosting images elsewhere - on a separate server, a different cloud storage bucket, or a website builder - and linking them into your Shopify store via external URLs. External image URLs bypass Shopify's CDN entirely and serve from whatever server they are hosted on, typically with no CDN optimisation for Indian visitors.
- Upload all product images, banner images, and media directly through Shopify Admin - never link external images in product descriptions or theme settings
- If you use a separate photo management system, download and re-upload to Shopify rather than linking directly
- Shopify's CDN also handles automatic image resizing - use
image_urlLiquid filter with appropriate size parameters rather than loading full-size images and relying on CSS to resize
Every URL redirect your store performs adds a round-trip network request before the final page loads. A redirect chain - where URL A redirects to URL B which redirects to URL C - multiplies this cost. On Indian 4G networks where a single round trip can take 80-150ms, a 3-step redirect chain adds 240-450ms to page load time before any content even starts loading.
Redirect chains are common in Shopify stores after product URL changes, collection restructuring, or when an old page URL pattern is changed. They also occur when HTTP requests redirect to HTTPS, and then HTTPS www redirects to HTTPS non-www (or vice versa) - two redirects on every page load until the browser caches the final destination.
- Use Screaming Frog (free up to 500 URLs) or Ahrefs to identify redirect chains in your store
- In Shopify Admin - Navigation - URL Redirects, review all redirects and update chains to point directly to the final destination
- Check your domain settings to ensure HTTP to HTTPS is a single direct redirect, not chained through www variations
- After product URL changes, update all internal links (in product descriptions, blog posts, navigation) to point to the new URL directly
Largest Contentful Paint (LCP) measures the time until the largest visible element on screen is fully loaded - typically the hero image or the first product image on a collection page. LCP is one of Google's Core Web Vitals and a direct ranking signal. For most Indian Shopify stores, LCP is the failing metric - either because the hero image is too large, or because it is discovered late in the page loading process.
Adding a preload hint for your LCP image tells the browser to start downloading it as a high priority as soon as the HTML starts parsing, before it encounters the image tag in the rendered HTML. This can reduce LCP by 0.5-1.5 seconds on mobile.
- Identify your LCP element using Chrome DevTools - Performance - click on the LCP badge in the filmstrip
- Add a preload link tag in your theme.liquid <head> section:
<link rel="preload" as="image" href="[your-hero-image-cdn-url]"> - For collection pages where the LCP image changes by product, use Shopify's Liquid to dynamically preload the first product image
- Only preload 1 image - preloading multiple images negates the priority benefit
Render-blocking resources are CSS and JavaScript files that prevent the browser from displaying any page content until they are fully downloaded and processed. When a browser encounters a <script> or <link rel="stylesheet"> tag in the <head> of your page, it stops parsing HTML and waits for that file to download before continuing. For Indian mobile users on variable connections, each render-blocking file can add 200-600ms to the time before any content appears on screen.
- Add
deferattribute to all JavaScript files that are not needed for initial page rendering:<script defer src="..."> - For CSS: identify non-critical stylesheets (carousel styles, modal styles, footer styles) and load them with
media="print" onload="this.media='all'"pattern - Shopify's Dawn theme handles this well by default - if your theme does not, consider a developer to implement these attributes
- Google's PageSpeed Insights "Eliminate render-blocking resources" Opportunity lists the specific files causing the issue with their estimated time savings
Product videos are increasingly common in Indian ecommerce - particularly for fashion, electronics, and personal care products. An uncompressed product video uploaded to Shopify can be 50-200 MB - loading this on a mobile product page over a 4G connection creates a catastrophic user experience. Even with lazy loading, video files affect page weight scores and Time to Interactive.
- Compress all product videos using HandBrake (free) before uploading - target H.264 MP4 format at 1080p, 2-4 Mbps bitrate. Most product videos reduce from 50-100 MB to 5-15 MB with no visible quality loss
- Never use autoplay for videos - autoplay causes immediate download of the video file on page load
- Use
preload="none"attribute on video tags to prevent any buffering until user interaction - For product demos: consider hosting on YouTube and embedding - YouTube handles adaptive bitrate streaming that automatically adjusts to the user's connection speed
- Keep product videos under 30 seconds - longer videos are rarely watched on product pages and add unnecessary file size
Shopify stores that have been customised over time accumulate technical debt in the form of unused theme sections, old app leftover code in theme.liquid, and custom JavaScript added for features that are no longer used. Every section registered in your theme loads its associated CSS and JavaScript even when the section is not added to any page. Over 12-24 months of development, this accumulation can meaningfully inflate your page weight.
- Review your theme's sections folder - delete any custom sections that are no longer used on any page of your store
- Check theme.liquid and layout files for commented-out code blocks, old app integrations, and legacy JavaScript - remove all of it
- Use Shopify's built-in Code Editor to search for script tags injected by deleted apps - look for script src attributes pointing to app domains that no longer appear in your app list
- Minify custom CSS and JavaScript files - remove whitespace, comments, and unnecessary characters. Most code editors have a minify function or use an online tool like CSS Minifier
- If your store has been built by multiple developers over time, consider a complete theme code audit - the cumulative technical debt is often worth addressing in one session
Speed Testing Tools for Indian Shopify Stores
Use these tools in order - each provides different information that together give you a complete picture of your store's performance:
| Tool | What It Measures | Best For | Cost |
|---|---|---|---|
| Google PageSpeed Insights | Core Web Vitals, performance score, specific recommendations | Overall score and actionable fixes | Free |
| Shopify Speed Report | Speed relative to similar Shopify stores, app impact | Identifying which apps slow your store | Free (in Shopify admin) |
| WebPageTest | Waterfall view of every request, first and repeat load | Deep diagnosis of render-blocking and request chains | Free |
| GTmetrix | Performance score, page size, request count, waterfall | Historical tracking of speed improvements | Free / Paid |
| Chrome DevTools - Network | Every individual file loaded, size, and timing | Identifying large files and third-party script impact | Free (built into Chrome) |
Google PageSpeed Insights shows both mobile and desktop scores. Your Shopify store's mobile score is the one that matters for Indian traffic and for Google's ranking algorithm - India is a mobile-first market and Google uses mobile-first indexing. A desktop score of 90 with a mobile score of 35 is a store with serious performance problems, even though the desktop number looks good. Always optimise for mobile first.
Which Tips to Implement First - Priority Order for Indian Stores
If you cannot implement all 12 tips at once, prioritise in this order based on typical impact for Indian Shopify stores:
| Priority | Action | Typical Score Gain | Time Required |
|---|---|---|---|
| 1 - Do today | Remove unused apps | +10 to +25 points | 30 minutes |
| 2 - Do today | Compress existing product images | +8 to +20 points | 1-3 hours |
| 3 - This week | Defer third-party scripts | +5 to +15 points | Developer - 2-4 hours |
| 4 - This week | Preload LCP image | +5 to +12 points | Developer - 1-2 hours |
| 5 - This week | Reduce font files | +3 to +8 points | 30 minutes in Theme Editor |
| 6 - This month | Switch to lightweight theme (if needed) | +15 to +40 points | Developer - 1-3 weeks |
| 7 - This month | Fix redirect chains | +2 to +6 points | 1-2 hours |
| 8 - This month | Lazy loading audit and fix | +3 to +8 points | Developer - 2-4 hours |
| 9 - This month | Compress product videos | +3 to +10 points | 2-4 hours |
| 10-12 - Ongoing | Remove render-blocking, clean Liquid code, CDN audit | +5 to +12 points combined | Developer - ongoing |
BYB Traction - Shopify Stores Built for Speed from Day One
Every Shopify store BYB Traction builds is verified against Google PageSpeed Core Web Vitals before delivery. We do not hand over a store scoring 35 on mobile PageSpeed and call it done - speed optimisation is part of our standard build process, not a paid add-on. As a performance marketing company in Chennai that also runs paid advertising for our clients, we have a direct interest in your store converting the traffic we send - which means speed is as important to us as it is to you. If you are evaluating which plan to start with, current Shopify subscription rates are available on Shopify's official India store - always verify on Shopify's official India pricing page before committing to a plan.
Core Web Vitals verified at launch
- Mobile-first, CWV verified
- Image compression included
- Lightweight theme selection
- Razorpay + COD + GST setup
- 15-day post-launch support
Speed optimised + 1 month SEO included
- All Startup features, plus:
- Advanced speed optimisation
- Script deferral implemented
- LCP preload configured
- 30-day post-launch support
- 1 Month SEO Growth Plan
Full custom theme, maximum performance
- All Growth features, plus:
- Full custom Liquid theme
- Complete render-blocking elimination
- Advanced CWV optimisation
- 60-day post-launch support
- 1 Month SEO Premium Plan
Running a Shopify store that scores below 60 on mobile PageSpeed? BYB Traction offers a free speed audit - we run your store through PageSpeed Insights, WebPageTest, and Shopify's Speed Report, identify the 3-5 highest impact fixes specific to your store, and give you a clear action plan. No obligation. Request your free speed audit
Conclusion: Speed Optimisation Is Ongoing, Not a One-Time Fix
Shopify store speed is not a problem you solve once and forget. Every new app you install, every additional font you add, every uncompressed image you upload, and every new JavaScript integration pushes your score down incrementally. The 12 tips in this guide should be applied in priority order, and then the key metrics - mobile PageSpeed score, LCP, CLS, and INP - should be checked at least monthly.
The stores that consistently rank well in Google organic search and convert paid traffic efficiently in India are the ones where speed is treated as an ongoing discipline, not a one-time project. Set a target mobile PageSpeed score of 75+ and a passing Core Web Vitals status, and treat any drop below that threshold as a priority fix.
For ongoing Website Development Services in Chennai including regular Shopify speed maintenance and CWV monitoring, BYB Traction offers structured support plans that include monthly speed checks alongside your Shopify maintenance.
4th Floor, 4A, Rashmi Towers, Nungambakkam, Chennai 600034 · +91-9600448666 · contact@bybtraction.com · View Shopify Services
Frequently Asked Questions
The most common causes of slow Shopify stores on mobile in India are: uncompressed product images (the single biggest factor - photos uploaded directly from mobile cameras at 3-8 MB each), too many installed apps (each app loads JavaScript even when not in use), a heavy theme with excessive built-in features, and multiple third-party scripts loading simultaneously on page load. Indian mobile traffic is particularly affected because 85 percent or more of ecommerce traffic arrives on mobile devices over variable 4G connections where each network request adds measurable latency. The combination of large images, app bloat, and heavy themes can push mobile PageSpeed scores below 30 and load times above 8-10 seconds on mid-range Android devices.
A mobile PageSpeed score of 75 or above is considered good for a Shopify store targeting Indian traffic. Scores of 85 or above are excellent and are achievable with lightweight themes and proper optimisation. More important than the overall score are the Core Web Vitals metrics: LCP (Largest Contentful Paint) should be under 2.5 seconds, CLS (Cumulative Layout Shift) should be under 0.1, and INP (Interaction to Next Paint) should be under 200 milliseconds. Passing all three Core Web Vitals is a direct Google ranking signal. Most unoptimised Indian Shopify stores score 25-50 on mobile PageSpeed with failing Core Web Vitals - the tips in this guide typically lift stores to 65-85 range.
Yes, significantly. Every app you install on Shopify injects JavaScript into your storefront, and most apps continue loading their scripts even after you disable or delete them from the Shopify admin - unless you manually remove the leftover code from your theme files. A store with 15-20 installed apps (common for stores that have been running for 12 months) may be loading 10-15 extra JavaScript files on every page, adding 1-3 seconds to mobile load time. Shopify's built-in Speed Report in Admin - Online Store - Themes shows the estimated impact of each app on your store speed. Removing unused apps is consistently the fastest and highest-impact speed improvement for existing Indian Shopify stores.
The easiest way is Google PageSpeed Insights at pagespeed.web.dev - enter your store URL, select Mobile, and check the Core Web Vitals section showing LCP, CLS, and INP scores. Green means passing, orange means needs improvement, red means failing. For real-user data rather than lab data, use Google Search Console - go to Experience - Core Web Vitals in your Search Console dashboard. This shows actual user experience data from visitors to your store over the past 28 days, broken down by mobile and desktop. Note that Search Console Core Web Vitals data requires sufficient traffic to be populated - new stores or low-traffic stores may show no data.
Shopify's free themes - particularly Dawn, Craft, and Sense - are among the fastest available because they are built by Shopify's own team using modern performance standards with minimal JavaScript dependencies. Dawn typically achieves mobile PageSpeed scores of 70-85 on stores with optimised images. Among paid themes, Turbo by Out of the Sandbox and Prestige by Maestrooo are known for performance. The most important factor is testing the theme's PageSpeed score on the theme demo before purchasing or switching. Theme performance varies significantly between versions and customisation levels, so always test with real products and apps in a development environment before committing to a theme switch on your live store.
Basic speed improvements - removing unused apps, compressing existing images, reducing fonts - can be done by a store owner without developer cost in 2-4 hours. Developer-required optimisations - implementing lazy loading, deferring third-party scripts, preloading LCP images, and eliminating render-blocking resources - typically cost Rs 8,000 to Rs 25,000 depending on theme complexity and the number of changes required. A complete speed audit and optimisation project for an existing Shopify store takes 1-2 weeks of developer time and typically costs Rs 15,000 to Rs 40,000. If your store's speed problems are rooted in a heavy theme, a theme migration project (BYB Traction from Rs 34,999) addresses speed at the foundation level rather than patching individual issues.
Yes, directly. Google uses Core Web Vitals - LCP, CLS, and INP - as ranking signals for all pages indexed in Google Search. A Shopify store that fails Core Web Vitals on mobile is being penalised in rankings compared to a store that passes them, assuming similar content quality and backlink profiles. This affects both category keywords and product keywords. Additionally, a slow store has higher bounce rates, lower pages-per-session, and lower time on site - all engagement signals that Google interprets as lower-quality content. Speed improvements that lift Core Web Vitals from failing to passing typically produce measurable organic ranking improvements within 2-4 weeks for stores with established Google Search Console history.
Use Shopify's built-in Speed Report in Admin - Online Store - Themes - View Report. This shows your store's speed score relative to similar Shopify stores and lists installed apps with their estimated impact on load time. For more detailed analysis, run your product page URL through Google PageSpeed Insights and scroll to the Diagnostics section - Reduce the impact of third-party code. This lists every third-party script (apps, pixels, widgets) loading on your page with its estimated blocking time in milliseconds. Chrome DevTools Network tab also shows every script file loading - filter by JS and sort by size to identify the largest files. Apps are identified by their domain names in the script source URLs.