Web hosting is a key component of any successful website. The hosting you choose directly affects your users’ experience and search rankings though your website’s speed and performance which directly affects your sales and revenue.
Hosting can also seem complicated with a large array of technical factors to consider. In addition, there’s a wide variety of plans available in the market which can just confuse you if you don’t know what you’re looking for.
Choosing the right host becomes even more important (and slightly more technical) when you host a WordPress website with memberships, payments and dynamic content (like courses).
Hosting a dynamic Learning Management System powered by LifterLMS is a whole different ball game than hosting a regular WordPress blog/ website.
It always helps to familiarise yourself with fundamental concepts relevant to hosting so that you can make the best decisions, either by yourself or in consultation with an expert. That’s why we went ahead and put together a comprehensive guide to help you make the right decisions.
What this guide will do
- Explain how a LifterLMS powered site is different from a standard microsite/blog to understand what your site needs in terms of hosting.
- Help understand the different types of hosting available so you know what will satisfy such needs.
- List some Do’s & Don’ts to make the most of the hosting you choose.
What this guide won’t do
- Recommend a specific hosting plan or provider. If you want specific recommendations, you can ask other LifterLMS users on our Facebook Group.
- Give you a lot of details or instructions. We will provide pointers and the general idea but the exact steps would differ from host to host.
Before diving in
It is important to remember that the extent to which these factors affect your site depends on the size of your site and the size of your audience. Your Learning Management System may work beautifully with the cheapest, minimal hosting without employing any of the strategies below if your courses and the size of your audience is really small. However, as your business grows or if you are fortunate to have a large number of students, you should explore these practices.
At the same time, even with a small website and a small audience, if you can and do employ any of these strategies (many of which are free), your site will work faster and experience lesser issues. Who doesn’t want things to be better?
What works extremely well for a microsite or a blog may just be insufficient for your LifterLMS site and you may soon find yourself dealing with 500 errors, downtimes, slow loads and other weird issues. It is important to understand how dynamic websites that use LifterLMS are different from simple websites.
1. Uncacheable Content
If you understand what caching is, you’d realise that a lot of content on a LifterLMS site just should not be cached. (If you don’t understand caching, here’s a fun introduction and here’s a more technical one.) This is because the same page (or URL) is supposed to display different things to different users on your site.
For an example, the landing page of your course is often different for enrolled students and as yet unenrolled pospects. If you were to cache this page, only one of those versions will show up for both these kinds of users.
Consider another more critical example. If you have premium content restricted to a membership plan, casual visitors may be able to access it if it is cached incorrectly. This can literally eat into your revenue.
2. Large amounts of Data
Depending upon the number of courses, lessons, drip/ pre-requisite settings, student information, quizzes, assignments (you get the picture), your LifterLMS powered website could be storing really large amounts of data inside your database tables.
In addition, depending on whether you accept file uploads (in quizzes/assignments), you can quickly run out of hard disk space on your server. You surely can appreciate how this will compound and increase over a period of time.
3. Complex Database Queries
With the permutations and combinations involved in displaying content to different types of students at various stages of course completion, you can surely begin to appreciate the kind of complex database queries that LifterLMS performs all the time.
This can make your site slow if your hosting isn’t cut out for the job of handling multiple, concurrent and complex database queries.
4. Concurrent Users
On a small business website, a visitor will typically spend a few minutes and leave as soon as they’ve got what they’re looking for. In your case though, a student in a course can stay for hours.
In addition, you can easily have a large number of users accessing your site at the same time and creating multiple concurrent sessions. Multiple users connected to your website for long durations can really place a heavy demand on server resources.
Consider this again in the context of complex database queries and uncacheable content. Do you see where this is going?
5. Heavy Processing
With all the above points in mind, I’m sure you can appreciate how much complex the code is going to be. In addition, consider the kind of code and processing that goes in delivering quizzes and assignments.
Also consider all the things you can do with the Course Builder and the amount of data and processing that’s involved in building a large course with quizzes and assignments.
All this adds up to a need for decent RAM and CPU on your server. This is definitely not something a shared host built for simple micro-sites will be able to handle well.
6. Other Plugins and Addons
If all this weren’t enough, there’s a good chance that you have installed other plugins where the previous five points ring completely true. Plugins that deliver dynamic content like WooCommerce, BuddyPress, bbPress and many others can place their own demands on your server.
Many LifterLMS addons also add some quite intricate and complex functionalities and can be resource-intensive in their own right.
This is just a superficial big picture introduction to types of hosting; it’s neither comprehensive, nor detailed. Use this as a starting point to explore different types of hosting plans on offer. Choose only after you have considered all aspects of your website and preferably discussed it with a developer or your preferred hosting provider.
The order in which these are listed is also the order of cost, reliability and technical complexity. It should be obvious that as your business grows and scales, you will need to spend more on servers and get technical help. That’s just true for any aspect of your business.
1. Shared Hosting
This is the cheapest and the most popular option out there. A large number of existing LifterLMS users host their sites on such hosts without any trouble whatsoever. If you’re just starting out with your business, buying shared hosting plan can make a lot of sense.
However, once your business starts scaling and the size of your courses and/or audience increases, you may start running into issues described in the earlier section. Many shared hosts employ some sort of catch-all page-caching mechanism because you share resources with other websites on the same server (That’s why it is called shared hosting). This can interfere with some LifterLMS functionality.
Finally, you could frequently run into issues with outgoing email. This problem is easy to solve and we have a guide specifically to resolve any email related issues that you may face.
2. Specialised (Optimised) WordPress Hosting
In recent years, a lot of hosting plans specially designed for WordPress have turned up in the market. These are pricier than shared hosting, even though technically they still are a type of shared hosting (because your site will still be sharing resources with other sites). However, they provide almost the same value as the more expensive options we explore later in this section.
The good thing about such hosts is that they’re built with WordPress specific strategies, so your website will be much more efficient and faster. Many of the ideas discussed in the section on Hosting Do’s and Don’ts are already in place with such hosts.
One important advantage is that their support is also tailored to WordPress sites. This can come in handy when you run into issues that a shared hosting’s support can often dismiss as WordPress related which they can’t/won’t help you with.
For these reasons (and more), most of our power users (and we ourselves) use one such plan.
3. Virtual Private Servers (VPS)
With regular Shared hosts (as well as Optimised WordPress hosts), a common pool of resources (RAM/ CPU, etc) is shared between a number of sites.
On a VPS, however, you get full control of your resources and you can tune every aspect of your server. That’s also the drawback. You need the technical know-how and skills to be able to fine-tune a VPS.
VPS hosting used to be really expensive compared to a shared plan but nowadays there are many economical plans available (for example with Digital Ocean) that are almost as cheap as shared hosting.
If you’re technically inclined or have a developer in your team, you could opt for a VPS. This will allow you more freedom and control than any other hosting we’ve discussed till now.
There’s a highly recommended popular tool called EasyEngine that can help you setup solid WordPress sites with modern optimisation & caching mechanisms with a single simple command on your terminal.
4. Cloud Hosting
This is similar to VPS hosting in almost every way except that everything is stored on a cloud instead of at a specific location. If your VPS crashes, your site goes down because everything is stored in one place. With a cloud architecture, if one resource crashes, your site will still be up because another resource will take its place.
Cloud hosting can be more expensive than VPS but if your site’s uptime is critically important to you, this is what you should go for. Major companies like Amazon (AWS), Microsoft (Azure) and Google (Google Cloud) provide this type of hosting.
1. Use PHP 7.2
PHP is evolving fast and becoming better and better – better in terms of security and better in terms of speed. Simply upgrading from PHP 5.x to 7.x (preferably 7.2, the latest) will boost your site’s performance even if you don’t do anything else:
In addition, support for PHP 5.6 expired in January 2017. Support for 7.0 expired in December 2017 and support for 7.1 expires in December 2018:
Upgrading to 7.2 means upgrading to the fastest and the most secure version of PHP ever. Most hosting providers will help you upgrade to 7.2. Some may only have 7.1.
This is something you can and should do even if your site is extremely small with maybe just one course with just one lesson and one student. You should do this even if you have a microsite or blog and no LifterLMS.
If your hosting provider is unable or unwilling to upgrade to PHP 7.2, maybe it’s time to look for a new one. There’s absolutely no reason to deprive your business of the latest and the best!
LifterLMS System Requirements lists recommendations for all aspects of your server, including PHP.
2. Use Object Caching
As we have discussed earlier, some LifterLMS screens are uncacheable. That doesn’t mean you shouldn’t use caching mechanisms at all. First of all, there are different types of caching. Even if you don’t cache the actual pages, you can still use object caching. To oversimplify, it caches database queries, data used inside the code and even the code itself. This will still speed up the time spent in repetitive complex database queries.
However, this is where things get a bit technical and you may need a competent developer to help set everything up. Also, your hosting provider should be willing and able to provide support for customisable caching.
Even if you employ some sort of page caching, there are ways to add exemptions. You can easily add your course, membership and payment processing related urls to the list of pages that will not be cached. This way you will still enjoy the benefits of caching without breaking any functionality.
Again this isn’t too important if you have small courses with a small number of students. However, as the size of your courses and/or your audience grows, you will need to start worrying about caching.
3. Offload Files to third party storage and use a CDN
There can be a large amount of files (videos, mp3, images, pdfs, etc) especially if you’re accepting file uploads in quizzes and assignments.
In such cases, it’s a good idea to offload all these resources to cheap third party storage providers like Amazon S3 or Google Cloud, for example. In addition you can employ a CDN to speed up delivery of these files to your students.
The good thing is you don’t have to do anything extra exclusively for LifterLMS to work with these storage providers and CDNs. Since LifterLMS simply integrates with WordPress’s media library, any solution (plugin) that works with WordPress itself will take care of all the files submitted through LifterLMS.
1. Avoid unknown Simple Caching Plugins
There are some well known and popular caching plugins available for WordPress. However, they can be complicated to set up and use. Which is why there are a lot of seemingly attractive, simple, DIY caching plugins that will promise to speed up your site.
However, these are built for simple microsites and blogs and will interfere with how LifterLMS works. You definitely will run into issues with LifterLMS if you use such a plugin.
The best thing to do is to hire a WordPress Developer even if for a one-time contract who can set up and configure a good caching plugin, keeping LifterLMS and other such plugins in mind.
Having no caching and a slightly slower site is any day better than having faulty caching that affects your students’ experience and eats into your revenue.
2. Avoid Bulky Do-it-all Themes
There are a lot of themes that promise to do everything for you with hundreds and thousands of layout options and templates. Such themes will just add more complexity and bulk to the mix and affect your site’s performance.
If you can, get a custom theme developed specific to your needs. If you can’t, opt for a simple clean theme that’s known to be fast & beautiful and lets your content shine.
With the rising popularity of modern page builders, you can use a good page builder with a minimal theme and get much more value and options than a bulky theme can provide.
3. Avoid Unknown Page Builders
When done right, page builders can add a lot of value and useful features to your site. However, most page builders are bulky, will probably lock you in (which means that once you start using them, you can’t switch to another one) and will affect the performance of your site. In addition, most page builders out there don’t play well with LifterLMS.
If you want a fast site, avoid page builders altogether and get a custom theme developed exactly as per your needs. If you can’t do that, choose a page builder that is known to be fast and optimised and has no lock-in involved.
Here’s a little guide to get you started. However, if you’re serious about your website and your business, it will help to read a more in-depth and critical analysis of the most popular page builders out there by a leading WordPress developer. This review is old but much of the information is still useful and relevant.
Again, if you’re not sure, consult a professional!
- If you have larger courses and/or a large audience, go for any specialised/ optimised WordPress hosting. There are quite a few options out there.
- If you also have a developer on your team and are really serious about online learning as a business, you should definitely choose a specialised WordPress hosting plan or even a Cloud Hosting or VPS.
- Whatever you choose, make sure your site gets to use the latest version of PHP, that is PHP 7.2.
- Avoid page caching. If you want to implement it, be sure to consult a developer to set it up for you instead of relying on obscure plugins. Any specialised hosting will have object caching that would speed up your website without affecting functionality.
- For best results, get a custom theme developed instead of relying on bulky premium themes and page builders.
- Finally, if you can, do use the services of a competent developer or an agency at least for one time set up and optimisation.
We hope that this guide helps you get the best results from your LifterLMS site and helps build a sustainable business for you.
If you have any questions or feedback about this guide or anything else LifterLMS related, feel free to get in touch with our support team by logging into your account at https://lifterlms.com/my-account/ and submit a support ticket or post the issue in our WordPress support forum at https://wordpress.org/support/plugin/lifterlms.