My order has changed about four times and the current one is the only version that has not burned me. i copy the site to the new box first and leave the old one live, all in one wp migration for anything under 1gb and a manual rsync plus mysqldump above that, because the plugin exports choke on big media libaries and then you are debugging the plugin instead of the migration. after that i put a hosts file entry on my laptop pointing the real domain at the new server, so i can browse the live domain against the new box without touching public dns. that step is the one people skip and it is the whole game. you get to click through a checkout, submit a form, load wp-admin, open the media library, all against the new server, with nothing pointed at it yet. i found a broken cache config that way once and it would have been a very public thing to discover at nine on a monday morning instead.
The dns part is where the time goes and most of it is waiting. drop the ttl on the a record to 120 seconds at least a day before the move, because whatever the ttl was, resolvers out there are holding the old answer for exactly that long, and lowering it on the day does nothing for you. i learned that with a 14400 second ttl on a client site and spent four hours watching half the traffic land on a server i had already put into read only. after the cutover i leave the old box running for a week, not a day, because there is always a cron or a webhok or some payment provider callback still pointed at the old ip. last time the only thing left on the old server after five days was a mailchimp webhook, and i would never have found it if i had destroyed the droplet on day two. the final step is putting the ttl back up to 3600 so you are not paying for lookups you do not need, and i forget that one about half the time and it has never cost me anything yet.
Source: r/SiteManagement · by /u/petra_ops