You built the course. You recorded the videos. You configured LearnDash or LifterLMS. You launched to your waitlist.
Then five hundred students hit the login page at once and the site went down.
This is not a course platform problem. It is a hosting problem. Every enrolled student logged in and accessing a lesson bypasses page caching entirely. Each one consumes a PHP worker for the duration of their request. When the worker pool runs out, new requests queue. When the queue fills, the site returns errors.
The hosting providers below are chosen because they let you prevent this before it happens, not after.
What Course Creators and LMS Operators Actually Face
You are not running a content blog where anonymous visitors hit a cached page. You are running a platform where every enrolled student is authenticated, every lesson completion triggers database writes, every quiz submission runs server-side grading logic, and every certificate generation spawns a background process that can take 60 seconds.
The database grows differently too. LearnDash creates custom tables for course access, lesson completion, quiz scores, and assignment submissions. A platform with 5,000 enrolled students across 20 courses accumulates hundreds of thousands of rows in these tables. Without proper indexing and Redis caching, every lesson page load queries all of them.
What LMS Hosting Actually Requires
Redis object caching for LMS-specific queries. LearnDash, LifterLMS, and TutorLMS all run repeated database queries checking course access, lesson completion status, and quiz scores. Redis caches these lookups. Without it, every lesson load queries the database multiple times for the same data.
PHP workers sized for concurrent enrolled students. LMS plugins are more PHP-intensive than standard WordPress. Course completion checking, certificate generation, and assignment submission processing all consume significant PHP execution time. Worker pool exhaustion during live cohort starts is the most common LMS hosting failure.
Generous PHP execution time. Certificate PDF generation, bulk grade exports, and course completion emails triggered by a student finishing a module can each take 30 to 90 seconds. Default PHP timeouts kill these silently.
Reliable outbound SMTP. LMS platforms send transactional email heavily: enrollment confirmation, lesson completion, quiz results, certificate delivery, and password reset. Host-level outbound connection restrictions break these.
Database tables configured for LMS query patterns. LearnDash creates numerous custom database tables. LifterLMS creates its own tables. These require proper indexing beyond what the plugin installs by default.
Media storage strategy for course content. Course images, downloadable PDFs, and video thumbnails accumulate per course. A platform with 50 courses and 200 lessons can easily have 10,000 media files. Storing these in object storage rather than on-server keeps the instance storage footprint manageable.
Quick Comparison
| Provider | Redis | PHP Timeout | PHP Workers Config | LMS Specialist | Best For |
|---|---|---|---|---|---|
| Liquid Web / Nexcess | Yes | Configurable | Configurable | Yes | High-enrollment enterprise LMS |
| Kinsta | Built-in | 300s default | Configurable | No | Managed large course platforms |
| Cloudways | Built-in | Configurable | Configurable | No | Growing course platforms |
| WP Engine | Available | Standard | Standard | No | Enterprise course platforms |
| SiteGround | No default | Limited | Limited | No | Budget starter LMS |
| InMotion | Available | Configurable | Configurable | No | US-based LMS with cPanel |
Liquid Web / Nexcess
Who it is for: Professional course creators and educational institutions running high-enrollment LearnDash or LifterLMS installations where cohort launches drive simultaneous high load.

Liquid Web‘s Nexcess managed WordPress hosting is configured for LMS workloads at the platform level. Their LearnDash-specific managed hosting tier includes database optimisation for LearnDash’s custom tables, PHP-FPM configuration for the authentication-heavy query patterns, and pre-configured Redis object caching.
The practical difference during a cohort launch: when 500 students start a new course module simultaneously, the LMS platform continues responding because the infrastructure was sized and configured for that load pattern. On underpowered hosting, the same event produces PHP worker exhaustion and timeouts within minutes of launch.
Nexcess’s MU plugin configuration disables plugins that conflict with performance and caching on LMS environments. This proactive configuration prevents the common pattern where a performance-impairing plugin is discovered only after a slow-load support ticket is raised.
Plans start at: $19 per month (managed WordPress, scales to dedicated LMS plans)
Kinsta
Who it is for: Course creators and LMS businesses that need managed infrastructure for platforms with large enrolled student bases, complex course structures, and high simultaneous access during cohort events.

Kinsta‘s configurable PHP worker count is the primary LMS differentiator. Before a cohort launch, increase the PHP worker count to match the expected concurrent student load. After the launch peak, reduce it to normal levels. This load-aware configuration prevents the worker exhaustion that collapses LMS sites during high-concurrency events.
The built-in Redis object caching handles the LMS-specific query patterns. LearnDash’s lesson completion lookups, quiz score queries, and course access checks are among the most repetitive query patterns in WordPress plugins. Redis caching these eliminates the database load that grows proportionally with enrolled student count.
Kinsta’s 300-second PHP execution time default covers certificate generation and bulk administrative operations that standard 30-second timeouts kill.
Cloudways
Who it is for: Course platform operators who want to scale server resources as the course catalogue and enrolled student base grows, without platform migration at each growth stage.

The vertical scaling capability of Cloudways is particularly relevant for LMS platforms. A new course platform launching with 200 enrolled students runs on a $22 per month server. After growth to 2,000 students, the server resizes to $80 per month without migration. After 10,000 students, the server resizes again or moves to a load-balanced configuration.
PHP execution time and memory limits are configurable through the Cloudways dashboard. For LMS operations that require these changes, not having to open a support ticket to adjust PHP settings is meaningful for responsive operational management.
WP Engine
Who it is for: Enterprise educational organisations, corporate training platforms, and ed-tech companies that need SLA-backed managed hosting with compliance documentation and dedicated enterprise support.

WP Engine‘s enterprise tier provides the documentation and contractual commitments that procurement processes at larger organisations require. For corporate training platforms that must demonstrate service uptime commitments to internal stakeholders, or educational institutions with formal vendor assessment processes, WP Engine provides the documentation infrastructure that other managed hosts do not.
Their Developer Portal provides API access to automate environment management, which is relevant for ed-tech companies building automated student environment provisioning alongside their course platform.
SiteGround
Who it is for: Individual course creators and solopreneurs launching their first LMS site on a budget before scaling to a more powerful platform as the student base grows.

SiteGround managed WordPress handles small LMS installations with LearnDash or LifterLMS at the budget tier. For a course creator with one or two courses and under 100 simultaneous enrolled students, SiteGround’s GoGeek plan with SuperCacher provides sufficient performance.
The staging environment on SiteGround allows testing new course additions and plugin updates before publishing to enrolled students. For course creators managing their own platform without dedicated technical staff, this reduces the risk of breaking the live course environment.
At scale, SiteGround shared hosting will hit limits. The migration path to Cloudways or Kinsta when growth requires it is the realistic trajectory for successful course platforms.
Plans start at: $2.99 per month (StartUp), GoGeek at $7.99 per month includes staging
InMotion Hosting
Who it is for: US-based LMS operators who need cPanel hosting with configurable PHP settings and solid support for LifterLMS or LearnDash installations at a mid-range price point.

InMotion Hosting Business Hosting plans include configurable PHP settings through cPanel, solid uptime, and US-based support with technical depth. For LMS operators who prefer cPanel for their hosting management and need a US-based provider with good support for WordPress and LMS plugin questions, InMotion provides a reliable option.
Their NVMe Pro plans on the higher business tiers improve database query performance for LMS custom table queries.
Plans start at: $3.49 per month (Core, NVMe Business from $12.99 per month)
Video Hosting Strategy for Course Platforms
Never host course videos on your web server. A 50-lesson course at 720p generates roughly 15GB of video. A platform with 20 courses holds 300GB of video. During a cohort launch where 500 students stream simultaneously, the bandwidth cost alone would exceed your monthly hosting bill in hours.
The correct architecture: host video on a dedicated video platform and embed it in your LMS.
Bunny Stream, Vimeo for Business, and Wistia are the primary options for course video hosting. They handle bandwidth, CDN delivery, adaptive bitrate streaming, and access control. Your hosting handles course structure, student progress, and access control logic. The two systems communicate but the bandwidth load sits on the video platform.
This separation keeps your hosting cost proportional to student interactions rather than video bitrate. Your server handles quiz submissions and lesson completions. The video CDN handles the gigabytes.
Agencies building course platforms for clients face the additional challenge of managing multiple LMS deployments alongside other project types. The multi-client workflow considerations are covered in the agencies and client sites guide.
Course platforms that also run membership access for community features alongside course content share hosting requirements with membership sites. The overlap in authenticated session handling and PHP worker sizing is covered in the membership site hosting guide.
Frequently Asked Questions
Why does my course platform work fine in beta and fail on launch day?
Beta testing typically runs with 20 to 50 testers who access the platform spread across days and weeks. Launch day concentrates hundreds of logins into the first 30 minutes as students open the launch email simultaneously. The PHP worker pool, sized for beta load, exhausts in minutes. The fix is increasing the worker count before the launch email goes out. Kinsta and Cloudways both allow this through their dashboards without a support request.
Which LMS plugin puts the least load on the server?
LearnDash and LifterLMS are both optimised enough that the hosting configuration matters more than plugin choice at scale. TutorLMS is lighter with fewer database tables, suitable for platforms that need fewer advanced features. The plugin that creates the most server load is the one running custom queries without proper caching. All three benefit from Redis object caching equally. Choose based on features, not assumed performance difference.
How do I fix certificate generation timing out?
Certificate generation via a PDF library (TCPDF, DOMPDF) is the most common PHP timeout trigger in LMS platforms. Increase PHP max_execution_time to at least 300 seconds on your host. If the host does not allow this, use a certificate plugin that generates PDFs asynchronously via a background queue rather than in the request cycle. Alternatively, trigger certificate generation via a webhook on course completion and use a serverless function for the PDF creation step.
How much database storage should I plan per student?
Each enrolled student generates roughly 40 to 60 database rows across LMS-specific tables per course completion. A platform with 10,000 enrolled students across 10 courses holds approximately 400,000 to 600,000 rows in LMS tables. This is manageable on any VPS-class hosting with correct indexing. The rows that accumulate fastest are quiz attempts: a student who retakes quizzes generates a row per attempt. Set a retake limit or archive old attempts periodically to control table growth.
Can I run a course platform on shared hosting?
For testing and early-access courses with under 50 students accessing at different times, yes. For any public launch with a defined cohort start date, no. The simultaneous login spike when cohort access opens exceeds shared hosting PHP worker capacity within minutes. Shared hosting PHP-FPM pools are shared across hundreds of accounts. There is no configuration option that gives your account dedicated workers. Start on a managed VPS or managed cloud platform before your first real public launch.



