We get questions daily from membership site owners looking for site speed help. LMS sites can be quite a challenge to speed up as typically they’re running a membership plugin, Woocommerce and a bunch of other plugins to support various features.
It’s not unusual to see these sites running with 70-100 plugins or more.
These sites are tough because the members are logging into the site and their sessions are essentially uncached. Ideally you want to run the membership area on a completely separate domain, e.g. members.domain.com but most sites we see are well established and making this change is not possible.
Here’s a broad summary of what we’d recommend when looking at speed optimization for these sites:
1. Fast hosting with plenty of CPU power and NVMe hard disks
Because a large proportion of user sessions are uncached the raw CPU power available on your hosting really matters. We recommend Cloudways (https://cways.net) for hosting using either Vultr HF of Digitalocean Premium servers.
These servers have faster CPU cores which is better due to the way PHP uses CPU power and faster NVMe disks which means less wait time of disk operations.
2. Object caching capability (Redis ideally)
Object caching is a form of database caching which will help speed up each user session. In order to use object caching your hosting will need either Redis or Memcached and will need an object caching plugin installed.
Redis is faster than Memcached and we recommend the Redis Object Cache plugin for WordPress.
3. Cloudflare APO
Cloudflare is the content delivery network (CDN) we recommend for all clients. We recommend getting their paid APO service ($5/mo) to reduce the load on the hosting as much as possible.
With this service in place a large proportion of the workload is moved off the hosting onto Cloudflare’s infrastructure freeing up your hosting resources to focus more on the logged in user sessions.
4. WP Rocket
WPRocket plugin is what we use for all our work BUT it also has an option to cache user sessions for logged in users. This means it will create a separate cache for each individual user which will help speed up the page load times for logged in users.
5. Optimize the frontend of the site for core web vitals first
This is broad recommendation to make sure the front end of the site is optimized to pass Google’s Core Web Vitals first, before tackling logged in user speed. The steps required to get a pass/good speed on the front of the site for logged out users will also translate somewhat to logged-in user sessions.
6. Troubleshoot and fix PHP errors
Troubleshoot and fix any php errors happening under the bonnet in WordPress – even small errors can add 1+ second of load time.
Our goto tool for this is Query Monitor plugin.
7. Fix 404 errors
So often we see sites struggling with speed simply because they have broken images or resources that are 404-ing out. 404 errors are bad for speed, bad for SEO and bad for users. As a start point, using a basic SEO audit tool will help. Our speed test tool SiteSpeedBot will also detect these – its free and will take 90 seconds or so to scan a page