I recently came across a potential client who wanted to migrate from Magento 2 to Shopify because they had been having problems with Magento.
After a look around it was all about features and speed (mainly speed). Now if you’ve ever run across Magento you will know that out of the box it can be a bit sluggish and it has some fairly strict requirements for everyday usage.
Here at IceStar Media we have been using, installing, configuring and maintaining Magento for a number of years, historically we had it running on Debian with apache (in Event mode), running the latest possible PHP-FPM version. However we have noticed the prevalence of the 1-Click install of Magento at some of “those” cloud hosts (you know the ones, they offer WordPress hosting including 1 click install of said). I have even tried installing it using a couple of those 1-click installers (they failed – although only partially and not obviously either).
The unfortunate scenario here is that a web designer/developer who has installed Magento in this manner may very well be missing some of the most crucial steps of sending a Magento site live.
The Magento application is designed (and being moved more and more) to be maintained from the command line, leaving the web interface for shop configuration and sales. Missing out on the command line parts of the configuration will leave you slow and only partially installed.
Magento has excellent Caching options built in (including Full Page Cache), but to get the most out of it you do need to configure it. Changing to a Redis Session, Object/FPC is an excellent way to start improving your speed.
To really polish your speed, Magento themselves recommend that you deploy Varnish (a caching server) in front of your Magento shop. In larger installs we have recommended this historically, however now there are better solutions for the small to medium shops.
Compiling & Deploying
Once you have tested your site and are happy with the way it works you can speed it up a bit more by compiling and set the mode to production.
If you go to the Admin Section, Stores -> Configuration -> Advanced and you can see three options (Admin/System/Developer) your store has not been deployed to live correctly.
In Google Chrome, if you start up the Developer tools, go to the network tab and load your Magento front page, if it’s not less than 200ms to load, there is something badly configured
For reference all the sites we manage have times of less than 200ms, the example quoted above was at 2.5 seconds.
Here is where one of “those” hosts (I hesitate to suggest they are budget, because they aren’t, they are just not really suitable for Magento) falls down.
Memory: When setting up PHP’s memory allocation needs around 2G, apparently this can be lowered to 1G for live but we always recommend somewhere between 1G & 2G
Environment Tweaks: There are a number of tweaks you need to apply to get the best performance out of Magento, they aren’t always available, nor sufficient head room provided to allow you to get there if they are.
While you can feel free to use a virtual host and even preferably a managed host, do choose your Magento developer carefully OR have someone who know Magento to maintain the core and your hosting.
Your site should be sitting on an equivalent to a Linode 2 Core/4G although we recommend 4 Core/8G as a reasonable minimum (there are alternatives i.e Digital Ocean, AWS, RackSpace etc).
If you budget allows ditch Apache/Nginx and go for LiteSpeed Enterprise with its LiteMage caching (for a small site its $10 per month more, for the next level up its $50 per month – they have a multitude of licensing options). This allows a much faster speed and the Enterprise caching allows you to get all the speed (if not more) of a Varnish cache without needing the extra complexity (and associate network connections).
If you need help with your Magento store, want us to set up a new one or even if you just need us to host it for you, we can put together a plan for you that meets the needs of your store and your budget.