Plan a ButterCMS migration with a three-phase framework (plan, execute, verify), pre/post checklists, risk assessment strategies, and timeline guidance.
Migrating from a specific platform? We have step-by-step guides for Contentful and WordPress.
Your objective is to properly plan what needs to be migrated, how the migration will be performed, and how success will be verified.Key planning activities:
Define migration goals - What do you want to achieve with the new CMS?
Audit existing content - Create a complete inventory of pages, posts, media, and metadata
Map content to ButterCMS - Identify how content will fit into Pages, Collections, and Blog Posts
Plan for SEO preservation - URL structure, redirects, meta tags
Set acceptance criteria - How will you verify the migration was successful?
Below is an example content inventory for a hypothetical site using WordPress and
how those items might map to ButterCMS. For information on the various content types,
check out our core concepts article.
Content model design, schema creation, mapping documentation
Development
API integration, frontend updates, migration scripts
Content Migration
Data transfer, validation, review
Testing
QA, UAT, performance testing
Launch
Go-live, monitoring, optimization
Break your migration into smaller milestones. This reduces risk and allows for course corrections along the way.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ButterCMS Docs","colors":{"primary":"#0505e5","light":"#5050ff","dark":"#0000a0"},"logo":{"light":"https://cdn.buttercms.com/nDD3LeMXQxiR9aJRpRLE","dark":"https://cdn.buttercms.com/nDD3LeMXQxiR9aJRpRLE","href":"https://buttercms.com"},"favicon":"https://mintcdn.com/buttercms/ADHjuou5Js2KRBnv/favicon.svg?fit=max\u0026auto=format\u0026n=ADHjuou5Js2KRBnv\u0026q=85\u0026s=719e07eca4e3b3446e3ba6621a6095f0","navbar":{"links":[{"href":"https://buttercms.com/sales/","label":"Request a Demo"}],"primary":{"type":"button","label":"Start for Free","href":"https://app.buttercms.com/join/"}},"seo":{"metatags":{"canonical":"https://buttercms.com/docs","robots":"noindex, nofollow"}},"integrations":{"gtm":{"tagId":"GTM-W7DPCL97"}},"interaction":{"drilldown":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"buttercms","hasAudioNarration":false,"actualSubdomain":"buttercms","customDomains":["buttercms.com"],"gitSource":{"type":"github","owner":"buttercms","repo":"buttercms","deployBranch":"master","contentDirectory":"unified-docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af1f01fc512f821748a9f47","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Frameworks","count":79},{"language":"default","tag":"Build your app","count":74},{"language":"default","tag":"Create content","count":74},{"language":"default","tag":"API Reference","count":63},{"language":"default","tag":"Creating and editing content","count":24},{"language":"default","tag":"Core concepts","count":23},{"language":"default","tag":"Starter projects","count":21},{"language":"default","tag":"All starter projects","count":20},{"language":"default","tag":"Webhooks API","count":19},{"language":"default","tag":"How-to recipes","count":18}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".mermaid .node rect,.mermaid .node circle,.mermaid .node ellipse,.mermaid .node polygon{fill:#f0f4ff!important;stroke:#0505e5!important;stroke-width:2px!important}.mermaid .node .label,.mermaid .node text,.mermaid .nodeLabel{font-family:'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif!important;fill:#000022!important;font-size:14px!important;font-weight:500!important}.mermaid .cluster rect{fill:#f8fafc!important;stroke:#5050ff!important;stroke-width:2px!important;rx:8px!important;ry:8px!important}.mermaid .cluster text,.mermaid .cluster .nodeLabel{fill:#0505e5!important;font-weight:600!important;font-size:15px!important}.mermaid .edgePath .path,.mermaid .flowchart-link{stroke:#5050ff!important;stroke-width:2px!important}.mermaid .arrowheadPath,.mermaid marker path{fill:#5050ff!important;stroke:#5050ff!important}.mermaid .edgeLabel,.mermaid .edgeLabel rect{background-color:#ffffff!important;fill:#ffffff!important}.mermaid .edgeLabel p,.mermaid .edgeLabel>p,.mermaid .edgeLabel div,.mermaid .edgeLabel>div{background:#f8fafc!important}.mermaid .edgeLabel text,.mermaid .edgeLabel .label{fill:#000022!important;font-size:12px!important}.mermaid .actor{fill:#f0f4ff!important;stroke:#0505e5!important;stroke-width:2px!important}.mermaid .actor-line{stroke:#5050ff!important;stroke-width:1px!important}.mermaid text.actor{fill:#000022!important;font-weight:600!important}.mermaid .messageText{fill:#000022!important;font-size:13px!important}.mermaid .messageLine0,.mermaid .messageLine1{stroke:#5050ff!important;stroke-width:1.5px!important}.mermaid .note{fill:#fbe700!important;stroke:#c4b800!important}.mermaid .noteText{fill:#000022!important}.mermaid .statediagram-state rect{fill:#f0f4ff!important;stroke:#0505e5!important;stroke-width:2px!important;rx:6px!important}.mermaid .state-start,.mermaid .state-end{fill:#0505e5!important}.mermaid .pieTitleText{fill:#0505e5!important;font-weight:600!important;font-size:16px!important}.mermaid .classGroup rect{fill:#f0f4ff!important;stroke:#0505e5!important}.mermaid .classGroup text{fill:#000022!important}.mermaid .er.entityBox{fill:#f0f4ff!important;stroke:#0505e5!important}.mermaid .section{fill:#f0f4ff!important}.mermaid .task{fill:#5050ff!important;stroke:#0505e5!important}.mermaid .taskText{fill:#ffffff!important}.mermaid,pre:has(.mermaid),div:has(>.mermaid){max-width:100%!important;min-width:100%!important;padding:1.5rem!important}.mermaid svg{width:100%!important;max-width:100%!important;height:auto!important;min-height:200px!important;max-height:800px!important}.dark .mermaid .edgeLabel p,.dark .mermaid .edgeLabel>p,.dark .mermaid .edgeLabel div,.dark .mermaid .edgeLabel>div{background:#1a1a2e!important}.dark .mermaid{background:#1a1a2e!important}.dark .mermaid .node rect,.dark .mermaid .node circle,.dark .mermaid .node ellipse{fill:#2a2a4a!important;stroke:#5050ff!important}.dark .mermaid .node text,.dark .mermaid .nodeLabel{fill:#e0e0e0!important}.dark .mermaid .cluster rect{fill:#1e1e3a!important;stroke:#5050ff!important}.dark .mermaid .cluster text{fill:#8080ff!important}.dark .mermaid .edgePath .path,.dark .mermaid .flowchart-link{stroke:#7070ff!important}.dark .mermaid .arrowheadPath{fill:#7070ff!important}.dark .mermaid .edgeLabel rect{fill:#1a1a2e!important}.dark .mermaid .edgeLabel text{fill:#e0e0e0!important}.diagram-modal-toggle{display:none}.diagram-container{position:relative}.diagram-preview{position:relative;display:block;cursor:zoom-in;transition:opacity 0.2s ease}.diagram-preview:hover{opacity:0.95}.diagram-expand-hint{position:absolute;top:12px;right:12px;background:rgba(255, 255, 255, 0.95);color:#0505e5;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;opacity:0;transition:opacity 0.2s ease;pointer-events:none;box-shadow:0 2px 8px rgba(0, 0, 0, 0.15);z-index:10}.diagram-preview:hover .diagram-expand-hint{opacity:1}.dark .diagram-expand-hint{background:rgba(30, 30, 46, 0.95);color:#8080ff}.diagram-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0, 0, 0, 0.9);display:none;align-items:center;justify-content:center;z-index:9999;padding:2rem;cursor:zoom-out}.diagram-modal-toggle:checked~.diagram-modal-overlay{display:flex;animation:fadeIn 0.2s ease}.diagram-modal-content{max-width:90vw;max-height:90vh;background:#ffffff;border-radius:12px;padding:2rem;box-shadow:0 20px 60px rgba(0, 0, 0, 0.5);cursor:default;overflow:auto}.dark .diagram-modal-content{background:#1a1a2e}.diagram-modal-toggle:checked~*{overflow:hidden}.mermaid-lightbox-wrapper{position:relative;cursor:zoom-in;transition:all 0.2s ease}.mermaid-lightbox-wrapper:hover{opacity:0.95}.mermaid-expand-icon{position:absolute;top:12px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:rgba(255, 255, 255, 0.95);border-radius:6px;box-shadow:0 2px 8px rgba(0, 0, 0, 0.15);opacity:0;transition:opacity 0.2s ease, transform 0.2s ease;pointer-events:none;z-index:10}.mermaid-lightbox-wrapper:hover .mermaid-expand-icon{opacity:1;transform:scale(1.05)}.mermaid-expand-icon svg{width:18px;height:18px;color:#0505e5}.dark .mermaid-expand-icon{background:rgba(30, 30, 46, 0.95)}.dark .mermaid-expand-icon svg{color:#8080ff}.mermaid-lightbox-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0, 0, 0, 0.9);display:flex;align-items:center;justify-content:center;z-index:9999;padding:2rem;animation:fadeIn 0.2s ease;cursor:zoom-out}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.mermaid-lightbox-content{max-width:90vw;max-height:90vh;background:#ffffff;border-radius:12px;padding:2rem;box-shadow:0 20px 60px rgba(0, 0, 0, 0.5);cursor:default;overflow:auto}.dark .mermaid-lightbox-content{background:#1a1a2e}.mermaid-lightbox-content .mermaid{padding:0!important}.mermaid-lightbox-content .mermaid svg{max-height:85vh!important;width:auto!important;max-width:85vw!important}.mermaid-lightbox-close{position:fixed;top:1.5rem;right:1.5rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:rgba(255, 255, 255, 0.95);border:none;border-radius:50%;cursor:pointer;box-shadow:0 4px 12px rgba(0, 0, 0, 0.3);transition:all 0.2s ease;z-index:10000}.mermaid-lightbox-close:hover{transform:scale(1.1);background:#ffffff}.mermaid-lightbox-close svg{width:24px;height:24px;color:#000022}.dark .mermaid-lightbox-close{background:rgba(30, 30, 46, 0.95)}.dark .mermaid-lightbox-close:hover{background:#1e1e3a}.dark .mermaid-lightbox-close svg{color:#e0e0e0}.mermaid-scroll-zoom{overflow:auto;max-height:500px;border:1px solid #e5e7eb;border-radius:12px;background:#ffffff;margin:1rem 0;cursor:grab;position:relative}.mermaid-scroll-zoom:active{cursor:grabbing}.dark .mermaid-scroll-zoom{border-color:#374151;background:#1a1a2e}.mermaid-scroll-zoom .mermaid{padding:1.5rem!important;min-width:100%;width:max-content}.mermaid-scroll-zoom .mermaid svg{min-width:120%;max-width:none!important;max-height:none!important;height:auto!important;transform-origin:top left}.mermaid-zoom-hint{text-align:center;font-size:12px;color:#6b7280;margin:0.5rem 0 1rem 0;font-style:italic}.dark .mermaid-zoom-hint{color:#9ca3af}.mermaid-scroll-zoom::-webkit-scrollbar{width:8px;height:8px}.mermaid-scroll-zoom::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.mermaid-scroll-zoom::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.mermaid-scroll-zoom::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.dark .mermaid-scroll-zoom::-webkit-scrollbar-track{background:#2a2a4a}.dark .mermaid-scroll-zoom::-webkit-scrollbar-thumb{background:#4a4a6a}.dark .mermaid-scroll-zoom::-webkit-scrollbar-thumb:hover{background:#5a5a7a}@media (max-width: 768px){.mermaid-lightbox-overlay{padding:1rem}.mermaid-lightbox-content{max-width:95vw;max-height:95vh;padding:1rem}.mermaid-lightbox-content .mermaid svg{max-height:90vh!important;max-width:90vw!important}.mermaid-lightbox-close{width:40px;height:40px;top:1rem;right:1rem}.mermaid-lightbox-close svg{width:20px;height:20px}.mermaid-expand-icon{opacity:0.8}}"}],"page":{"pagePath":"build-your-app/content-migration/migration-planning-strategy","slug":"/build-your-app/content-migration/migration-planning-strategy","pageMetadata":{"title":"Migration planning \u0026 strategy","description":"Plan a ButterCMS migration with a three-phase framework (plan, execute, verify), pre/post checklists, risk assessment strategies, and timeline guidance.","icon":"map","href":"/build-your-app/content-migration/migration-planning-strategy"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Plan a ButterCMS migration with a three-phase framework (plan, execute, verify), pre/post checklists, risk assessment strategies, and timeline guidance.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,input:`input`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table,Tip,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Tip,{children:_jsxs(_components.p,{children:[`Migrating from a specific platform? We have step-by-step guides for `,_jsx(_components.a,{href:`/build-your-app/content-migration/contentful-to-buttercms`,children:`Contentful`}),` and `,_jsx(_components.a,{href:`/build-your-app/content-migration/wordpress-to-buttercms`,children:`WordPress`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-consider-migration`,children:`When to consider migration`}),`\n`,_jsx(_components.p,{children:`Before embarking on your migration journey, ask yourself these key questions:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Is your current CMS lagging?`}),` - Frequent errors, crashes, or difficulty implementing modern features`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Is your system struggling to handle growth?`}),` - Slowdowns as you add content, storage limits, bottlenecks in workflows`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Slow load times affecting user experience?`}),` - Pages taking more than a few seconds to load`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Is your data lacking safety?`}),` - Security breaches, missing basic security features, unpatched vulnerabilities`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`You need more adaptability`}),` - Difficulty publishing across channels, can’t create/manage APIs, limited custom content types`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`the-three-phases-of-migration`,children:`The three phases of migration`}),`\n`,_jsx(_components.p,{children:`Every successful content migration follows three essential phases:`}),`\n`,_jsx(Heading,{level:`3`,id:`phase-1-planning`,children:`Phase 1: planning`}),`\n`,_jsx(_components.p,{children:`Your objective is to properly plan what needs to be migrated, how the migration will be performed, and how success will be verified.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Key planning activities:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Define migration goals`}),` - What do you want to achieve with the new CMS?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Audit existing content`}),` - Create a complete inventory of pages, posts, media, and metadata`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Map content to ButterCMS`}),` - Identify how content will fit into Pages, Collections, and Blog Posts`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Identify dependencies`}),` - Links, references, categories, tags, authors`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Plan for SEO preservation`}),` - URL structure, redirects, meta tags`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Set acceptance criteria`}),` - How will you verify the migration was successful?`]}),`\n`]}),`\n`,_jsxs(Tip,{children:[`Below is an example content inventory for a hypothetical site using WordPress and\nhow those items might map to ButterCMS. For information on the various content types,\ncheck out our `,_jsx(_components.a,{href:`/core-concepts/content-types/overview`,children:`core concepts article`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`content-inventory-template`,children:`Content inventory template`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Content Type`}),_jsx(_components.th,{children:`Current System`}),_jsx(_components.th,{children:`ButterCMS Equivalent`}),_jsx(_components.th,{children:`Count`}),_jsx(_components.th,{children:`Priority`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Blog Posts`}),_jsx(_components.td,{children:`WordPress Posts`}),_jsx(_components.td,{children:`Blog Engine or Page Type`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`High`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Static Pages`}),_jsx(_components.td,{children:`WordPress Pages`}),_jsx(_components.td,{children:`Single Pages`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`High`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Categories`}),_jsx(_components.td,{children:`WP Categories`}),_jsx(_components.td,{children:`Collections`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`Medium`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tags`}),_jsx(_components.td,{children:`WP Tags`}),_jsx(_components.td,{children:`Collections`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`Medium`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Authors`}),_jsx(_components.td,{children:`WP Users`}),_jsx(_components.td,{children:`Collections`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`Medium`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Media`}),_jsx(_components.td,{children:`Media Library`}),_jsx(_components.td,{children:`Media Library`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`High`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Custom Post Types`}),_jsx(_components.td,{children:`CPTs`}),_jsx(_components.td,{children:`Page Types`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`-`}),_jsx(_components.td,{children:`Varies`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`phase-2-execution`,children:`Phase 2: execution`}),`\n`,_jsx(_components.p,{children:`Once planning is complete, execute the migration:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Execute and verify backup`}),` of your original site`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Disable crawlability`}),` during migration`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Execute test migration`}),` on a staging environment`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Verify all acceptance criteria`}),` on staging`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Perform the real migration`}),` of entire content inventory`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Enable the new site`}),` and restore crawlability`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Never migrate directly to production first.`}),` Always use a staging environment to test and verify before going live.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`phase-3-verification-\u0026-monitoring`,children:`Phase 3: Verification \u0026 monitoring`}),`\n`,_jsx(_components.p,{children:`After migration, thorough verification is essential:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Go through your acceptance criteria`}),`\n`,_jsx(_components.li,{children:`Manually test content for any overlooked issues`}),`\n`,_jsx(_components.li,{children:`Check performance and loading times`}),`\n`,_jsx(_components.li,{children:`Track SEO rankings and indexing`}),`\n`,_jsx(_components.li,{children:`Monitor analytics for any anomalies`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`migration-planning-checklist`,children:`Migration planning checklist`}),`\n`,_jsx(Heading,{level:`3`,id:`pre-migration-checklist`,children:`Pre-migration checklist`}),`\n`,_jsxs(_components.ul,{className:`contains-task-list`,children:[`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Define the goals of the migration`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Back up the original site`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Check deployment and rollback capability`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Prepare analytics tracking for the new site`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Complete list of URLs and internal links`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Identify absolute vs relative URL references`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Audit asset files and references`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Review CMS-specific plugins to replicate`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Document custom styling and content annotations`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Identify interactive content requirements`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Plan for popup and signup form migration`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Plan migration of comments if applicable`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Note character encoding requirements`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Document original HTML tag structure`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`List categories and tags`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Document SEO keywords`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Plan table of contents migration for series`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Document author information`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Plan user data migration if applicable`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`execution-checklist`,children:`Execution checklist`}),`\n`,_jsxs(_components.ul,{className:`contains-task-list`,children:[`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Execute and verify backup`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Disable site crawlability`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Run test migration on staging`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Verify acceptance criteria on staging`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Update DNS if changing domains`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Perform full content migration`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Enable new site`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Restore crawlability`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`post-migration-checklist`,children:`Post-migration checklist`}),`\n`,_jsxs(_components.ul,{className:`contains-task-list`,children:[`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Review all acceptance criteria`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Manual content testing`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Performance verification`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`SEO verification`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Analytics monitoring`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,`Retire or redirect old content`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`minimizing-migration-risks`,children:`Minimizing migration risks`}),`\n`,_jsx(Heading,{level:`3`,id:`risk-assessment`,children:`Risk assessment`}),`\n`,_jsx(_components.p,{children:`Before beginning, conduct a thorough risk assessment:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Identify potential issues (data loss, functionality breakdowns, compatibility problems)`}),`\n`,_jsx(_components.li,{children:`Analyze the impact each issue could have on your business`}),`\n`,_jsx(_components.li,{children:`Create mitigation strategies for each risk`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`pilot-testing`,children:`Pilot testing`}),`\n`,_jsx(_components.p,{children:`Start small with a non-critical section:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Select a subset of content for initial migration`}),`\n`,_jsx(_components.li,{children:`Document any issues encountered`}),`\n`,_jsx(_components.li,{children:`Use learnings to inform full-scale migration`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`fallback-plan`,children:`Fallback plan`}),`\n`,_jsx(_components.p,{children:`Always have a contingency:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Maintain a fully functional version of your old CMS`}),`\n`,_jsx(_components.li,{children:`Define clear rollback criteria`}),`\n`,_jsx(_components.li,{children:`Document the rollback process`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`regular-backups`,children:`Regular backups`}),`\n`,_jsx(_components.p,{children:`Implement a robust backup strategy:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Full site backups before major migration steps`}),`\n`,_jsx(_components.li,{children:`Incremental data backups throughout the process`}),`\n`,_jsx(_components.li,{children:`Regular testing of backup restoration`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`setting-migration-goals`,children:`Setting migration goals`}),`\n`,_jsx(Heading,{level:`3`,id:`define-clear-objectives`,children:`Define clear objectives`}),`\n`,_jsx(_components.p,{children:`Ask yourself:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Performance Goals`}),` - What load time improvements do you expect?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Developer Experience`}),` - What technical capabilities do you need?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Content Team Experience`}),` - How will the authoring workflow improve?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Scalability Goals`}),` - What growth do you anticipate?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Security Requirements`}),` - What compliance or security standards must you meet?`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`establish-success-metrics`,children:`Establish success metrics`}),`\n`,_jsx(_components.p,{children:`Define measurable targets based on your requirements. Here are example metrics to consider:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Goal Area`}),_jsx(_components.th,{children:`Metric`}),_jsx(_components.th,{children:`Target`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Performance`}),_jsx(_components.td,{children:`Page load time`}),_jsx(_components.td,{children:`\u003c 3 seconds`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`SEO`}),_jsx(_components.td,{children:`Preserved rankings`}),_jsx(_components.td,{children:`Within 5% of baseline`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Content`}),_jsx(_components.td,{children:`Migration accuracy`}),_jsx(_components.td,{children:`100% content preserved`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Uptime`}),_jsx(_components.td,{children:`Migration downtime`}),_jsx(_components.td,{children:`\u003c 4 hours`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Team adoption`}),_jsx(_components.td,{children:`Training completion`}),_jsx(_components.td,{children:`100% team trained`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`timeline-considerations`,children:`Timeline considerations`}),`\n`,_jsx(Heading,{level:`3`,id:`typical-migration-phases`,children:`Typical migration phases`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Phase`}),_jsx(_components.th,{children:`Activities`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Discovery`})}),_jsx(_components.td,{children:`Content audit, requirements gathering, ButterCMS setup`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Design`})}),_jsx(_components.td,{children:`Content model design, schema creation, mapping documentation`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Development`})}),_jsx(_components.td,{children:`API integration, frontend updates, migration scripts`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Content Migration`})}),_jsx(_components.td,{children:`Data transfer, validation, review`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Testing`})}),_jsx(_components.td,{children:`QA, UAT, performance testing`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Launch`})}),_jsx(_components.td,{children:`Go-live, monitoring, optimization`})]})]})]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Break your migration into smaller milestones. This reduces risk and allows for course corrections along the way.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Migration planning \u0026 strategy","description":"Plan a ButterCMS migration with a three-phase framework (plan, execute, verify), pre/post checklists, risk assessment strategies, and timeline guidance.","icon":"map","href":"/build-your-app/content-migration/migration-planning-strategy"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"When to consider migration","slug":"when-to-consider-migration","depth":2,"children":[]},{"title":"The three phases of migration","slug":"the-three-phases-of-migration","depth":2,"children":[{"title":"Phase 1: planning","slug":"phase-1-planning","depth":3,"children":[]},{"title":"Content inventory template","slug":"content-inventory-template","depth":3,"children":[]},{"title":"Phase 2: execution","slug":"phase-2-execution","depth":3,"children":[]},{"title":"Phase 3: Verification \u0026 monitoring","slug":"phase-3-verification-\u0026-monitoring","depth":3,"children":[]}]},{"title":"Migration planning checklist","slug":"migration-planning-checklist","depth":2,"children":[{"title":"Pre-migration checklist","slug":"pre-migration-checklist","depth":3,"children":[]},{"title":"Execution checklist","slug":"execution-checklist","depth":3,"children":[]},{"title":"Post-migration checklist","slug":"post-migration-checklist","depth":3,"children":[]}]},{"title":"Minimizing migration risks","slug":"minimizing-migration-risks","depth":2,"children":[{"title":"Risk assessment","slug":"risk-assessment","depth":3,"children":[]},{"title":"Pilot testing","slug":"pilot-testing","depth":3,"children":[]},{"title":"Fallback plan","slug":"fallback-plan","depth":3,"children":[]},{"title":"Regular backups","slug":"regular-backups","depth":3,"children":[]}]},{"title":"Setting migration goals","slug":"setting-migration-goals","depth":2,"children":[{"title":"Define clear objectives","slug":"define-clear-objectives","depth":3,"children":[]},{"title":"Establish success metrics","slug":"establish-success-metrics","depth":3,"children":[]}]},{"title":"Timeline considerations","slug":"timeline-considerations","depth":2,"children":[{"title":"Typical migration phases","slug":"typical-migration-phases","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"buttercms","siteName":"ButterCMS Docs","title":"Migration planning \u0026 strategy - ButterCMS Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-15T13:19:58.296Z","originalFileLocation":"build-your-app/content-migration/migration-planning-strategy.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Plan a ButterCMS migration with a three-phase framework (plan, execute, verify), pre/post checklists, risk assessment strategies, and timeline guidance.\">\u003cmeta data-mint-head name=\"application-name\" content=\"ButterCMS Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex, nofollow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/buttercms/r9p2A1fiqo_BuZws/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/buttercms/r9p2A1fiqo_BuZws/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/buttercms/r9p2A1fiqo_BuZws/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/buttercms/r9p2A1fiqo_BuZws/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/buttercms/r9p2A1fiqo_BuZws/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/buttercms/r9p2A1fiqo_BuZws/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/buttercms/r9p2A1fiqo_BuZws/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/buttercms/r9p2A1fiqo_BuZws/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/buttercms/r9p2A1fiqo_BuZws/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Migration planning \u0026amp; strategy - ButterCMS Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Plan a ButterCMS migration with a three-phase framework (plan, execute, verify), pre/post checklists, risk assessment strategies, and timeline guidance.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ButterCMS Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://buttercms.com/docs/build-your-app/content-migration/migration-planning-strategy\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://buttercms.mintlify.site/docs/_mintlify/api/og/v2?division=Content+migration\u0026amp;title=Migration+planning+%26+strategy\u0026amp;description=Plan+a+ButterCMS+migration+with+a+three-phase+framework+%28plan%2C+execute%2C+verify%29%2C+pre%2Fpost+checklists%2C+risk+assessment+strategies%2C+and+timeline+guidance.\u0026amp;theme=5b7441fa906780c0ab866249\u0026amp;signature=8f16cefcd7a11bfc3b99c63b732780bf649d93f608e887bf8d35f3be8bba2c58\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Migration planning \u0026amp; strategy - ButterCMS Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Plan a ButterCMS migration with a three-phase framework (plan, execute, verify), pre/post checklists, risk assessment strategies, and timeline guidance.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://buttercms.mintlify.site/docs/_mintlify/api/og/v2?division=Content+migration\u0026amp;title=Migration+planning+%26+strategy\u0026amp;description=Plan+a+ButterCMS+migration+with+a+three-phase+framework+%28plan%2C+execute%2C+verify%29%2C+pre%2Fpost+checklists%2C+risk+assessment+strategies%2C+and+timeline+guidance.\u0026amp;theme=5b7441fa906780c0ab866249\u0026amp;signature=8f16cefcd7a11bfc3b99c63b732780bf649d93f608e887bf8d35f3be8bba2c58\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/buttercms/r9p2A1fiqo_BuZws/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ButterCMS Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0505e5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://buttercms.com/docs/build-your-app/content-migration/migration-planning-strategy\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/build-your-app/content-migration/migration-planning-strategy.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://buttercms.com/#organization\",\"name\":\"ButterCMS Docs\",\"url\":\"https://buttercms.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://cdn.buttercms.com/nDD3LeMXQxiR9aJRpRLE\"}},{\"@type\":\"WebSite\",\"@id\":\"https://buttercms.com/docs#website\",\"name\":\"ButterCMS Docs\",\"url\":\"https://buttercms.com/docs\",\"publisher\":{\"@id\":\"https://buttercms.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://buttercms.com/docs/build-your-app/content-migration/migration-planning-strategy#webpage\",\"url\":\"https://buttercms.com/docs/build-your-app/content-migration/migration-planning-strategy\",\"name\":\"Migration planning \u0026 strategy\",\"description\":\"Plan a ButterCMS migration with a three-phase framework (plan, execute, verify), pre/post checklists, risk assessment strategies, and timeline guidance.\",\"dateModified\":\"2026-04-15T13:19:58.296Z\",\"isPartOf\":{\"@id\":\"https://buttercms.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://buttercms.com/docs/build-your-app/content-migration/migration-planning-strategy#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://buttercms.com/docs/build-your-app/content-migration/migration-planning-strategy#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Content migration\",\"item\":\"https://buttercms.com/docs/build-your-app/content-migration/migration-overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migration planning \u0026 strategy\",\"item\":\"https://buttercms.com/docs/build-your-app/content-migration/migration-planning-strategy\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://buttercms.com/docs/build-your-app/content-migration/migration-planning-strategy#article\",\"headline\":\"Migration planning \u0026 strategy\",\"name\":\"Migration planning \u0026 strategy\",\"description\":\"Plan a ButterCMS migration with a three-phase framework (plan, execute, verify), pre/post checklists, risk assessment strategies, and timeline guidance.\",\"url\":\"https://buttercms.com/docs/build-your-app/content-migration/migration-planning-strategy\",\"mainEntityOfPage\":{\"@id\":\"https://buttercms.com/docs/build-your-app/content-migration/migration-planning-strategy#webpage\"},\"dateModified\":\"2026-04-15T13:19:58.296Z\",\"publisher\":{\"@id\":\"https://buttercms.com/#organization\"},\"isPartOf\":{\"@id\":\"https://buttercms.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ButterCMS Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"ButterCMS Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/build-your-app/content-migration/migration-planning-strategy.md","siteName":"ButterCMS Docs","nav":{"global":null,"tabs":[{"tab":"Quickstart","pages":[{"title":"Quickstart","href":""}]},{"tab":"Core concepts","pages":[{"title":"Core concepts","href":"/core-concepts/content-types/overview"}]},{"tab":"Create content","pages":[{"title":"Create content","href":"/create-content/overview"}]},{"tab":"Build your app","groups":[{"group":"Overview","pages":[{"title":"Table of contents","icon":"wand-magic-sparkles","href":"/build-your-app/overview"},{"title":"Environment setup","icon":"layer-group","href":"/build-your-app/multi-site/environment-setup"}]},{"group":"How-to recipes","pages":[{"group":"I want to build a ... ","icon":"hammer","pages":[{"title":"Blog (Blog Engine)","icon":"newspaper","href":"/build-your-app/how-to-recipes/build/building-a-blog-blog-engine"},{"title":"Custom blog (Page Types)","icon":"newspaper","href":"/build-your-app/how-to-recipes/build/building-a-blog-page-type"},{"title":"Customer portal","icon":"user","href":"/build-your-app/how-to-recipes/build/customer-portal"},{"title":"E-commerce project","icon":"store","href":"/build-your-app/how-to-recipes/build/e-commerce-projects"},{"title":"Event management system","icon":"calendar","href":"/build-your-app/how-to-recipes/build/event-management-system"},{"title":"Food ordering app","icon":"burger","href":"/build-your-app/how-to-recipes/build/food-ordering-app"},{"title":"Knowledge base","icon":"book","href":"/build-your-app/how-to-recipes/build/knowledge-base"},{"title":"Learning platform","icon":"graduation-cap","href":"/build-your-app/how-to-recipes/build/learning-platform"},{"title":"News aggregator","icon":"newspaper","href":"/build-your-app/how-to-recipes/build/news-aggregator"},{"title":"Project portfolio","icon":"briefcase","href":"/build-your-app/how-to-recipes/build/project-portfolio"},{"title":"Quiz app","icon":"block-question","href":"/build-your-app/how-to-recipes/build/quiz-app"},{"title":"Team directory","icon":"users","href":"/build-your-app/how-to-recipes/build/team-member-directory"}]},{"group":"I want to add ...","icon":"puzzle-piece","pages":[{"title":"Dynamic landing pages","icon":"wand-magic-sparkles","href":"/build-your-app/how-to-recipes/add-a-feature/dynamic-landing-pages"},{"title":"Add table of contents to Blog Engine post","icon":"list","href":"/build-your-app/how-to-recipes/add-a-feature/table-of-contents"},{"title":"Navigation menu","icon":"bars","href":"/build-your-app/how-to-recipes/add-a-feature/navigation-menus-collections"},{"title":"SEO Components to Pages","icon":"share-nodes","href":"/build-your-app/how-to-recipes/add-a-feature/seo-components-to-pages"},{"title":"Social sharing buttons","icon":"share-nodes","href":"/build-your-app/how-to-recipes/add-a-feature/social-sharing-buttons"},{"title":"Community comments","icon":"comments","href":"/build-your-app/how-to-recipes/add-a-feature/community-comments"}]}]},{"group":"Rendering complex field types","pages":[{"title":"Repeaters: fetch and add to application","icon":"code","href":"/build-your-app/rendering-complex-field-types/fetching-repeater-data"},{"title":"Components: fetch and add to application","icon":"code","href":"/build-your-app/rendering-complex-field-types/fetching-components"},{"title":"Rendering Conditional Fields","icon":"code-branch","href":"/build-your-app/rendering-complex-field-types/rendering-conditional-fields"},{"group":"Rendering forms","icon":"wpforms","pages":[{"title":"Rendering embedded forms","icon":"window-restore","href":"/build-your-app/rendering-complex-field-types/embedding-forms"},{"title":"Rendering integrated forms","icon":"square-poll-vertical","href":"/build-your-app/rendering-complex-field-types/form-integrations"},{"title":"Rendering custom forms","icon":"code","href":"/build-your-app/rendering-complex-field-types/custom-form-handling"}]}]},{"group":"Webhooks and events","pages":[{"title":"Webhooks overview","icon":"webhook","href":"/build-your-app/webhooks-events/webhooks-overview"},{"title":"Webhook event types","icon":"list","href":"/build-your-app/webhooks-events/webhook-event-types"},{"title":"Configuring and Receiving Webhooks","icon":"gear","href":"/build-your-app/webhooks-events/configuring-and-receiving-webhooks"},{"title":"Webhook payloads \u0026 data","icon":"code","href":"/build-your-app/webhooks-events/webhook-payloads-data"},{"title":"Securing webhooks","icon":"shield","href":"/build-your-app/webhooks-events/securing-webhooks"},{"title":"Retry logic \u0026 error handling","icon":"rotate","href":"/build-your-app/webhooks-events/retry-logic-error-handling"},{"title":"Webhook monitoring \u0026 debugging","icon":"bug","href":"/build-your-app/webhooks-events/webhook-monitoring-debugging"},{"title":"Cache invalidation with webhooks","icon":"broom","href":"/build-your-app/webhooks-events/cache-invalidation-webhooks"},{"title":"Real-time synchronization","icon":"arrows-rotate","href":"/build-your-app/webhooks-events/real-time-synchronization"},{"title":"Automating with no-code tools","icon":"gears","href":"/build-your-app/webhooks-events/automating-with-no-code-tools"}]},{"group":"Third-party integrations","pages":[{"title":"ButterCMS Marketplace","icon":"store","href":"/build-your-app/third-party-integrations/buttercms-marketplace"},{"title":"Integration with AI tools","icon":"plug","href":"/build-your-app/third-party-integrations/ai-tools-integration"}]},{"group":"Performance","pages":[{"title":"API performance best practices","icon":"bolt","href":"/build-your-app/performance/api-performance-best-practices"},{"title":"Query optimization","icon":"magnifying-glass","href":"/build-your-app/performance/query-optimization"},{"title":"Pagination","icon":"filter","href":"/build-your-app/performance/pagination"},{"title":"Filtering requests","icon":"sliders","href":"/build-your-app/performance/filtering-requests"},{"title":"Caching strategies","icon":"database","href":"/build-your-app/performance/caching-strategies"},{"title":"CDN \u0026 global content delivery","icon":"globe","href":"/build-your-app/performance/cdn-global-delivery"},{"title":"Usage \u0026 limits","icon":"chart-line","href":"/build-your-app/performance/usage-limits"},{"title":"Monitoring API usage","icon":"chart-line","href":"/build-your-app/performance/monitoring-api-usage"},{"title":"Rate limits \u0026 throttling","icon":"gauge","href":"/build-your-app/performance/rate-limits-throttling"},{"title":"Scaling for high traffic","icon":"chart-bar","href":"/build-your-app/performance/scaling-high-traffic"}]},{"group":"Content migration","pages":[{"title":"Content migration overview","description":"ButterCMS content migration guide. Plan, export, map content, import via Write API, and validate. Guides for Contentful and WordPress.","icon":"arrow-right-arrow-left","href":"/build-your-app/content-migration/migration-overview"},{"title":"Migration planning \u0026 strategy","icon":"map","href":"/build-your-app/content-migration/migration-planning-strategy"},{"title":"Export and inventory current content","description":"Before migrating to ButterCMS, audit and export your existing content. Learn how to inventory what you have so you're ready to map and import it.","icon":"box-archive","href":"/build-your-app/content-migration/export-and-inventory-content"},{"title":"Map content to ButterCMS models","icon":"sitemap","href":"/build-your-app/content-migration/map-content-to-buttercms"},{"title":"Import data using the Write API","icon":"upload","href":"/build-your-app/content-migration/import-data-using-write-api"},{"title":"Post-migration validation","icon":"clipboard-check","href":"/build-your-app/content-migration/post-migration-validation"},{"title":"Third-party migration tools","icon":"wrench","href":"/build-your-app/content-migration/third-party-migration-tools"},{"title":"Contentful to ButterCMS migration","icon":"arrow-right-arrow-left","href":"/build-your-app/content-migration/contentful-to-buttercms"},{"title":"WordPress to ButterCMS migration","icon":"wordpress","href":"/build-your-app/content-migration/wordpress-to-buttercms"}]},{"group":"Multi-site and environments","pages":[{"title":"Multi-site API architecture","icon":"sitemap","href":"/build-your-app/multi-site-environments/multi-site-architecture"},{"title":"Automating cross-site sync","icon":"rotate","href":"/build-your-app/multi-site-environments/syncing-content-across-sites"}]},{"group":"Localization and languages","pages":[{"title":"Localization quickstart","icon":"compass","href":"/build-your-app/localization/localization-quickstart"},{"title":"Localization architecture","icon":"globe","href":"/build-your-app/localization/localization-architecture"},{"title":"Fetching localized content via API","icon":"code","href":"/build-your-app/localization/fetching-localized-content-api"},{"title":"Locale-specific content","icon":"file-lines","href":"/build-your-app/localization/locale-specific-content"},{"title":"Translation Integrations","icon":"plug","href":"/build-your-app/localization/translation-integrations"}]},{"group":"SEO","pages":[{"title":"Rendering SEO data","icon":"code","href":"/build-your-app/seo/rendering-seo-data"},{"title":"SEO for multilingual sites","icon":"magnifying-glass","href":"/build-your-app/seo/seo-multilingual-sites"},{"title":"Structured data \u0026 schema markup","icon":"code","href":"/build-your-app/seo/structured-data-schema"},{"title":"Sitemap generation","icon":"sitemap","href":"/build-your-app/seo/sitemap-generation"},{"title":"Mobile SEO optimization","icon":"mobile","href":"/build-your-app/seo/mobile-seo-optimization"}]},{"group":"Media CDN","pages":[{"title":"Customizing media URLs","icon":"link","href":"/build-your-app/media-cdn/customizing-media-urls"}]},{"group":"Security and compliance","pages":[{"title":"Security overview","icon":"shield","href":"/build-your-app/security-compliance/security-overview"},{"title":"Data protection and encryption","icon":"database","href":"/build-your-app/security-compliance/data-protection-encryption"},{"title":"Compliance certifications","icon":"certificate","href":"/build-your-app/security-compliance/compliance-certifications"},{"title":"Infrastructure and hosting","icon":"server","href":"/build-your-app/security-compliance/infrastructure-hosting"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api/overview"}]},{"tab":"Frameworks","pages":[{"title":"Frameworks","href":"/frameworks/tab-overview"}]},{"tab":"Support","pages":[{"title":"Support","href":"/support/account-management/account-settings"}]}]},"basePath":"","title":"Migration planning \u0026 strategy - ButterCMS Docs","buildId":"dpl_2AK98Hxhwu4fUXpx9atbv41cC328","deploymentId":"dpl_2AK98Hxhwu4fUXpx9atbv41cC328","dynamics":[],"chunks":[]}