What This Template Is For
Content migrations happen more often than teams expect. You switch CMS platforms. You consolidate two help centers after an acquisition. You move documentation from a wiki to a purpose-built docs site. You restructure URLs after a site redesign. You migrate from Zendesk to Intercom, from WordPress to Next.js, from Confluence to Notion.
Every migration shares the same risks: broken links, lost content, SEO damage, formatting errors, and missing redirects. A blog post that ranked on page one disappears because nobody set up the redirect. A help article loses its images because the migration script did not handle image paths. An onboarding flow breaks because hardcoded links point to old URLs.
This template provides a structured approach to planning, executing, and verifying content migrations. It covers content inventory, URL mapping, redirect planning, quality assurance, and post-migration monitoring. For the content audit that should precede any migration (so you only migrate content worth keeping), use the content audit template. For measuring the SEO impact of your migration, track organic traffic weekly for 90 days post-launch.
How to Use This Template
- Audit before migrating. Do not migrate content you plan to delete. Run a content audit first and migrate only the keep and revise items. This reduces migration scope by 20-40% in most cases.
- Map every URL. Create a complete source-to-destination URL map before writing any migration code. Missing redirects are the most common migration failure and the hardest to recover from.
- Migrate in stages. Migrate one content section at a time (help center first, then blog, then marketing pages). This limits blast radius and makes rollback feasible.
- Verify with automated checks. Manual spot-checks miss errors at scale. Use automated crawlers, link checkers, and diff tools to verify every migrated page.
- Monitor for 90 days. SEO impact from migrations takes weeks to materialize. Monitor organic traffic, crawl errors, and 404 rates for a full quarter after launch.
Content Migration Template
Migration Overview
| Field | Details |
|---|---|
| Migration name | [e.g., Help Center: Zendesk to Intercom] |
| Source platform | [Current platform and URL structure] |
| Destination platform | [New platform and URL structure] |
| Content scope | [Number of pages, content types, media assets] |
| Migration owner | [Name and role] |
| Target go-live date | [Date] |
| Rollback plan | [How to revert if critical issues are found] |
| Success criteria | [e.g., Zero 404s, 95%+ content accuracy, no organic traffic drop > 10%] |
Pre-Migration Checklist
Complete these before any content is moved.
- ☐ Content audit completed (keep/revise/delete decisions made)
- ☐ Source content fully inventoried (pages, images, files, metadata)
- ☐ Destination platform configured and tested
- ☐ URL mapping document completed (see below)
- ☐ Redirect rules written and tested in staging
- ☐ Content formatting rules defined (how markdown/HTML/rich text converts)
- ☐ Image and media asset migration path tested
- ☐ Metadata mapping defined (titles, descriptions, tags, categories, dates)
- ☐ Internal link rewriting plan documented
- ☐ External link audit completed (third-party sites linking to your content)
- ☐ Stakeholders informed of timeline and potential disruptions
- ☐ Rollback procedure tested
Content Inventory
Create a complete inventory of content to migrate.
| ID | Source URL | Title | Type | Word Count | Images | Status | Migrate? |
|---|---|---|---|---|---|---|---|
| 1 | [Source URL] | [Title] | [Article / Page / Post] | [Count] | [Count] | [Live / Draft] | [Yes / No / Merge with #X] |
| 2 | [URL] | [Title] | [Type] | [Count] | [Count] | [Status] | [Decision] |
| 3 | [URL] | [Title] | [Type] | [Count] | [Count] | [Status] | [Decision] |
Inventory summary:
| Metric | Count |
|---|---|
| Total source pages | [Number] |
| Pages to migrate | [Number] |
| Pages to merge | [Number] |
| Pages to delete/archive | [Number] |
| Total images/media | [Number] |
| Total redirects needed | [Number] |
URL Mapping
Map every source URL to its destination. This is the most critical document in the migration.
| Source URL | Destination URL | Redirect Type | Notes |
|---|---|---|---|
| [/old/help/getting-started] | [/docs/getting-started] | 301 (permanent) | [Top-traffic page, verify immediately] |
| [/old/help/billing-faq] | [/docs/billing/faq] | 301 | [Restructured into billing category] |
| [/old/help/api-v1] | [/docs/api/v1] (archived) | 301 | [Deprecated content, redirect to v2 overview] |
| [/old/blog/2024/launch-post] | [/blog/launch-post] | 301 | [Removing date from URL structure] |
- ☐ Every source URL mapped to a destination
- ☐ Deleted pages mapped to the nearest relevant page (not homepage)
- ☐ Merged pages mapped to the consolidation target
- ☐ URL patterns validated (no trailing slashes, consistent casing)
- ☐ Redirect rules tested in staging environment
Metadata Mapping
Define how content metadata translates between platforms.
| Source Field | Destination Field | Transformation Rule | Example |
|---|---|---|---|
| Title | title | Copy as-is | "Getting Started Guide" |
| Meta description | description | Copy; truncate to 320 chars if needed | "Learn how to..." |
| Published date | publishedAt | Convert to ISO 8601 (YYYY-MM-DD) | "2025-06-15" |
| Author | author | Map to new author IDs | "Jane Doe" to author ID 42 |
| Category | category | Map old categories to new taxonomy | "Billing" to "Account Management" |
| Tags | tags | Review and consolidate duplicates | ["billing", "invoices"] |
| Featured image | coverImage | Move to new asset path; update reference | /images/old.png to /images/new.png |
Migration Execution Plan
Break the migration into phases with clear milestones.
| Phase | Content Scope | Start Date | End Date | Owner | Verification |
|---|---|---|---|---|---|
| Phase 0: Setup | Configure destination platform, set up staging | [Date] | [Date] | [Engineering] | Platform accessible, test content renders |
| Phase 1: Pilot | Migrate 10 representative pages | [Date] | [Date] | [Migration lead] | Manual review of all 10 pages |
| Phase 2: Bulk migration | Migrate remaining pages via script | [Date] | [Date] | [Engineering] | Automated checks (see QA section) |
| Phase 3: Redirects | Deploy redirect rules | [Date] | [Date] | [Engineering] | Test every redirect |
| Phase 4: Go-live | Switch DNS or routing to new platform | [Date] | [Date] | [Infrastructure] | Smoke test all critical pages |
| Phase 5: Monitoring | Monitor for 90 days | [Date] | [Date] | [Migration lead] | Weekly report on errors and traffic |
Quality Assurance Checklist
Run these checks after each migration phase.
Automated checks (run on every migrated page):
- ☐ Page returns 200 status code
- ☐ Title and meta description present and correct
- ☐ All internal links resolve (no 404s)
- ☐ All images load correctly
- ☐ No broken formatting (unclosed tags, missing line breaks)
- ☐ Canonical URL points to destination URL
- ☐ Source URL redirects to destination URL with 301
Manual checks (run on 10% sample, prioritizing high-traffic pages):
- ☐ Content matches source (no missing paragraphs or sections)
- ☐ Formatting preserved (headings, lists, tables, code blocks)
- ☐ Images display at correct size and quality
- ☐ Embedded media (videos, iframes) still works
- ☐ Navigation and breadcrumbs correct on new platform
- ☐ Page loads in under 3 seconds
- ☐ Mobile layout renders correctly
Post-Migration Monitoring
Track these metrics weekly for 90 days after go-live.
| Metric | Pre-Migration Baseline | Week 1 | Week 4 | Week 12 | Target |
|---|---|---|---|---|---|
| 404 errors | [Baseline] | [Count] | [Count] | [Count] | Zero new 404s |
| Organic traffic | [Baseline sessions/week] | [Count] | [Count] | [Count] | Within 10% of baseline |
| Crawl errors (Search Console) | [Baseline] | [Count] | [Count] | [Count] | Declining weekly |
| Top 20 pages traffic | [Per-page baseline] | [Count] | [Count] | [Count] | Stable or growing |
| Support tickets mentioning content | [Baseline] | [Count] | [Count] | [Count] | No increase |
Filled Example: Help Center Migration (Zendesk to Intercom)
Overview
| Field | Details |
|---|---|
| Migration name | Help Center: Zendesk to Intercom |
| Source platform | Zendesk Guide (help.acme.com) |
| Destination platform | Intercom Articles (help.acme.com, same domain) |
| Content scope | 142 articles, 380 images, 12 categories |
| Migration owner | Dev Patel, Docs Lead |
| Target go-live | March 15, 2026 |
| Rollback plan | DNS revert to Zendesk (15-minute rollback) |
Inventory Summary
| Metric | Count |
|---|---|
| Total source articles | 142 |
| Migrate as-is | 87 |
| Revise during migration | 31 |
| Merge (2+ articles into 1) | 14 (becoming 6) |
| Delete (outdated, zero traffic) | 10 |
| Total destination articles | 124 |
This template pairs well with the content governance template for establishing ownership of migrated content on the new platform. For the taxonomy decisions that often accompany migrations, use the taxonomy template. For broader product launch coordination, the Product Launch Playbook covers multi-team execution planning.
