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 ElasticsearchWoo. 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

SituationPlan instinct
Free course, few PDFsStarter $9 if one site / 2 GB
Paid courses, testing updatesPro $30 (staging, cron, 10 GB)
Several course brandsScale $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

  1. WordPress + LMS plugin
  2. Vimeo (or similar) for private videos
  3. Woo or LMS payments
  4. Backup plugin → cloud
  5. Cache only marketing pages
  6. Real cron on Pro+
  7. Custom domain HTTPS — custom domain
  8. 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:

  1. Land on the sales page over HTTPS on the custom domain.
  2. Purchase or register; receive the email (SMTP must work).
  3. Log in; open lesson one; confirm the video embed plays without exposing a public download URL you did not intend.
  4. Complete a quiz; confirm progress saves.
  5. Log out; confirm lesson URLs do not leak full content to anonymous visitors.
  6. 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.