A migration is a publishing-system redesign
When I moved a WordPress blog serving more than 500,000 monthly unique visitors to Contentful for TaxAct, I was the sole developer and completed the work in two months. The coding mattered, but the highest-risk decisions happened before the migration scripts ran.
A CMS contains more than articles. It contains editorial habits, URL history, relationships, embedded assets, author data, metadata, and exceptions accumulated over years. Moving the rows while ignoring that system is how a technically successful launch becomes an editorial or search failure.
Start with an inventory, not a new schema
Before designing content types, identify what exists:
- content types and approximate volume;
- URL patterns and redirects;
- categories, tags, authors, and other relationships;
- embedded media and downloadable assets;
- SEO titles, descriptions, canonical rules, and structured data;
- publishing states, scheduled content, and approval steps;
- malformed or duplicated data that should not move unchanged.
The inventory turns assumptions into migration rules. It also exposes the difference between an intentional pattern and a one-off workaround.
Model the editor’s decisions
A good headless model is not simply the old database expressed in JSON. It should represent the decisions editors repeatedly make.
For each field, ask:
- Is this information meaningful outside the current template?
- Should it be reusable or unique to the entry?
- Does an editor need a constraint, a default, or an explanation?
- What happens to existing content when this field is missing?
This is where technical architecture and content strategy meet. Over-modeling creates a slow form with too many choices. Under-modeling recreates an unstructured page builder that is hard to govern.
Build the migration as a repeatable pipeline
I prefer a pipeline that can be run more than once:
- Extract source records without mutating them.
- Normalize inconsistent markup, dates, identifiers, and relationships.
- Transform source content into the target schema.
- Load entries and assets with stable identifiers.
- Link references only after their target records exist.
- Validate counts, required fields, URLs, relationships, and representative pages.
Repeatability matters because the first complete run should be treated as a rehearsal. A deterministic pipeline makes it possible to fix rules and rerun safely instead of repairing hundreds of entries by hand.
Treat redirects and metadata as product requirements
Every existing indexable URL needs a deliberate outcome: preserve it, redirect it, consolidate it, or retire it. That mapping should be tested before launch and monitored afterward.
The same is true for titles, descriptions, canonicals, image metadata, and structured data. These are not cleanup tasks after the “real” migration. They are part of preserving how people and search systems discover the content.
Validate with three perspectives
Technical validation asks whether the records migrated correctly. Editorial validation asks whether a person can find, understand, update, preview, and publish them. Audience validation asks whether the final page is fast, readable, accessible, and reachable at the expected URL.
A strong launch needs all three. I use representative samples from simple, complex, old, new, high-traffic, and edge-case content rather than checking only the easiest articles.
The practical lesson
The safest CMS migrations are designed around continuity: continuity of URLs, meaning, editorial work, and audience trust. The technology should make that system easier to operate after launch—not merely newer.
When you are preparing an actual project, use the Headless CMS Migration Checklist to turn those principles into owners, artifacts, and release criteria.
Put the thinking to work
Turn this idea into a practical next step.
Start with a small tool, prompt pack, or worksheet. If your situation needs more than a template, bring me the messy version.
Want the next useful field note?
Get practical decisions for websites, content systems, UGC, and technical delivery.
No spam. Unsubscribe at any time.