What you actually lose in a migration is rarely inside the site. Files and databases are visible and well tooled, so they are hard to forget. What disappears is everything you registered elsewhere — values sitting in a screen you configured once, years ago, and have not opened since.
So the first step of a migration is not copying. It is taking inventory. One table is enough, and that table removes most of what would otherwise happen on cutover day.
Inside the site — mostly safe ground
There are four blocks inside the site. Most backup tools capture the first two and leave the last two behind.
The pair that genuinely goes missing is web server configuration and cron. Both live outside WordPress, so a site backup never contains them: redirect rules pointing old URLs at new ones, upload size limits, scheduled system jobs. Half the “why can I suddenly not upload a large file” reports after a move trace back to this row.
Outside the site — the list that matters
Here is the real work. Everything below is stored on someone else’s service, not your server. You will not find it by reading your own code; you have to log in somewhere to see it.
The one to watch above all is the payment webhook. That URL is stored in the provider’s dashboard, and the provider keeps posting to it. Moving your server does not tell them anything. Worse, nothing on your side errors: no request arrives, so no log line appears, and orders simply accumulate without ever being marked paid. Put this row at the top of your table.
API key restrictions behave the same way. If a map or social login key is limited to one domain, changing the domain silently kills that one feature. The site looks fine; one block on one page is empty.
What the table looks like
A list of item names is not useful on its own. Fill in four columns per row.
Item | Current value | Where to change it | Who has access
Pay webhook | https://…/hook | provider dashboard | company account
Verification| TXT record | domain registrar | company account
Map API key | domain-locked | cloud console | ? ← the problem
The fourth column, “who has access”, is the point of the whole exercise. Discovering that an account is in the name of someone who left, or an agency you no longer work with, on cutover day is far too late. Account recovery takes days, and the site sits half-working throughout. If a single question mark remains, do not book the cutover until it is gone.
Building operational documentation is covered across the development workflow archive, and if you would rather hand the move and the optimisation over as one job, the actual steps are published on our process page.
Next part
With the inventory done, the copying begins. The next part covers files and the database — and on a large site the slow part is entirely predictable. It is not the total size.