Headless CMS Migration Checklist: Before Moving from WordPress to Sanity, Strapi, or Directus
A production checklist for migrating from WordPress to a headless CMS: URLs, SEO, media, previews, permissions, rollback, and content models.
Headless CMS Migration Checklist
A CMS migration is not a copy-and-paste exercise. Posts are only one part of the system; URLs, redirects, media, previews, authoring permissions, structured metadata, and rollback plans are all part of the public product.
Map the content before moving it
Inventory every content type, field, relationship, status, and scheduled workflow. Decide which fields are editorial data and which are presentation details that should move into the frontend. Model reusable blocks deliberately rather than importing old HTML as an opaque blob.
Protect existing traffic
Export the current URL map, canonical URLs, titles, descriptions, robots rules, and redirects before launch. Preserve slugs where possible. For every changed URL, add a tested permanent redirect and verify that sitemaps, feeds, structured data, and internal links point to the new canonical address.
Treat media and previews as first-class work
Check image ownership, alt text, dimensions, focal points, documents, embedded video, and legacy URLs. A good preview must reflect the actual production route, including drafts, authentication, and localization. Do not leave this until after editors have started using the new CMS.
Test permissions and rollback
Run the migration against a production-like copy. Test the roles that real editors, reviewers, translators, and developers use—not only administrator access. Rehearse a rollback: who decides, what data is restored, and how search indexing and publishing are paused.
The safest launch is staged. Move a representative set of content, validate the full publishing path, compare SEO and page output, then migrate in batches with a clear rollback window.