- Why LMS hosting is different from normal WordPress hosting
- Minimum requirements (LearnDash vs TutorLMS vs MemberPress)
- LMS hosting checklist (what matters most)
- 1) Concurrency handling for logged-in users
- 2) Smart caching that respects dynamic pages
- 3) Database performance under write-heavy workloads
- 4) Staging environments (non-negotiable)
- 5) Backups + fast restores
- 6) Security edge (DDoS/WAF/SSL) + isolation
- 7) Observability: you need to find bottlenecks quickly
- Caching rules for LMS & membership sites (what to cache vs never cache)
- How to size hosting for an LMS site (resources + growth)
- Why Kinsta fits many LMS sites
- Recommended Kinsta setup for LearnDash / TutorLMS / MemberPress
- Step 1: Decide what gets edge/page cached
- Step 2: Confirm cache exclusions for MemberPress + checkout flows
- Step 3: Use staging for every change (LMS updates can be fragile)
- Step 4: Backups aligned to “how often your LMS changes”
- Step 5: Performance triage workflow (when “something feels slow”)
- My recommended “starter” stack for LMS stability
- Migration & go-live checklist (to avoid breaking logins/checkout)
- FAQ
- Do I need managed hosting for LearnDash or TutorLMS?
- Can I use aggressive caching on my LMS site?
- What pages should never be cached on MemberPress sites?
- Should I host course videos on my WordPress server?
- How do I know if I need more resources?
- Does a CDN help LMS sites?
- What’s the safest way to update an LMS site?
- Is Kinsta good for international students?
- Key Takeaways
- References

Affiliate disclosure: This post contains affiliate links. If you click and purchase, I may earn a commission at no extra cost to you. I only recommend tools I believe are genuinely useful for building fast, reliable sites.
If your WordPress site sells courses or memberships, your hosting needs are closer to “eCommerce” than “blog.” This guide explains exactly what changes—and how to pick a host that won’t buckle when students log in, stream lessons, or take quizzes.
Quick recommendation: If you want speed, security, staging, and a managed stack that reduces technical overhead, Kinsta is a strong fit for serious LMS sites.
Tip: If you already run a course platform and are deciding between “hosted course platforms” vs “WordPress LMS,” also read:
15 Best Online Course Platforms in 2026.
- Why LMS hosting is different from normal WordPress hosting
- Minimum requirements (LearnDash vs TutorLMS vs MemberPress)
- LMS hosting checklist (what matters most)
- Caching rules for LMS & membership sites (what to cache vs never cache)
- How to size hosting for an LMS site (resources + growth)
- Why Kinsta fits many LMS sites
- Recommended Kinsta setup for LearnDash / TutorLMS / MemberPress
- Migration & go-live checklist (to avoid breaking logins/checkout)
- FAQ
- Key Takeaways
- References
Why LMS hosting is different from normal WordPress hosting
Most WordPress sites are “read-mostly”: visitors load public pages, caching does the heavy lifting, and the server cruises.
An LMS (Learning Management System) site is different. The moment students log in, your site becomes “personalized and dynamic”:
- Logged-in dashboards: each student sees unique progress, enrolled courses, certificates, and quizzes.
- Frequent writes: progress tracking, quiz attempts, notes, assignment uploads, and purchase logs create constant database activity.
- Payment + membership flows: login/register/account/thank-you pages must be accurate and secure, and typically should not be cached.
- Traffic spikes: launches, cohort start dates, promotions, or live webinars can create sudden concurrency.
Bottom line: The hosting winner for LMS sites is not “the cheapest plan.” It’s the host that handles dynamic requests reliably while still caching the right public pages (sales pages, blog content, landing pages) for speed.
Minimum requirements (LearnDash vs TutorLMS vs MemberPress)
Start by confirming your environment meets the baseline requirements. These change over time, so treat this as a sanity check before you optimize anything else.
| Plugin | WordPress | PHP | Database | Memory / Notes |
|---|---|---|---|---|
| LearnDash | WP 6.6+ (per LearnDash docs) | PHP 7.4+ | MySQL 5.6+ or MariaDB 10.1+ | PHP memory limit 128MB+ (LearnDash-specific requirement) |
| TutorLMS | WP 5.8+ (per Tutor LMS docs) | PHP 7.4+ | MySQL 5.7+ or MariaDB 10.1+ | Requires typical server modules (e.g., mod_rewrite, cURL) |
| MemberPress | WP 6.0+ | PHP 7.4+ | MySQL 8.0+ | Membership pages must be excluded from caching for correct behavior |
Practical advice: Even if a plugin supports PHP 7.4, modern WordPress performance and security typically improve on newer PHP versions. Use the newest version your theme and plugins support.
If you are building a course business: treat hosting like infrastructure, not an expense line to minimize. A slow checkout, failed login, or broken progress tracking costs more than a higher-tier plan.
LMS hosting checklist (what matters most)
Use this as your evaluation framework. If a host fails on multiple items below, it will eventually show up as lost sales, churn, or support tickets.
PerformanceReliabilitySecurityScalingOperations
1) Concurrency handling for logged-in users
Course sites generate more uncached requests than typical blogs—especially inside lessons, quizzes, dashboards, and membership gates. You want a host that can handle multiple simultaneous PHP requests without queueing everything behind a small worker pool.
2) Smart caching that respects dynamic pages
Speed comes from caching, but LMS sites require exceptions. If your host or caching plugin can’t exclude membership and checkout pages, you will see “weird” issues (stale account pages, broken checkout, progress not updating).
3) Database performance under write-heavy workloads
Progress tracking and orders hit the database constantly. Cheap shared hosting often becomes unstable here because you’re sharing resources with unknown neighbors.
4) Staging environments (non-negotiable)
You will update WordPress core, LMS plugins, payment plugins, and themes. Staging lets you test without breaking access for paying members.
5) Backups + fast restores
LMS sites change daily (new enrollments, new orders, course updates). Reliable backups—plus the ability to restore quickly—reduce risk during updates and migrations.
6) Security edge (DDoS/WAF/SSL) + isolation
Membership sites attract attacks: credential stuffing, bot traffic, and brute force login attempts. A strong edge layer and isolation reduce the blast radius.
7) Observability: you need to find bottlenecks quickly
“My site is slow” is not actionable. You need tools that point to the cause: a plugin, a slow query, an external API call, or a theme issue.
Caching rules for LMS & membership sites (what to cache vs never cache)
Think in two buckets:
- Public acquisition pages (cache aggressively): homepage, blog posts, landing pages, sales pages, marketing funnels (when they don’t personalize per user).
- Authenticated + transactional pages (avoid page caching): dashboards, “my courses,” quizzes, account pages, checkout, thank-you pages, and anything showing user-specific data.
Critical: Membership and checkout pages must be excluded from caching.
Examples of commonly excluded pages include /account, /login, /register, /thank-you, and other membership URLs (exact slugs vary by plugin and site).
Recommended “Never Cache” URL patterns (starter list)
/wp-admin/and?preview=true/login,/register,/account,/thank-you- Any LMS dashboards:
/dashboard,/my-courses,/profile - Checkout/cart flows (if using WooCommerce):
/cart,/checkout,/my-account - Quiz/lesson endpoints that update progress (varies by LMS; test carefully)
How to know you did caching correctly: log in as a student on a real device, complete a lesson, and confirm progress updates instantly across multiple pages. If anything looks stale, expand your cache exclusions.
How to size hosting for an LMS site (resources + growth)
“Traffic” alone is a weak sizing metric for LMS sites. A better model is:
- Concurrent logged-in users during peak periods (live class start, cohort launches)
- Uncached requests per minute (quizzes, dashboard loads, progress writes)
- Content weight (video hosting off-site vs on-site, number of plugins, page builder overhead)
- Commerce load (subscriptions, renewals, coupons, taxes)
| LMS Stage | Typical profile | Hosting focus | What usually breaks first |
|---|---|---|---|
| Starter | 0–200 students, low concurrency | Solid managed hosting + correct caching exclusions | Cheap shared hosting CPU limits, slow admin, slow checkout |
| Growing | 200–2,000 students, promotions + cohorts | More PHP capacity + better DB performance + staging discipline | Peak logins, quiz times, WooCommerce bursts |
| Scale | 2,000+ students, higher concurrency | Higher-tier resources + monitoring + edge protection | Resource contention, slow queries, plugin conflicts |
Shared Hosting vs VPS vs Managed WordPress Hosting for LMS
| Type | Pros | Cons (for LMS) | Best fit |
|---|---|---|---|
| Shared Hosting | Cheap, simple | Resource contention, inconsistent performance under logged-in load, limited tuning | Small hobby course sites only |
| DIY VPS | Control, scalable | You manage security, caching, backups, updates; misconfig breaks memberships easily | Teams with DevOps capacity |
| Managed WordPress | Speed + security + backups + support + staging | Costs more than shared; must still configure cache exclusions | Most serious course creators and membership businesses |
Why Kinsta fits many LMS sites
For LMS sites, Kinsta’s value proposition is not just “hosting.” It’s reducing operational risk while maintaining performance under dynamic usage.
- Cloudflare integration: security edge features and a global CDN layer can reduce latency for international students.
- Optional edge caching: useful for public marketing pages to speed up global delivery.
- Daily backups: plus add-ons for more frequent backups for continuously changing sites.
- Staging environments: safer updates for LMS + membership stacks.
- Performance observability: tools designed to help identify slow plugins, queries, and PHP processes.
Important nuance for LMS: edge caching is not a “cache everything” switch. Use it strategically for public pages; keep logged-in and transactional paths excluded from page caching.
Recommended Kinsta setup for LearnDash / TutorLMS / MemberPress
This is a practical setup blueprint that aligns with how course sites behave in the real world.
Step 1: Decide what gets edge/page cached
- Cache (public): blog posts, landing pages, sales pages, course catalog (if public and not personalized), static pages.
- Do NOT page-cache: dashboards, course progress pages, quizzes, member account pages, checkout/thank-you, login/register.
Step 2: Confirm cache exclusions for MemberPress + checkout flows
Make sure your membership URLs and checkout confirmations are excluded from caching. If your membership slugs differ (custom pages), include those exact slugs too.
Step 3: Use staging for every change (LMS updates can be fragile)
- Clone production to staging.
- Update WordPress + plugins + theme.
- Test: login, enroll, play lesson, complete quiz, checkout, renewal (if subscription).
- Only then push changes live.
Step 4: Backups aligned to “how often your LMS changes”
- If you update content weekly and sales are low, daily backups may be enough.
- If you run frequent enrollments, subscriptions, or multiple cohorts, consider more frequent restore points.
Step 5: Performance triage workflow (when “something feels slow”)
- Check if the slowdown is only logged-in pages or everywhere.
- Disable one new plugin (or rollback) if the issue started after an update.
- Identify slow requests (plugin/theme/API) before adding “more caching” blindly.
My recommended “starter” stack for LMS stability
- Video hosting: offload video to a dedicated video platform (avoid self-hosting large videos on WordPress hosting).
- Payments: keep your checkout plugin set lean; avoid stacking multiple overlapping payment plugins.
- Forms + email: use reputable providers; avoid bloated page builder forms for critical flows if possible.
- Plugins: keep the plugin count reasonable; remove what you don’t actively use.
Migration & go-live checklist (to avoid breaking logins/checkout)
If you’re moving an existing LMS site to a new host, most failures happen because cached pages, cookies, or URLs behave differently after migration. Use this sequence:
- Lower TTL (DNS) 24 hours before migration if possible.
- Freeze changes during the migration window (avoid new plugin installs or checkout changes).
- Test on staging or a temporary URL before switching DNS.
- Re-check permalinks and membership rules after migration.
- Purge caches (host cache + plugin cache + CDN cache) after DNS switch.
- Run a real student journey: register → buy → enroll → complete lesson → quiz → certificate (if applicable).
Do not skip this: Verify that login, account, and thank-you pages are excluded from caching immediately after go-live. Many “mystery” membership bugs come from stale cached versions of these pages.
FAQ
Do I need managed hosting for LearnDash or TutorLMS?
If your LMS is a business (paid courses, memberships, cohorts), managed hosting is usually worth it because it reduces operational risk and gives you staging/backups/support that matter when students are actively using the platform.
Can I use aggressive caching on my LMS site?
Yes—but only on public pages. Logged-in dashboards, quizzes, progress pages, checkout/account pages should not be page cached. Caching the wrong pages often causes “stale progress” and login/checkout oddities.
What pages should never be cached on MemberPress sites?
At minimum: login, register, account, thank-you, and other membership endpoints—plus any checkout-related URLs. If you use custom slugs, exclude those exact URLs as well.
Should I host course videos on my WordPress server?
Usually no. Video is bandwidth-heavy and can become expensive and slow under concurrency. It’s typically better to host video on a dedicated platform and embed it in your LMS.
How do I know if I need more resources?
Common signs: slow admin, checkout lag, timeouts during promotions, delays loading dashboards, and “server busy” behavior during logins. The underlying issue is often concurrency on uncached requests.
Does a CDN help LMS sites?
Yes for global delivery of static assets and public pages (marketing content). It helps less for personalized logged-in flows—those require strong origin performance and correct cache exclusions.
What’s the safest way to update an LMS site?
Use staging, update there first, test a full student journey, then push live. LMS stacks combine many moving parts (LMS + membership + payments + email), and staging prevents costly downtime.
Is Kinsta good for international students?
It can be, especially when your public pages and static assets are delivered efficiently and your origin remains stable for logged-in users. The key is configuring caching correctly for an LMS environment.
Key Takeaways
- LMS hosting is not normal WordPress hosting: logged-in users + progress tracking create dynamic load.
- Caching must be selective: cache public pages; exclude dashboards, quizzes, login/account/checkout pages.
- Staging and backups are essential: LMS updates can break enrollment, access rules, and payments.
- Plan sizing is about concurrency: peak logged-in usage matters more than raw pageviews.
- Kinsta is a strong managed option: particularly if you want speed, security, staging, and less operational stress.
Ready to upgrade your LMS hosting? If you want a managed platform built for performance and fewer headaches, start here:



