VPS Migration Checklist
An interactive 5-phase checklist for migrating your VPS safely. Progress is saved automatically — pick up where you left off anytime.
Migrating from one VPS to another is one of the most stressful tasks in server management. A single missed step — an undocumented cron job, a forgotten firewall rule, or a premature DNS cutover — can cause hours of downtime and data loss. This interactive checklist walks you through 36 essential tasks across 5 phases, from pre-migration audit to final cleanup. Your progress saves automatically to your browser so you can work through it over multiple sessions, and the export feature generates a plain-text report you can share with your team.
How to Use This Checklist
Work through each phase in order. The checklist saves your progress to your browser's local storage — you can close the tab and return later without losing your place. When you are done, click "Export Report" to generate a plain-text summary you can paste into a ticket, Slack, or email.
Phase 1 — Pre-Migration Audit
Before touching the new server, document everything running on the old one. A missed service or undocumented cron job discovered after DNS cutover is a high-pressure situation. The dpkg --get-selections output and a manual review of /etc/cron.d/ and /var/spool/cron/ are particularly important.
Phase 2 — New Server Setup
Rebuild your environment on the new VPS from documentation rather than copying everything blindly. This is an opportunity to fix accumulated technical debt. Use your exported package list as a reference, not a copy-paste script — some packages may be obsolete or replaced by better alternatives.
Phase 3 — DNS & Traffic Migration
The DNS TTL trick is critical. Lower your TTL to 300 seconds (5 minutes) at least 24 hours before the planned cutover, so that when you update the A record, propagation is fast. If you skip this step and your old TTL is 86400 (24 hours), visitors may reach the old server for up to a day after you cut DNS.
Phase 4 — Post-Migration Verification
Do not cancel the old server immediately after DNS propagation. Keep it running for 24–48 hours while you monitor logs and traffic. Use a tool like netstat or your hosting panel's traffic graphs to confirm the old server is receiving zero requests before terminating it.
Phase 5 — Cleanup
Take a final compressed backup from the old server before cancellation. Many providers give you 24 hours after cancellation to download data — but don't rely on this. Update your monitoring (Uptime Robot, Grafana, Datadog) with the new IP so you don't get false alerts from the decommissioned server.
Frequently Asked Questions
How long does a VPS migration typically take?
A straightforward VPS migration for a single website takes 2-4 hours of active work, plus 24-48 hours of DNS propagation monitoring. Complex migrations with multiple databases, custom configurations, and high-traffic sites can take a full weekend. Our checklist breaks the process into 5 phases so you can plan each stage and avoid rushing critical steps.
Can I migrate my VPS with zero downtime?
Yes, zero-downtime migration is possible if you lower your DNS TTL to 300 seconds at least 24 hours before the cutover, set up the new server completely before changing DNS, and keep the old server running during DNS propagation. The key is having both servers operational simultaneously during the transition window. Our checklist Phase 3 covers this DNS strategy in detail.
What should I back up before migrating my VPS?
Back up everything: all databases (MySQL dumps, PostgreSQL dumps), website files, configuration files (/etc/nginx, /etc/apache2, PHP configs), SSL certificates, cron jobs, firewall rules, and the installed package list. Our checklist Phase 1 covers all 10 items you need to audit and document before touching the new server.
How do I migrate a WordPress site to a new VPS?
Export your WordPress database with mysqldump, copy all files from /var/www/ using rsync, install the same PHP version and extensions on the new server, restore the database, update wp-config.php if the database credentials changed, and test using /etc/hosts override before switching DNS. Plugins like UpdraftPlus can simplify the database and file transfer steps.
Should I use rsync or scp to transfer files during migration?
Use rsync for VPS migrations. Unlike scp, rsync supports incremental transfers (only copying changed files), compression during transfer, and can resume interrupted transfers. The command rsync -avz --progress old-server:/var/www/ /var/www/ is the standard approach. For very large transfers over slow connections, consider tar with compression piped through ssh.
How long should I keep the old VPS running after migration?
Keep the old server running for at least 48 hours after DNS cutover. Some DNS resolvers cache records longer than the stated TTL, and email delivery can lag behind web traffic migration. Monitor access logs on the old server — when you see zero incoming requests for a full 24-hour period, it is safe to cancel. Always download a final backup before cancellation.
Does this migration checklist save my progress?
Yes. The checklist automatically saves your progress to your browser's localStorage every time you check or uncheck a task. You can close the tab, shut down your computer, and return later — your checked items will still be there. You can also export a plain-text report of your progress at any time using the Export Report button.