Migrating content between fundamentally different CMS platforms (not just versions of the same platform) requires careful planning around content mapping, URL preservation, and data integrity. This guide covers a systematic approach.
Building on General Migration Guidance
See How to Migrate from WordPress to Another CMS and Common CMS Migration Pitfalls and How to Avoid Them for foundational context — this article focuses specifically on the content mapping and technical transfer mechanics applicable across various platform combinations.
Step 1 — Audit and Document Current Content Structure
Before migrating, thoroughly document your source platform's content types, fields, taxonomies, and relationships — you need a clear picture of what exists before you can plan how it maps to the target platform's different content model.
Step 2 — Map Content Types Between Platforms
| Source Concept | Target Platform Equivalent |
|---|---|
| Source: Custom post type | Target: Custom content type/entity bundle |
| Source: Category/tag taxonomy | Target: Taxonomy term reference field |
Different platforms model content differently — a direct 1:1 mapping isn't always possible; document where genuine adaptation is needed rather than assuming a clean automatic translation.
Step 3 — Export Content from the Source Platform
drush export:content --format=json > content-export.json
Most platforms offer some form of content export (native tools, or via direct database query if needed) — export to a structured, intermediate format (JSON/CSV) that you can then transform for the target platform.
Step 4 — Transform Content to Match Target Structure
const transformedContent = sourceContent.map(item => ({
title: item.post_title,
body: convertContentFormat(item.post_content),
published_date: item.post_date,
taxonomy: mapCategories(item.categories),
}));
A transformation script converts source data structure to match your target platform's expected import format — the specific transformation logic depends entirely on your specific source/target platform combination.
Step 5 — Import into the Target Platform
Use the target platform's native import tools/API where available, or direct database insertion via its provided APIs (never direct raw database manipulation bypassing the platform's own data layer, which risks data integrity issues).
Step 6 — Preserve URL Structure or Set Up Redirects
See How to Set Up Redirects and Rewrites for a Static Site for the general redirect principle, applicable here too — either preserve the exact same URL structure in the new platform, or build a comprehensive redirect map from old URLs to new, preserving SEO value and avoiding broken links for existing bookmarks/backlinks.
Step 7 — Migrate Media/Assets
Don't forget uploaded images/files — these need to be transferred and, if URL structure changes, referenced correctly in the migrated content; a common oversight is migrating text content while leaving media references broken.
Step 8 — Verify Content Integrity After Migration
Systematically spot-check migrated content against the source — verify formatting, embedded media, and metadata transferred correctly; don't assume a successful import process means genuinely correct content without actual verification.
Step 9 — Test Thoroughly Before Cutover
See How to Migrate an E-commerce Store to a New VPS Without Downtime for related migration cutover principles — test the migrated site thoroughly on the new platform before pointing your live domain at it.
Common Errors
Rich text content displays with formatting issues after migration — different platforms often use different rich text/HTML conventions internally; verify your transformation logic correctly converts between source and target formatting conventions, not just transferring raw text.
Continue Reading
- How to Migrate from WordPress to Another CMS
- Common CMS Migration Pitfalls and How to Avoid Them
- How to Set Up Redirects and Rewrites for a Static Site
Browse more articles in CMS Platforms Beyond WordPress.