Let’s start with the “why”. Why you need a fast store? Because the faster your store is, the more you sell. UX experts have discovered a direct correlation between website performance and user engagement. If your store loads in less than 2 seconds, your users will stay in the flow of browsing, examining, adding, and checking out your products.
A fast store improves a lot of things that range from speed and reliability to search engine trust level. Let’s break them down to see the main reasons why a fast store is a good idea.
A fast store improves sales. This reason is the most obvious one. Fancy looks might give you a good first impression but a fast and responsive store generates real sales. Because people come for the goods, not for the design.
A fast store delivers a superior user experience. Faster is always better. When your store loads in 1-2 seconds, your customers enter a special state of mind called the flow which is described as complete absorption in the process where their undivided attention is given to the process of viewing, adding, and buying your product. The speed of the store empowers users to have an uninterrupted shopping experience which is the main ingredient of a good UX.
A fast store creates a good company image. This is important because business runs on trust. You subconsciously trust a better looking, faster store more. And as a result you want to bring your business to this store.
A fast store improves SEO. Google loves speed. Customers love speed. Google monitors customer behavior and sees that customers love your store, too. Speed becomes cornerstone for user experience. With high speed you both improve your Google rankings and your customer behavior metrics which makes Google rank you even higher. A win-win!
A fast store can handle spikes in user activity better. High speed gives you leeway for sudden spikes in user activity. When a weaker store might tip down and crash, a faster store is typically more optimized and commands more raw hardware power which gives it the ability to survive user spikes reliably.
In short, a fast store is a selling store. Now let’s move to the performance part.
6 Ways to Speed Up Magento 2 by 2020
It’s October now which gives us roughly 3 months before New Year (October, November, December) to speed up your Magento 2 store. What can be accomplished in ~79 days of hard work? Actually, a lot.
1. Assess Your Hosting Requirements and Upgrade If Needed
Running a skeleton crew is frugal but if it’s hurting your speed, you are doing it wrong. Get a fair assessment of your store and see how you can improve just from the hardware perspective. Magento is a hungry little beast when it comes to raw machine resources and if you are working from a shared web hosting situation or the cheapest VPS option, things can feel awfully slow.
We have two pieces of advice here. Both are important. First, look for a Magento-focused hosting company. Because server environments and configurations matter. Hardware-wise, the same setup can perform so much better if it is optimized specifically for Magento 2.
2. Get a Content Delivery Network
A good Content Delivery Network (CDN for short) is a must-have for a Magento store. By 2019 CDNs have learned how to optimize and streamline image delivery besides the basic functionality. They can:
- optimize images so they weigh less and load faster,
- replace old image formats with new ones (such as WebP),
- serve images of the optimal size to reduce load times,
- automatically minify cached CSS, HTML, and JS assets,
- compress assets to improve latency (through Polish, Brotli)
- cache static assets to improve the speed of repeat visits.
3. Enable Elasticsearch to Speed Up Search
Magento 2 uses MySQL-powered store-wide search to find products and deliver them to the customer. It’s a decent solution for small stores with a few thousand SKUs and a modest daily foot traffic. But once you reach a bigger audience you will quickly learn that MySQL search doesn’t cut it.
Elasticsearch is the preferred solution for every Magento store, yet not a lot of store owners actually take the time and resources to implement it. Elastic uses a smarter typo handling algorithm, it’s faster in every way, and most importantly in Magento 2 it’s supported natively which means it’s relatively easy to install and configure.
4. Move from MySQL and Generate Database Indexes
MySQL as a database engine has one awesome feature: it is a long-term, well-rounded solution that everyone knows how to work with. In other respects, though, MySQL is not so brilliant. If we are talking about Magento performance challenges in particular, MySQL struggles to deliver the same level of performance as MariaDB or Percona, its two main competitors in database management.
Why them? Because MariaDB is an excellent tool for database power users: it offers a nice kit of advanced DB and security tools, complex management techniques such as Galera clusters for higher availability, advanced cluster sharding, etc.
Percona is a good alternative to MySQL when you need high scalability, exceptional peak handling, and other performance-related features. Percona in general is a more performance-oriented solution and works great for Magento stores that are heavily database bottlenecked.
One more tip for database optimization: generate DB indexes for third-party extensions that you use. They are a great help for DB performance since most extension developers don’t really bother with DB optimization at all. The reason is that they test their products in a sterile environment of the demo store with a single extension where it works perfectly. But once you put this extension into the store with other 30+ extensions, things get messy.
5. Uninstall Unused Third-Party Extensions
Third-party extensions are the lifeblood of Magento stores. They are the things that give a bland generic store its unique look and flair. Unfortunately, getting overboard with extensions is a common mistake Magento store owners do.
What if we say you don’t need that many extensions in the first place? Actually, if you review all the extensions you installed you will see that you have no idea what some of them even do. Let’s go from the ground up. Delete the extensions that are: too old, that you never use, or that you don’t remember why you installed in the first place.
This way you can get rid of 20-30% of all extensions and significantly relieve your store from this unnecessary load.
6. Profile the Store for Bottlenecks
This is the most labor-intensive and demanding step in our guide. While the first 5 steps focused on integrating a readily-available solution that will instantly show results, manual profiling is a scrupulous and careful process that requires a lot of effort and attention to detail. Yet it’s one of the most important of them all since you actually need to know your bottlenecks before you can fix them.
Manual profiling helps identify choke points in the store and use specific remedies to eliminate them instead of just making the broad strokes (as with the other solutions). We recommend that you use MGT Developer Toolbar as a good alternative to the default Magento Profiler tool to speed up the profiling process.
Concentrate on mission-critical pages first, don’t get sucked into fixing non-priority stuff before you fix your most important pages. Among them are Homepage, Product View, Product Grid, Shopping Cart, and Checkout – all the pages that constitute a full customer journey, from landing to completing the sale process.
Once you improve your user experience there, move on to other pages, outside of this initial scope.
Get Ready for 2020 With a Fast Store!
Three months is a big chunk of time that will allow you to accomplish a lot of stuff if you put your mind to it. Focus on delivering the best possible experience with the least possible effort. There is no shame in reaching for the low hanging fruit if you can accomplish 80% of gains with 20% of effort. After you are done with the most obvious changes, you can move on to the obscure stuff and see what you can do there.