Step-by-Step Guide: Migrating Courses and Quizzes from Canvas to Moodle.
A field-tested technical manual for extracting Common Cartridge archives, translating QTI 2.1 question banks, and restoring courses cleanly into Moodle with zero data loss.
Step 1: Exporting Canvas Common Cartridge (.imscc) Packages
Canvas allows export of entire courses using the IMS Common Cartridge standard (1.1, 1.2, or 1.3). For bulk institutional migrations, automated extraction via the Canvas REST API is significantly faster than manual UI clicks:
Step 2: Parsing & Normalizing QTI 2.1 Quiz Question Banks
The most frequent failure point in Canvas migrations is quiz question syntax. Canvas stores quiz items in QTI 1.2 or 2.1 format within the `.imscc` zip container (`non_cc_assessments/` directory).
Key conversion items to verify:
- LaTeX & MathJax Delimiters: Canvas often wraps formulas in proprietary tags. Replace them with standard
\( ... \)or\[ ... \]MathJax delimiters. - Multiple Dropdown & Matching Questions: Ensure sub-question weights in Moodle match Canvas point values.
- Image File Paths: Update relative image paths inside quiz questions to point to the restored course files directory.
Step 3: CLI Batch Course Restoration into Moodle 4.5
Rather than uploading multi-gigabyte cartridges through the Moodle web interface (which risks PHP execution timeout limits), use Moodle's built-in CLI backup and restore scripts:
Step 4: Gradebook Aggregation & Scale Mapping
Verify that Canvas grading schemes (e.g. Weighted Assignment Groups) are properly mapped to Moodle's Weighted Mean of Grades or Natural Weighting aggregation methods in the Moodle Gradebook Setup (course/grade/edit/tree/).
Step 5: Post-Migration Performance Tuning
Once courses are populated, re-index Moodle's search database, purge caches cleanly, and verify OPcache settings:
Need Enterprise Migration Support?
LMSOps manages institutional migrations end-to-end with zero data loss, guaranteed timelines, and staging validation.