Moving pages from one system to another sounds like a copy job. It’s closer to moving house in a building where every room is wired to the others: authors attached to posts, posts attached to categories, products attached to galleries and spec sheets. CMS content migration succeeds or fails on whether those connections survive the trip.
Pages are the easy part; relationships are the cargo
The text of an article usually moves without drama. What goes missing is everything around it: the author profile, the topic tags, the related-reading list, the reusable call-to-action block, the image that carried a specific caption and alt text, the menu position. In many projects, these are exactly the pieces nobody wrote down, because the old system handled them silently. At Rise Marketing, we begin any CMS content migration by asking what the old platform was doing automatically.
Decide what shouldn’t make the trip
Moving house is the best time to stop carrying boxes you never open. Before mapping anything, walk through the inventory and mark what is outdated, duplicated or no longer true. Archive the pages nobody has visited in years, merge near-duplicates, and retire the product entries for things you stopped selling. A leaner CMS content migration is faster to script, cheaper to test and leaves editors with a cleaner system on day one.
Map the model before moving any content
Take inventory of types and fields
List every content type (article, product, team member, event) and every field each one holds. Include the custom fields a developer added years ago. Count entries too. Knowing you have four hundred team members instead of twelve changes the tooling you’ll need. Note which fields are mandatory in the new system too, because an empty value that was fine before may now block a save.
Decide the fate of each old field
Each field gets one of four outcomes: it moves as is, it splits, it merges with another, or it retires. A single address textbox becomes street, city and postcode. A free-text “related links” box becomes real references between entries. Writing those decisions in a mapping sheet makes the plan reviewable by people who don’t read code.
Plan for the body text
Rich text is where tidy plans meet reality. Shortcodes, inline styles, page-builder blocks and embedded forms rarely translate cleanly. Decide for each pattern whether it becomes a structured component, clean rich text, or something editors rebuild by hand. Keep a short list of your ten ugliest pages and test them first; they teach you more than a hundred clean ones.
Keep media and its metadata together
Images and documents carry captions, alt text, credits and folder structures that the new system may store differently. Move the files and their descriptive fields as a pair; otherwise you’ll end up with thousands of images that no longer know what they show.
Move relationships in two passes
Create every entry first, keeping a lookup table of old identifiers and new ones. Then run a second pass that links authors, categories, related items and media using that table. Trying to do both at once is how you end up with posts pointing at authors who haven’t been imported yet. The order holds in Craft CMS, WordPress and everything in between, because relational content behaves the same way on every platform. A reviewed plan is what keeps CMS content migration from turning into a guessing game.
Rehearse with a pilot batch
Import fifty entries that represent your messiest content. Compare counts, open ten at random, and check relationships in both directions: does the author page list the post, and does the post show its author? Let two editors work in the pilot and note where they get stuck. At Rise Marketing, we ask them to publish and edit, not just read, because an entry that can’t be changed is only half moved. Agree on a content freeze for the real run so nothing changes mid-transfer. A pilot is the cheapest insurance any CMS content migration can buy.
Finish with the people who will use it
A migration isn’t done until editors can publish on day one without a developer on call. Run a short training session, tidy leftover duplicates, and archive the old export somewhere safe. If your build sits on PHP, our PHP development team can adapt the import scripts to the exact fields in play, and our post on WordPress development best practices helps if WordPress is the destination.
Before anyone writes a script
If you’re staring at a legacy system and wondering how much of it will survive, discuss the move with us before any scripts are written. Our developers at Rise Marketing keep the lookup table from the first import through the final audit, so every relationship can be traced. Structured content migration done well is planned on paper long before the first import runs, and the same is true of every CMS content migration we’ve seen go smoothly.