SOP: migrate a WordPress site to managed hosting without losing content
The process I use to move a site between hosting plans: verifiable backups, controlled restoration, and checks that catch issues before launch.
The problem
A site needed to move to an environment with more resources. The risk was not limited to downtime: an incomplete migration could leave out images, forms, or recent data. The final review also needed to be structured rather than an improvised hunt for errors.
The approach that made the move safe
I first defined the migration scope: files, database, users, media, forms, and any service that lived outside the server. Then I prepared two independent backups: a complete site export and a manual database copy. Keeping both made it possible to compare results and roll back if anything did not match.
For the transfer, I used a packaged site export where appropriate and retained the database names, users, and permissions explicitly. Before moving anything, I confirmed whether DNS, email, PHP versions, or scheduled tasks were in scope. If they were not, that was documented too—assuming they would stay unchanged is a common source of omissions.
After restoring, I checked media inside the CMS, not only in the backup. A background image can be in the media library while no longer being selected in the section that displays it. Reassigning it from the CMS fixed that kind of inconsistency without touching the design.
How I validated it
The validation followed user journeys, not just the homepage:
- Open key pages and check navigation, links, and calls to action.
- Submit important forms and confirm delivery.
- Review headers, background images, and CMS-driven elements.
- Look for visible errors, unexpected redirects, and abnormal slowness.
- Keep the backup and record any differences before closing the change.
Apply it to a similar migration
Do not start by copying files. Start with a short scope sheet: what moves, what does not, and who confirms every external service. Back up before changing the environment, document the credentials and permissions involved, and prepare a list of pages and flows to test at the end.
If the site receives meaningful traffic, add a second pass for performance and security after confirming that everything works. Separating “the migration is correct” from “the site is optimized” keeps the change controlled and makes later issues easier to diagnose.
Reusable checklist
- Complete backup and independent database copy.
- DNS, email, PHP, and scheduled-task scope documented.
- Files, database, users, and permissions restored.
- Media reviewed inside the CMS.
- Navigation, links, and forms tested.
- Follow-up performance and security review planned where needed.