Use this checklist before choosing the migration path
A headless CMS migration is not complete when records appear in a new repository. It is complete when editors can publish confidently, existing discovery paths still work, and the audience receives the right content at the right URL.
I learned that distinction while moving a WordPress publication with more than 500,000 monthly unique visitors to Contentful for TaxAct. I was the sole developer and completed the migration in two months. The project reinforced a practical rule: decisions that remain vague before implementation become expensive exceptions during validation.
This headless CMS migration checklist is organized around those decisions. Use it during discovery, turn each answer into an owner and acceptance criterion, and keep the results with the migration backlog.
1. Define why the current system must change
Write the reason for migrating in operational language. “Modernize the stack” is not specific enough to guide tradeoffs.
Document:
- the publishing or maintenance problems the current CMS creates;
- who experiences each problem and how often;
- which business or audience outcomes the new system should improve;
- what must remain unchanged;
- what would make staying on the current platform the better decision.
This step establishes the boundary of the project. Headless architecture can improve structured reuse and separation of concerns, but it also introduces an application layer, preview requirements, integration work, and more ownership. The migration should solve a material problem rather than satisfy a preference for newer technology.
2. Inventory content, URLs, and editorial exceptions
Create an inventory before designing the target model. Include more than published articles.
Check:
- content types, entry counts, and publishing states;
- categories, tags, authors, campaigns, and related-content rules;
- images, documents, embeds, captions, and asset ownership;
- page titles, descriptions, canonical URLs, and structured data;
- current URL patterns, redirects, query parameters, and archived paths;
- scheduled content, previews, approvals, and role permissions;
- custom fields, shortcodes, HTML fragments, and one-off templates;
- duplicate, malformed, orphaned, or obsolete content.
Sample the difficult records, not only the newest and cleanest. Review a simple entry, a complex entry, a high-traffic page, an old record, an unpublished draft, and at least one known exception. Those samples expose rules that aggregate counts cannot.
For a deeper explanation of this discovery work, read Mastering the Headless Transition.
3. Model the decisions editors actually make
Do not translate every source table into a content type. Start with the information an editor needs to communicate and the relationships the audience experience depends on.
For every proposed field, decide:
- Is it required, optional, conditional, or calculated?
- Is it reusable across entries?
- Does it need validation, guidance, or a default?
- Can it be localized or scheduled independently?
- What should happen when migrated content has no value?
- Which presentation decisions belong in the frontend instead?
Then prototype representative entries in the target CMS. Ask an editor to create, preview, revise, schedule, and publish them. A technically elegant model that slows routine editorial work is not a successful model.
4. Specify the migration pipeline and identity rules
Treat the migration as a repeatable data pipeline:
- Extract source records and preserve an untouched snapshot.
- Normalize dates, identifiers, markup, encodings, and inconsistent values.
- Transform records into the approved target model.
- Load assets and entries with stable identifiers.
- Link references after their target records exist.
- Validate counts, fields, relationships, assets, and rendered output.
Decide how reruns behave. A rehearsal should update the same target entry rather than create a duplicate. Record the source identifier, target identifier, transformation version, outcome, and error for each item.
Also define failure handling. One malformed embed should be reported with enough context to fix the rule; it should not silently disappear or force the entire migration to be repaired manually.
5. Protect search visibility before launch
Search continuity belongs in the migration plan, not a post-launch ticket.
Prepare:
- a source-to-destination map for every indexable URL;
- explicit decisions to preserve, redirect, consolidate, or retire each path;
- redirect rules for patterns plus a reviewed exception list;
- canonical behavior in the rendered application;
- preserved or deliberately rewritten titles and descriptions;
- robots directives and sitemap inclusion rules;
- structured-data requirements for each public content type;
- updated internal links that point directly to final destinations;
- a plan to monitor crawl errors, indexing, and important landing pages.
Test redirects as a dataset. Confirm status codes, destinations, chains, loops, query-string behavior, and representative legacy URLs. A redirect that technically resolves but lands on an irrelevant page does not preserve the visitor’s intent.
Use the CMS Migration Redirect Map Guide when you are ready to build, review, and test that dataset.
6. Define preview, workflow, and governance
Editors need to understand content before it becomes public. Verify that preview renders draft content with the same components, routing rules, responsive behavior, and related entries used in production.
Decide:
- who can create, review, publish, unpublish, and change the model;
- how drafts and scheduled entries appear in preview;
- how broken references or missing required assets are communicated;
- how model changes are proposed, tested, documented, and released;
- how editorial teams will report migration defects;
- who owns the CMS, frontend, integrations, and analytics after launch.
Governance should make common work easy and risky work deliberate. It should not require a meeting for every small edit, nor allow an unreviewed schema change to break hundreds of pages.
7. Rehearse cutover and rollback
Run the complete migration before the production cutover. Measure duration, identify manual steps, and record every failure. Rehearse again after fixing the rules.
The cutover plan should name:
- the content freeze or delta-migration strategy;
- the final extraction time and responsible owner;
- deployment order for CMS, application, redirects, and configuration;
- DNS or caching changes, if any;
- smoke tests for critical pages and editorial actions;
- launch communication and escalation paths;
- conditions that trigger rollback;
- the exact rollback action and who can approve it.
Rollback is not simply “restore the old site.” Consider content created during the transition, cache state, DNS timing, webhook side effects, and whether editors can safely resume work in the previous system.
8. Validate records, workflows, and audience experience
Use three layers of acceptance:
Data validation
- counts reconcile by content type and status;
- required fields and references are present;
- assets resolve and retain useful metadata;
- known transformations produce the expected output;
- failures are documented and dispositioned.
Editorial validation
- editors can find, create, preview, revise, schedule, and publish content;
- permissions match real responsibilities;
- validation messages explain how to recover;
- documentation covers the new workflow and known boundaries.
Audience validation
- important and representative URLs render correctly;
- redirects preserve intent;
- navigation, search, related content, and forms work;
- pages remain accessible, responsive, and performant;
- metadata and structured data appear in rendered HTML.
Automated checks provide breadth; reviewed samples provide judgment. Use both.
Turn the checklist into release criteria
A checklist only reduces risk when each item becomes a decision with evidence. Assign an owner, due date, and acceptance signal. Link inventories, model diagrams, redirect maps, validation reports, and runbooks directly from the release plan.
The goal is not a migration with zero surprises. It is a migration where the important risks are visible, rehearsed, and recoverable—and where the new publishing system is genuinely easier to operate than the one it replaces.
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.