Online course sites on WordPress usually combine an LMS plugin (LearnDash, LifterLMS, Tutor, etc.), a membership or Woo checkout layer, and a pile of video. WPHost can host the WordPress/LMS PHP application on PHP 8.4 with MySQL. We do not transcode lessons, operate a video CDN, or store a semester of 4K masters in your plan quota as a smart idea.
Video belongs on a video host (Vimeo, Mux, YouTube unlisted, Cloudflare Stream, etc.). This origin serves PHP, HTML, and modest uploads.
What the origin is responsible for
- Course outlines, lessons as WP posts/custom types
- User accounts and progress in MySQL
- Quizzes, certificates, drip logic as plugin code
- HTTPS and wp-admin
- Checkout if you sell via Woo or the LMS’s own payments
What the origin should not shoulder alone: multi-GB MP4 libraries delivered naively through wp-content/uploads without a media platform. Disk plans are 2 / 10 / 30 / 100 GB — image-heavy — and bandwidth physics still apply. No built-in CDN product on WPHost.
LMS plugins are plugins
Install WordPress via zip (no one-click), then install the LMS from wp-admin. We do not auto-update LearnDash or anyone else. Test updates on staging (Pro+) with a DB copy when you need real courses. Membership overlap and cache footguns: membership sites.
Selling seats
WooCommerce + LMS is common. Small catalogs fit our Woo honesty: can run; no checkout SLA, no PCI product, no Elasticsearch — Woo. Use hosted payment fields. Cron on Pro+ for order and drip tasks — managed.
Email: receipts and “lesson unlocked” messages need SMTP/ESP. No email hosting here.
Performance pattern for course sites
Anonymous marketing pages: cacheable — fast. Logged-in lesson pages: usually bypass full-page cache. Do not cache personalized progress HTML. Prefer lightweight themes over page-builder cathedrals for the student UI.
PHP 8.4 helps dynamic LMS queries. It will not fix a 800 MB lesson file uploaded to the media library.
Storage and backups
- PDFs and slide decks: OK in uploads if sized sanely
- Videos: external host; embed players
- Backups: database holds progress — deploy history does not — SSL and backups
Before LMS major versions, backup + staging. Students notice broken progress tables.
Plan guidance
| Situation | Plan instinct |
|---|---|
| Free course, few PDFs | Starter $9 if one site / 2 GB |
| Paid courses, testing updates | Pro $30 (staging, cron, 10 GB) |
| Several course brands | Scale $65 / Business $130 |
Trial ~1 day. No Softaculous. No cPanel. No nonprofit course coupon. GitHub per-person. Teams on Business for staff — agencies, freelancers.
Pedagogical stack example
- WordPress + LMS plugin
- Vimeo (or similar) for private videos
- Woo or LMS payments
- Backup plugin → cloud
- Cache only marketing pages
- Real cron on Pro+
- Custom domain HTTPS — custom domain
- 2FA for admins — secure
Greenfield install: how to host. Launch checklist: how to launch.
When WordPress LMS is the wrong tool
- You need native mobile apps with offline video as the core product
- You need enterprise SSO/compliance as a host SKU
- You expected the host to transcode and caption everything
- You want concierge plugin updates under contract
Walk-away framing: WordPress hosting guide. Managed definition: what is managed.
Student experience checklist
Before you sell the first cohort, walk the path as a brand-new student on a phone:
- Land on the sales page over HTTPS on the custom domain.
- Purchase or register; receive the email (SMTP must work).
- Log in; open lesson one; confirm the video embed plays without exposing a public download URL you did not intend.
- Complete a quiz; confirm progress saves.
- Log out; confirm lesson URLs do not leak full content to anonymous visitors.
- Log in as a second student; confirm no cache bleed from the first.
If any step fails, fix it on staging before ads. Launch discipline: how to launch.
Cohorts, drips, and timezones
Drip schedules and cohort unlocks depend on cron. Traffic-driven wp-cron on a course site that students visit in bursts can delay unlocks oddly. Pro+ real cron is the grown-up setting. Timezone in Settings → General should match how you advertise “unlocks Monday 9:00.” Wrong timezone plus drip rules creates support mail that looks like a hosting outage and is not.
Instructor workflows and roles
Give instructors editor-like caps your LMS documents — not full administrator — unless they truly need plugin access. Administrators who install random “course growth” plugins create update debt you will pay during semester. Keep a lean stack: LMS, backup, SMTP, maybe SEO on marketing pages, maybe Woo. Delete the rest.
Agencies building course sites for clients should put update responsibility in the SOW — agencies. Freelancers: do not host five course brands on one Starter slot — freelancers.
Migrating courses
LMS data is highly relational. Migrate files + full DB; verify lessons, media embeds, and a sample student’s progress on preview. Reconnect video host API keys. Re-test webhooks. Then flip DNS. Never assume the media library holds the videos if you already offloaded — know where the bytes live.
Certificates and student trust
Students paste course URLs into chat apps. If the custom domain shows a certificate warning, refund requests arrive before lesson one. Finish DNS and https siteurl/home before opening enrollment — custom domain. Soft-launch with a free module to validate SMTP and embeds — how to launch.
Copyright: keep course PDFs behind membership gates; do not leave workshop ZIPs in a public uploads URL. Offload large downloads when possible. Security habits still apply — secure.
wp-config and installer notes for course sites
Install from a WordPress zip on a PHP site (not a static site). Create MySQL in the dashboard; put the four credentials into wp-config.php or env-driven defines. Generate real salts before the site takes payment. Set DISALLOW_FILE_EDIT to true on production. Finish setup on the HTTPS preview so you are not debugging DNS and LMS webhooks at once — how to host, setup.
After the custom domain verifies, update WordPress Address and Site Address to HTTPS. Broken URLs break email deep links into lessons. Deploy history restores files if a bad plugin zip lands; it does not restore student progress tables — schedule database backups.
Cohort launch week
Freeze plugin updates during the first teaching week unless a security emergency forces your hand. Use staging (Pro+) for experiments. Confirm cron runs so drips and Woo subscriptions fire without traffic. Keep video on a video host; your origin stays HTML, PHP, and receipts. When the cohort ends, export a DB dump before major LMS upgrades.
Assessments and cheating realities
Quiz plugins run on PHP; they are not a proctoring service. For high-stakes exams, use specialized tools. For course comprehension checks, WordPress LMS quizzes are fine. Back up before changing quiz plugins mid-cohort. Progress loss creates louder tickets than a slow homepage.
FAQ
Can I upload all my videos to WPHost?
Technically until disk fills; practically you should use a video host. We do not transcode.
Do you provide Zoom or webinar infrastructure?
No. Embed or link out.
Will page caching break lesson progress?
It can if it caches logged-in pages. Exclude member sessions.
Is LearnDash “supported”?
It can run as PHP. We do not vendor-certify every LMS release. Test on staging.
Do you auto-update LMS plugins?
No. You update in wp-admin after backups.