Migrating content without losing URLs
A content migration is a data transformation with public addresses. Template completion does not prove that the complete source estate, metadata, relationships and incoming URLs survived the move.
Build a source inventory
Combine CMS exports, sitemaps, analytics, search-console data, server logs and an authenticated crawl. Record status, canonical URL, title, owner, update date, attachments and inbound traffic for each item.
Decide a destination for every URL
Mark content as migrate, merge, rewrite, archive or retire. Assign an exact new URL for retained value and a relevant parent only where no equivalent exists; do not redirect every removed page to the homepage.
Transform repeatably
Write mappings for fields, markup, authors, taxonomy, media and internal links, then run them against a fixed source snapshot. Retain rejected records with reasons instead of correcting production data invisibly by hand.
Validate content and relationships
Compare counts and sample each content type, date range and owner. Crawl the target for broken links, missing media, duplicate titles, incorrect canonicals and attachments that still reference the old host.
Operate redirects after launch
Publish direct permanent redirects, avoid chains and monitor 404s and high-value entry pages. Keep the mapping under version control and retain it beyond the short launch window because old bookmarks and external links persist.
Every known source URL needs a documented outcome even when that outcome is an intentional 410 response rather than migrated content.