Moving a WordPress site from one hosting provider to another is a high-risk operation. The migration itself — copying the database and file system — is usually the easy part. The silent failures that emerge afterward are what destroy businesses.
You cannot simply copy the files, flip the DNS, and declare victory. Before a single real visitor hits the new server, you must run a deliberate post-migration verification checklist.
1. Verify the Database URLs
The most common post-migration failure is internal URLs still pointing to the old server. WordPress stores absolute URLs in the database for images, internal links, and site identity. If your old host was oldhost.tempurl.com and you moved to yourdomain.com, every image in every blog post is still trying to load from the old server.
Run a search-and-replace using WP-CLI (wp search-replace 'oldhost.tempurl.com' 'yourdomain.com' --all-tables) to sanitize all references safely while respecting serialized data.
2. Test the SSL Certificate
Your old host had its own SSL certificate. Your new host needs a freshly issued one. If the certificate wasn't provisioned before you pointed the DNS, visitors will see a terrifying browser security warning for the first few hours.
Verify that HTTPS loads cleanly and that the browser padlock icon appears. Check for mixed content warnings using Chrome DevTools.
3. Confirm Email Delivery
If your old host handled outbound email through its own SMTP relay, migrating to a new server means WordPress is now attempting to send emails through an entirely different mail system. Contact form notifications, WooCommerce order confirmations, and password reset emails may silently fail.
Send a test email immediately after migration using the WP Mail SMTP plugin's built-in test tool.
4. Flush the Permalink Structure
Navigating to Settings > Permalinks and clicking "Save Changes" forces WordPress to rebuild its internal URL routing map against the new server's configuration. This prevents 404 errors on blog posts and product pages.
5. Verify Cron Jobs
WordPress uses a virtual cron system (wp-cron.php) to handle scheduled tasks like publishing future-dated posts, sending subscription emails, and pruning expired transients. If your new server has a different PHP execution model, scheduled events might stop firing.
Run wp cron event list via WP-CLI to confirm all scheduled tasks are intact and executing on time.
6. Check File Permissions
Different hosting environments enforce different default file permission masks. If your uploads directory (wp-content/uploads/) doesn't have write permissions on the new server, your editorial team won't be able to upload any new images.
Directories should be set to 755 and files to 644 as a baseline.
7. Test the Full Checkout Flow (E-Commerce)
If you run WooCommerce, manually test the entire purchase journey: add a product, proceed to checkout, enter shipping details, and process a test payment. Payment gateway API keys sometimes need to be re-authenticated against the new server's IP address.
8. Update DNS TTL Values
Before flipping your DNS records to point to the new server, lower the TTL (Time To Live) value to 300 seconds (5 minutes) at least 24 hours in advance. This ensures that if something goes wrong, you can quickly revert the DNS back to the old server without waiting hours for global propagation.
A migration isn't complete when the files are copied. It's complete when every critical user pathway has been walked through, tested, and verified on the new infrastructure.