How to Make Shopify Store Faster?
Tags: shopify, ecommerce, headless
Published: 2020-12-08 12:13:42

<!-- wp:heading -->
<h2>Introduction</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The battle for every digital customer hasn’t been so fierce as it is now. Owners of webshops spend big bucks on paid advertising and SEO every day to gain people’s attention and try to push them through sales funnel. However, no matter how hard you try, these actions won’t result in a reasonable return on investment if the basics are being overlooked.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nowadays, basics start with the website speed. As of 2018, it became an official Google ranking factor. But it doesn’t only affect robots crawling the internet, but also the real users looking for places to spend their money.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>How does website speed affect conversions?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Who likes waiting in the long queue, even in the favourite supermarket?&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Just looking at people standing impatiently may be a sufficient reason to leave without buying anything. The very same thing happens in online shopping – if your Shopify website loads slower than it should, the potential buyers will tend to leave.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>And don’t take my word for it – check research-based numbers below.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Take the bounce rate now. Bounce rate is a percentage of visitors who opened a single page on a particular website and then exited it, without taking any further action. The reasons behind this may be different, but the page load time is definitely among them.</p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://lh4.googleusercontent.com/umZWjvjhr_g6ps0UUAVTmP_nTRnTesBNb-ixs-PLkyoAeiwBNX3JZrNDc2L6CTpqIOfoDNdxpW_BmwpXYG7wL_V6c-DS41gtk2ydUKynGYuPnGovLf0ks_zfLGUgXmL3aoEW9t70" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Hungry for more statistics? Google gladly helps with that. According to their Industry Benchmarks for Mobile Page Speed, <a href="https://think.storage.googleapis.com/docs/mobile-page-speed-new-industry-benchmarks.pdf" target="_blank" rel="noreferrer noopener nofollow">53% of users will leave</a> if it takes more than 3 seconds for a website to load on mobile devices. That’s a problem concerning webshops even more.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Moreover, as I said before, website speed affects not only the real customers but also your online store’s visibility in Google search results. And I don’t mean just organic search but also paid search. Slow load speed negatively affects Google AdWords Quality Score, which results in lower positions and higher cost.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>You don’t trust Google? It’s okay. I am prepared for such a situation.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://skilled.co/resources/speed-affects-website-infographic/" target="_blank" rel="noreferrer noopener nofollow">Take a look at stats provided by Skilled</a> on what customers expect.</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>79% of customers are less likely to buy again from you if they are somehow dissatisfied with the Shopify store performance. Sure, load time is just one element affecting it, but it’s relatively easy to improve.</li><li>64% of smartphone users expect a website to load in under two seconds.</li><li>47% of customers expect a website to load in under four seconds.</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>If it’s not sufficient motivation for you, be aware that one-second delay in website loading may lead to conversion drop of 7%. So if, for example, the annual sale in your Shopify store amounts to one million dollars, such a delay may cost you $70,000 per year.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>Checking site speed</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Before moving to the core of my article, you have to check how fast your Shopify store is. There are some tools you can use to do that.</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li><a href="https://developers.google.com/speed/pagespeed/insights/" target="_blank" rel="noreferrer noopener nofollow">Google PageSpeed Insights</a></li><li><a href="https://testmysite.thinkwithgoogle.com/" target="_blank" rel="noreferrer noopener nofollow">Test My Site by Google</a></li><li><a href="https://gtmetrix.com/" target="_blank" rel="noreferrer noopener nofollow">GTmetrix</a></li><li><a href="https://www.pingdom.com/" target="_blank" rel="noreferrer noopener nofollow">Pingdom</a></li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Whatever tool you use, together with the results, you will receive tips and recommendations on how to <a href="https://pagepro.co/blog/next-js-vs-gatsby-which-one-to-choose/" target="_blank" rel="noreferrer noopener">improve your website performance</a>. Naturally, your first choice should be to use two tools provided by Google first and follow their advice.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>To improve or not improve?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Now, that you have checked website performance, compare your results to recommendations from Google and Skilled. If your Shopify store loads up in less than one second, the rest of the article is probably not for you, and you are good to go.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>If not, make a coffee, equip yourself with a pen and a piece of paper, and start reading improvements I listed below. While doing so, note down all things you can do to improve your store.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>Ways to improve Shopify store speed</h2>
<!-- /wp:heading -->

<!-- wp:list {"ordered":true} -->
<ol><li><a href="#another-app">Avoid excessive Liquid loops</a></li><li><a href="#fast-theme">Choose a fast, lightweight theme</a></li><li><a href="#another-app">Consider the necessity of installing another app</a></li><li><a href="#broken-links">Fix broken links</a></li><li><a href="#mobile-performance">Focus on testing and optimising mobile performance</a></li><li><a href="#forget-gifs">Forget about GIFs (even those with cats)</a></li><li><a href="#forget-sliders">Forget about sliders</a></li><li><a href="#code-minification">Implement code minification</a></li><li><a href="#lazy-loading">Implement Lazy Loading</a></li><li><a href="#optimise-images">Optimise images</a></li><li><a href="#reduce-http-requests">Reduce the number of HTTP requests</a></li><li><a href="#reduce-redirects">Reduce the number of redirects</a></li><li><a href="#google-tag-manager">Start using Google Tag Manager</a></li><li><a href="#pop-ups">Think twice about pop-ups</a></li></ol>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>You can either click on the improvement that interests you the most (and it will take you there) or read them one by one.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="liquid-loops">Avoid excessive Liquid loops</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Shopify created Liquid in Ruby as an open-source template language. It’s a powerful tool that enables you to create Shopify themes and load dynamic content. However, it has its flaws as well, and forloops are one of them.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>What is a forloop? It’s a process of filtering through all the products available in the store to find these you are looking for (i.e. products within a specific price range or those marked with a particular tag).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The problem occurs when a product catalogue is huge because then the whole process of filtering may take a longer time than expected. And consequently, it will expand the page load time.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>To avoid such a situation, check the theme code for multiple forloops processing the same request. It sometimes happens when programmers who are taking care of Shopify store change over time and create duplicate or conflicting code during the process.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="fast-theme">Choose a fast, lightweight theme</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Some people decide to build a custom storefront for their stores, but sometimes it’s better to choose a ready-to-go theme. If this is your case, make a list of some themes and check their performance.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>How? It’s simple. Copy the link to the live preview of the theme and use one of the tools mentioned above.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="another-app">Consider the necessity of installing another app</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Everybody loves apps – teenagers, grown-ups, travellers, business people, and… Shopify owners. Shopify App Store offers the almost limitless number of apps fulfilling different functions. Installing one is easy – just a few clicks and it’s ready to use. But the problem is that every app slows down a Shopify store, even if you don’t use it anymore.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>If you want to avoid overloading your store with apps, follow these simple steps:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li><strong>Step 1 </strong>– Check apps that are already installed. How many of them are you actually using? Uninstall both inactive and unused.</li><li><strong>Step 2</strong> – Do you need another application? Check other applications first – maybe one of them can give you what you need without the necessity of installing another app. If not, consider if benefits of installing another app surpass drawbacks like slowing down your store.</li></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="broken-links">Fix broken links</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>If any of the links on your website leads to a non-existing page, website, image, CSS or JS file, it means it’s a broken link. The more broken links you have on a website, the more HTTP requests it generates. Consequently, it leads to increased page load time.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>To fix this issue, you can use a free tool like <a href="https://ahrefs.com/broken-link-checker">Broken Link Checker</a> from Ahrefs.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="mobile-performance">Focus on testing and optimising mobile performance</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Mobile shopping consistently overcomes desktop shopping since it’s a quicker and more accessible way. The statistics from Shopify stores confirm it:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>During Black Friday Cyber Monday in 2018, 66% of orders were made through mobile devices</li><li>During the first quarter of 2019, 79% of traffic and 69% of orders came from mobile devices</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>So now you know how vital mobile performance is. Testing and optimising it is critical to conversion rate. Keep in mind that it’s not a one-time job – it’s a continuous work. And our guide will help you with that.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>You can perform testing by using Google tools as well as Pingdom and GTmetrix. There you will find answers on how to optimise your Shopify store with a focus on its mobile version.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="forget-gifs">Forget about GIFs (even those with cats)</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Blocks of plain text with single images here and there? No, thanks. It’s boring, right? So one of the ideas to make our website or blog posts more entertaining could be to insert GIFs inside.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>A GIF like this:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<video loop="" autoplay="" playsinline="">
<source src="https://media1.giphy.com/media/lJNoBCvQYp7nq/giphy.mp4" type="video/mp4">
</video>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Well, don’t do this. GIFs weigh too much and slow down a website in the process.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>“Damn, what a hypocrite. He recommends forgetting about GIFs and uses one himself.”</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Guilty, but it’s not a Shopify store.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>And, actually, it’s not a GIF. It’s HTML5 video, a smaller and faster alternative to GIFs. And that’s my recommendation as well.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="forget-sliders">Forget about sliders</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Sliders, oh, sliders. What seemed like another web design short-term trend, survived the arrival of minimalism. A slider which consists of a few high-quality images may look cool, but data proves that it doesn’t work in any desired way.</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>1% of people click on slider (<a href="https://www.newdesigngroup.ca/website-design/home-page-sliders-carousel/">source</a>)</li><li>Sliders have negative effects on SEO (<a href="https://searchengineland.com/homepage-sliders-are-bad-for-seo-usability-163496">source</a>)</li><li>Sliders are annoying and visibility-limiting (<a href="https://www.nngroup.com/articles/auto-forwarding/">source</a>)</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Instead, you can use a hero image which is a single image with a clear call to action visible to visitors straight after loading up a website.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Here is a beautiful example:</p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://lh3.googleusercontent.com/LSioS_hytCuywBrzpumOgyiMAqs2QPtsKGd3ou4dAI3TlNypLiAhLym9Y17loh9aOrGP3nZyXDStIYJBc0LXFxvoyYbTuh0KzutxgQZ0PykoTM0B99mpbyzGXi2wSc-l_mtMGp1z" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="code-minification">Implement code minification</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Code minification is a process of deleting white spaces in the CSS and JS code which make files smaller and faster to load. These spaces are only for humans to make code more readable. Browsers, on the other hand, to read the code correctly whether it has white spaces or not.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>There are two ways to minify the code:</p>
<!-- /wp:paragraph -->

<!-- wp:list {"ordered":true} -->
<ol><li>You can use an app like <a href="https://apps.shopify.com/plug-in-speed" target="_blank" rel="noreferrer noopener nofollow">Plug-in Speed</a> which offers a 7-day free trial, and then it costs from 39$/month.</li><li>You can minify code yourself or hire someone to do that for you.</li></ol>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>If you choose the second way, remember to leave <em>theme.scss.liquid</em> file because Shopify minifies it automatically.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="lazy-loading">Implement Lazy Loading</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Lazy Loading is about delaying the loading of particular elements until they are needed. It applies specifically to web images.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Lazy Loading is a technique creating the impression that the website is loading faster than in reality. Such an impression is called perceived performance and is experienced by all users coming to the website with Lazy Loading implemented.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Curious how Lazy Loading works?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Typically, all images on a particular page will be loaded simultaneously. It doesn’t matter that the user sees just the top of the website without all these images. Consequently, it slows down the website.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Lazy Loading uses low-quality versions of these images and inserts them as placeholders. As a result, all the images are still being loaded, but it takes much less time due to the lower size of these images. But don’t worry about this low quality – as users scroll down the page and the images are visible to them. Lazy Loading switches low-quality images with high-quality images.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>And that’s basically how the Lazy Loading works.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>To implement Lazy Loading, you can use <a href="https://github.com/aFarkas/lazysizes">Lazysizes</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="optimise-images">Optimise images</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Images can take from 50% to 75% of your website’s total weight. It’s a lot. Therefore optimisation of them can lead up to lower weight and faster load time.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>First of all, take care of the dimensions of product photos. Shopify recommends 2048x2048 pixels, and you should aim for that.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Use either an <a href="https://www.shopify.com/tools/image-resizer" target="_blank" rel="noreferrer noopener nofollow">Image Resizer by Shopify</a> or tool like Photoshop.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Then, use tools like <a href="https://tinyjpg.com/" target="_blank" rel="noreferrer noopener nofollow">TinyJPG</a> or <a href="https://tinypng.com/" target="_blank" rel="noreferrer noopener nofollow">TinyPNG</a> to reduce the sizes of all images.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="reduce-http-requests">Reduce the number of HTTP requests</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>You already know that the higher the number of HTTP requests, the slower the web page loads. But you can fix it by reducing this number.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>First, check <a href="https://www.giftofspeed.com/request-checker/" target="_blank" rel="noreferrer noopener nofollow">HTTP Requests Checker</a> to check the actual number of requests. Then, start reducing it. Fixing broken links is one of the ways to do that – and I already mentioned it – but that’s not all. For example, you can also:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>Combine JS code</li><li>Combine and inline CSS scripts</li><li>Minimise the usage of images</li><li>Use CSS Image Sprites</li></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="reduce-redirects">Reduce the number of redirects</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Apart from being somehow annoying, redirects may slow your website and cause a bad experience. Solution? Reduce the number of them. But remember that redirecting URLs to pages that redirect users further is NOT a good idea.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Shopify has built-in functionality called “URL Redirects” which you can use for 301 redirects.</p>
<!-- /wp:paragraph -->

<!-- wp:list {"ordered":true} -->
<ol><li>Log in to the Shopify admin panel.</li><li>Choose <strong>Online Store</strong> -&gt; <strong>Navigation</strong>.</li><li>Click <strong>URL Redirects</strong>.</li></ol>
<!-- /wp:list -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="google-tag-manager">Start using Google Tag Manager</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Collecting customer information is crucial to any eCommerce business – no doubt about that. But in addition to being fundamental in increasing revenue, it can also badly affect the website's performance and load speed due to multiple JavaScript tracking tags.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>What you need is a system for managing tags like Google Tag Manager (GTM). Its job is to minimise the number of JavaScript requests to one. It also helps to store all tracking tags in one place so you can add or remove tags anytime you need.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Adding Google Tag Manager to your Shopify store is easy – all you need is one snippet of code.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3,"textColor":"vivid-red"} -->
<h3 class="has-vivid-red-color has-text-color" id="pop-ups">Think twice about pop-ups</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>This rule shouldn’t apply just to pop-ups but also any functionality in your Shopify store before implementing it. Pop-ups mean not only these popping up boxes with newsletter sign-up forms but also something called Quick View.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Quick View option displays certain product information straight on the product listings page instead of redirecting users to a product detail page. Cool, right?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Well, at first they may look fantastic, and you may think that users love them, but the reality is often quite different.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Drawbacks of Quick View pop-ups:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>They increase the length of the customer journey.</li><li>They can be a source of frustration.</li><li>Users may take them for product pages.</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>But the most important thing is that they may lead to an increased page load time.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Alternatively, if you want to leave these pop-ups, use tools like <a href="https://www.hotjar.com/">Hotjar</a> or <a href="https://apps.shopify.com/sumome">Sumo</a> first to check if the users are using the Quick View option. If not, there is no reason against removing it from your store.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>The ultimate solution</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>There is also one more thing you can to make your Shopify store faster – it’s called a custom storefront. And that’s what we did for Otakuchan, an online store for Anime fans. We moved it from WordPress to Shopify and added a fully-customized storefront to make the whole website even faster.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>If you are interested, you can <a href="https://pagepro.co/otakuchan.html" target="_blank" rel="noreferrer noopener">read the case study here</a>.</p>
<!-- /wp:paragraph -->