The reason most people stay on an LMS they have outgrown is not love. It is migration fear.
Years of courses, hundreds of quiz questions, thousands of enrollment records and completion states: the thought of rebuilding that by hand, or worse, telling paying students their progress is gone, keeps a lot of course sites running on autopilot renewals they resent.
So let’s take the fear apart. This guide explains what actually moves in an LMS migration, what genuinely cannot, and the step-by-step process using Learnomy’s built-in migration wizard, which imports from LearnDash, Tutor LMS, and LifterLMS. (Disclosure: Learnomy is our plugin at Wbcom Designs. The migration mechanics below are factual either way.)
Why people switch in the first place
The common triggers we hear:
- Renewal math. Annual license plus the add-ons that made the base plugin useful plus WooCommerce extensions adds up. Our earlier breakdown of adding a course library without LearnDash’s price tag goes into this.
- Add-on fatigue. Certificate verification, question banks, and payment gateways living in third-party plugins with their own update cycles.
- Missing features that are core elsewhere: native checkout, verifiable certificates, exam-grade quizzes.
If you are still in evaluation mode, read the head-to-head comparisons first: Learnomy vs LifterLMS vs LearnDash. This article assumes you have decided to move.
What migrates, honestly
| Data | Migrates automatically? |
|---|---|
| Courses, sections/lessons/topics structure | Yes |
| Lesson content (text, video embeds, attachments) | Yes |
| Quizzes and questions | Yes, mapped to native equivalents |
| Enrollments | Yes, optional checkbox |
| Student progress / completion states | Yes, optional checkbox |
| Orders and payment history | Stays in the old system’s records; new sales run through the new checkout |
| Third-party add-on data (custom certificates, gamification points) | No; add-on-specific data has no universal format |
| Active subscriptions | Requires re-creating plans; existing billing agreements live at your payment gateway |
That last group is the honest part most migration marketing skips. Plan for it: keep read-only access to old order history, and map old membership levels to new plans before you flip DNS on the change.
The migration, step by step
Step 0: Full backup, staging site
Non-negotiable. Run the migration on a staging copy first (your host’s staging feature or a local clone). You want to discover the surprises where students cannot see them.
Step 1: Install Learnomy alongside your current LMS
The migration wizard reads the source plugin’s data directly from your database, so both plugins coexist during the move. Nothing is deleted from the source; the import copies data into Learnomy’s own tables.
Step 2: Open the Import wizard
Learnomy > Import detects installed source plugins: LearnDash, Tutor LMS, and LifterLMS each appear as a source option once detected. Pick your source.
Step 3: Choose what to bring
Courses, lessons, quizzes, and questions come by default. The important decision is the enrollments and student progress checkbox: tick it and your students’ completion states come along, so nobody restarts a course they were 80% through.
Step 4: Review, then run
The wizard shows what is coming over before it writes anything, then runs the import.
Step 5: Verify like a QA engineer
Spot-check, in this order:
- Curriculum shape: open the Course Builder on your three biggest courses; sections, lessons, and ordering should mirror the original.
- Quizzes: take one imported quiz end to end; check question types mapped correctly and scores record.
- A real student account: log in as (or view) a student who was mid-course; their progress percentage and next-lesson pointer should match the old system.
- Pricing: imported courses arrive as content; set each course’s pricing model in its settings (this is deliberate, so nothing goes on sale by accident).
Step 6: Recreate the money layer
Set up your gateways and membership plans in the new system (our selling without WooCommerce guide covers the whole flow), map old membership levels to new plans, and only then retire the old checkout.
Step 7: Redirects and cleanup
Old course URLs should 301 to their new equivalents (Learnomy’s URL bases are configurable under Settings > URLs & Pages, which often lets you keep identical slugs and skip redirects entirely). Once a week or two of parallel running shows no gaps, deactivate the old LMS. Keep its final database backup forever.
Rollback plan (you probably won’t need it, have it anyway)
Because the wizard copies rather than moves, rollback is simple at every stage before you retire the old plugin: deactivate Learnomy, and the source system is exactly as it was. This is also why the staging rehearsal matters: your one-way door is the moment new students start enrolling in the new system, not the import itself.
FAQ
Can I migrate from LearnDash without losing student progress?
Yes. Learnomy’s import wizard carries enrollments and completion states from LearnDash, Tutor LMS, and LifterLMS when you enable that option during import.
Will my old quizzes work after migrating?
Questions import into Learnomy’s native quiz engine and question bank. Standard types (multiple choice, true/false, short answer, essay) map cleanly; always test one quiz end to end on staging.
Do WooCommerce orders migrate too?
Order history stays in WooCommerce’s records for your accounting. Future sales run through the new checkout. Keep the old records accessible read-only.
How long does an LMS migration take?
The import itself is minutes even for large course libraries. Budget your real time for the verification pass and recreating pricing and membership plans: typically an afternoon on staging, then a short production window.