You ran the migration. The site loads. The admin dashboard works. Migration complete, right?
Not yet. A site that loads is not the same as a site that works. After 60 million+ migrations, we have seen every kind of post-migration surprise: forms that silently stop sending emails, cron jobs that never fire, payment gateways that reject transactions, images that load on desktop but break on mobile, and SEO rankings that quietly disappear because a robots.txt file got reset.
Most of these problems are invisible on the surface. The homepage looks fine. But three layers deep, something critical is broken, and you only find out when a customer complaint arrives or your search traffic drops.
This checklist covers 50+ verification steps across 10 categories, ordered from the fastest checks to the deepest. Work through it top to bottom after every migration. Each section includes what to check, how to check it, and what to do if something fails.
Before You Start: Clear Everything
Before running any verification, purge every cache layer. Stale cached content will make you think things are working when they are not, or make you chase phantom issues that do not actually exist.
- Browser cache: Hard refresh with Ctrl+Shift+R (Windows/Linux) or Cmd+Shift+R (Mac). Better yet, open an incognito/private window.
- WordPress caching plugin: WP Rocket, W3 Total Cache, LiteSpeed Cache, WP Super Cache. Go to the plugin’s settings and clear all caches.
- Server-level cache: Many managed hosts run Varnish, Redis, or their own caching layer. Clear it from the hosting dashboard or ask support.
- CDN cache: Cloudflare, StackPath, BunnyCDN, KeyCDN. Purge everything from the CDN dashboard. Cloudflare users: Development Mode temporarily bypasses the cache entirely, which is useful during verification.
- Object cache: If you use Redis or Memcached for WordPress object caching, flush it. Most object cache plugins have a “Flush Cache” button, or you can use WP-CLI:
wp cache flush
Now every page load is hitting the actual server with fresh data. Start checking.
1. Quick Sanity Checks (2 Minutes)
These take seconds and catch the most obvious failures:
- Homepage loads without errors
- Visit 3-5 interior pages (a blog post, a page, an archive page). All load correctly.
- WordPress admin dashboard loads at
/wp-admin/ - You can log in with your admin credentials
- Go to Settings > General and verify both “WordPress Address (URL)” and “Site Address (URL)” are correct
- The correct theme is active (Appearance > Themes)
- Check your browser’s address bar: the URL should show your actual domain, not a temporary migration URL or the old host’s staging domain
If any of these fail, stop here and fix them before continuing. A wrong Site URL or broken admin means deeper checks are pointless until the foundation is solid.
2. Content Verification
Your content is the whole point of the migration. Verify nothing was lost or corrupted.
Pages and Posts
- Check total post count: go to Posts > All Posts and compare the number against your pre-migration count
- Check total page count: go to Pages > All Pages and compare
- Open your 5 most important pages and read through them. Look for broken formatting, missing sections, or garbled characters (encoding issues)
- Check posts with special content: galleries, tables, embedded videos, shortcodes, custom blocks. These are the most fragile content types during migration.
- If you use Custom Post Types (portfolios, testimonials, products, events), verify those exist and display correctly
- Check draft and scheduled posts. They should still be in the correct status with the correct publish dates.
Media Library
- Go to Media > Library and switch to list view. Compare the total count against your pre-migration count.
- Open several images at random and verify they display at full size
- Check a page with many images. Do all thumbnails load?
- Test a PDF or document download link if your site hosts downloadable files
- Look for broken image icons throughout the site, especially on older posts that may reference absolute URLs from the old host
If images are broken: The most common cause is hardcoded URLs pointing to the old domain or server path. A migration tool like All-in-One WP Migration handles URL replacement automatically during import, but if you migrated manually, you may need to run a search-and-replace on the database. The Better Search Replace plugin can update old URLs to new ones across all database tables.
Menus and Navigation
- Check every menu on the site (header, footer, sidebar, mobile)
- Click through every menu item. No 404s.
- Check dropdown/submenu items specifically. These are often missed.
- Verify custom links in menus point to the correct URLs (not the old domain)
- If you use mega menus or a menu plugin, verify it renders correctly
Widgets and Sidebars
- Check all sidebars on the site. Are widgets present and displaying content?
- Custom HTML widgets: verify they do not contain old domain URLs
- Text widgets with embedded content (maps, forms, social feeds): verify they load
3. Functionality Testing
A site can look perfect and still have broken functionality underneath.
Forms
Forms are the number one silent failure after migration. They look fine visually, but the submissions go nowhere.
- Submit every form on the site: contact forms, signup forms, quote request forms, newsletter subscription forms
- Check that you actually receive the submission (email notification, form plugin entries, CRM)
- If forms use SMTP (WP Mail SMTP, FluentSMTP, Post SMTP), verify the SMTP settings still work. Many SMTP plugins store credentials that may need re-authentication on the new host.
- Check CAPTCHA and reCAPTCHA. If the domain changed, you need new API keys from Google.
User Accounts and Login
- Log out and log back in as admin
- If your site has member/subscriber accounts, test login with a non-admin account
- Test the password reset flow (click “Lost your password?” and complete the full flow)
- If you use a social login plugin (Google, Facebook login), test those login methods
- Check user roles and capabilities: can editors still edit? Can shop managers still manage orders?
Search
- Use the site’s search function. Does it return results?
- Search for something you know exists. Does it appear?
- If you use a search plugin (SearchWP, Relevanssi, ElasticPress), verify the search index is intact. You may need to rebuild the index on the new host.
Comments
- Check that existing comments display correctly on posts
- Submit a test comment and verify it appears (check your comment moderation settings)
- If you use Disqus or another external comment system, verify the integration is still connected
4. E-Commerce Verification
If you run WooCommerce, Easy Digital Downloads, or another e-commerce plugin, this section is critical. A broken checkout is lost revenue.
- Browse the shop page. Do products display with correct prices and images?
- Add a product to the cart. Does the cart work?
- Go through the full checkout flow using a test order (use a sandbox/test payment gateway if available)
- Verify that the order appears in the admin order list
- Check that the order confirmation email is sent to both the customer and admin
- Verify tax calculations if you use tax plugins or built-in WooCommerce tax
- Check shipping calculations for different addresses
- Test coupon codes if you have active promotions
- Verify that downloadable products still have their files attached and the download links work
- If you use Stripe, PayPal, or another payment gateway, verify the API keys are valid. Payment gateways often use different API credentials for different domains. If the domain changed, you likely need to update webhooks and allowed domains in the payment provider’s dashboard.
- Check that subscription renewals are still scheduled (WooCommerce Subscriptions, Restrict Content Pro, etc.)
For a full walkthrough of WooCommerce-specific migration concerns, see our WooCommerce migration guide.
5. Email Verification
Email failures are invisible. Nobody tells you “I did not receive your email.” They just leave.
- Send a test email from WordPress: install the WP Mail SMTP plugin if you do not already have one, and use its email test feature
- Verify WordPress notification emails: trigger a password reset, submit a form, publish a post. Check that the corresponding emails arrive.
- Check the “From” address on emails. Some servers change the from address if your domain’s SPF/DKIM records do not match the new host.
- If you moved to a new host, verify that your MX records are correct. A common mistake is updating A records but forgetting MX records, which breaks email delivery without any error visible on the site.
- Test transactional emails: order confirmations, shipping notifications, account verification emails
- Check that email marketing integrations (Mailchimp, Brevo, ConvertKit) are still connected. These typically use API keys that are domain-independent, but webhook URLs may need updating.
6. Permalinks and URLs
URL problems cause 404 errors, broken internal links, and SEO damage.
- Go to Settings > Permalinks and click Save Changes (even if you do not change anything). This flushes the rewrite rules, which fixes many URL issues.
- Test 5-10 URLs from across the site: posts, pages, categories, tags, author archives
- Click through internal links within your content. Do they all resolve?
- If you changed domains or URL structure, verify that 301 redirects are working. Visit old URLs and confirm they redirect to the correct new URLs.
- Check for redirect chains (old URL redirects to intermediate URL redirects to final URL). Redirect chains slow down page loads and dilute SEO value.
- Test pagination: visit page 2, page 3 of your blog or shop archives
- If you use pretty permalinks with
.htaccessrules, verify that your.htaccessfile was transferred and contains the correct WordPress rewrite rules
If many URLs are returning 404: Your .htaccess file may be missing or the server may not have mod_rewrite enabled. Go to Settings > Permalinks, click Save Changes, and WordPress will attempt to regenerate the file. If that does not work, ask your host to verify that Apache mod_rewrite is enabled, or if you are on Nginx, that the correct rewrite rules are in your server configuration.
For a deep dive on protecting your search rankings during any kind of migration, see our WordPress SEO migration checklist.
7. SSL and Security
- Verify the SSL certificate is active: look for the padlock icon in the browser address bar
- Check for mixed content warnings: open the browser developer console (F12 > Console) and look for “Mixed Content” errors. These mean some resources are still loading over HTTP.
- Visit your site with
http://and confirm it redirects tohttps:// - If you use a security plugin (Wordfence, Sucuri, Solid Security), check that it is active and the firewall is configured. Security plugins are the most common category to break after migration because they store server-specific paths. See our guide on plugins that need reconfiguration after migration for exact fix steps.
- Verify that your admin login page is accessible and not blocked by an overly aggressive firewall rule from the old host
- If you use two-factor authentication, verify it still works
For detailed steps on SSL migration, see our guide on moving WordPress from HTTP to HTTPS.
8. Performance and Caching
Your site may work perfectly but load slowly on the new host if caching and performance tools are not reconfigured.
- Run a speed test using GTmetrix or Google PageSpeed Insights. Compare scores against your pre-migration baseline.
- Re-enable your caching plugin and verify it is generating cached pages. Most caching plugins have a “test cache” feature or you can check response headers for cache indicators.
- If you use a CDN, verify it is connected and serving assets. Check response headers for CDN indicators (e.g.,
CF-Cache-Statusfor Cloudflare). - Test page load times from different geographic locations using Pingdom or GTmetrix’s test location selector
- Check the Tools > Site Health screen in WordPress for any performance or configuration warnings
- If the new host uses a different PHP version, verify that your site works correctly with it. Some plugins and themes are not compatible with newer PHP versions and will throw warnings or errors in the error log.
9. Cron Jobs and Scheduled Tasks
This is the silent killer. Broken cron jobs cause failures that you do not notice for days or weeks: backups that never run, scheduled posts that never publish, subscription renewals that never process.
- Go to Tools > Site Health and check for cron-related warnings
- Create a test scheduled post set to publish in 5 minutes. Wait and verify it publishes on time.
- Check that your backup plugin’s schedule is active and running. All-in-One WP Migration Pro supports automated scheduled backups with hourly, daily, weekly, and monthly intervals. Verify the schedule is intact and run a manual backup to confirm it completes successfully on the new host.
- If you use WooCommerce, check WooCommerce > Status > Scheduled Actions for pending or failed actions
- Any custom cron jobs defined at the server level (not WordPress cron) need to be manually recreated on the new host
If WordPress cron is unreliable on the new host, you can disable it and use a real server cron. Add this to wp-config.php:
define('DISABLE_WP_CRON', true);
Then create a server cron job:
*/15 * * * * wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
10. SEO and Analytics
Losing SEO visibility after migration is the most expensive mistake, and it is entirely preventable.
- Verify Google Analytics (or your analytics tool) is tracking visits. Go to the real-time report in GA and visit your site. You should see yourself as an active user.
- Check Google Search Console. If you moved to a new host with the same domain, re-verify ownership. If you changed domains, use the Change of Address tool.
- Submit your sitemap in Google Search Console: go to Sitemaps and submit your sitemap URL (usually
yourdomain.com/sitemap.xml) - Verify your sitemap is accessible: visit
yourdomain.com/sitemap.xmlin a browser. It should load as valid XML. - Check
robots.txt: visityourdomain.com/robots.txtand verify it is not accidentally blocking search engines. Some staging environments addDisallow: /to robots.txt, and this can persist after migration. - Verify meta titles and descriptions on key pages using “View Page Source” or a browser SEO extension
- If you changed domains or URL structure, verify that 301 redirects are in place for all old URLs
- Check Google Search Console’s “Pages” report over the next 2-4 weeks for new crawl errors
- If you use schema markup (structured data), test a few key pages with Google’s Rich Results Test
For the complete SEO migration playbook covering six different migration scenarios, see our WordPress SEO migration checklist.
11. Third-Party Integrations
Integrations with external services often break silently because they rely on API keys, webhooks, or domain whitelists.
- Social sharing buttons: do they still work? Do share counts display correctly?
- Social auto-posting (if you publish to Facebook, Twitter, LinkedIn automatically): publish a test post and verify it appears
- CRM integrations (HubSpot, Salesforce, etc.): submit a test form and verify the lead appears in the CRM
- Chat widgets (Intercom, Drift, LiveChat): do they load and function?
- Embed codes: Google Maps, YouTube videos, social media embeds, calendars
- If you use webhooks (Zapier, Make, IFTTT), verify the webhook URLs are still correct. If the domain changed, update them.
- Review any API keys stored in plugins. Some APIs are restricted to specific domains and will reject requests from a new domain.
When Can You Decommission the Old Host?
Do not cancel your old hosting account the day after migration. Keep it active as a fallback:
- Minimum: 1 week after migration, assuming all checks pass and no issues surface
- Recommended: 2-4 weeks, especially if you changed domains or URL structure. This gives you time to catch SEO issues, email delivery problems, and edge cases that only appear when specific features are triggered.
- E-commerce sites: 4 weeks minimum. You need to be sure that subscription renewals, recurring payments, and scheduled tasks are all functioning correctly on the new host.
Before decommissioning, take one final full backup from the old host. Store it somewhere independent (your local computer, cloud storage) as an archive. Once the old host is gone, that data is gone.
Printable Checklist Summary
Here is the complete checklist in condensed form. Bookmark this page or print this section for quick reference during your next migration.
Pre-check:
- Clear all caches (browser, WordPress, server, CDN, object cache)
Quick sanity (2 min):
- Homepage, interior pages, and admin all load
- Site URL is correct in Settings > General
- Correct theme is active
Content:
- Post and page counts match pre-migration
- Media library intact, images display correctly
- Menus and navigation work, no 404s
- Widgets and sidebars display
Functionality:
- All forms submit and deliver notifications
- User login and password reset work
- Site search returns results
- Comments display and can be submitted
E-commerce:
- Products display, cart works, checkout completes
- Payment gateway processes test transaction
- Order emails send to customer and admin
Email:
- Test email sends successfully from WordPress
- MX records correct (if DNS changed)
- SMTP settings valid on new host
URLs:
- Permalinks flushed (Settings > Permalinks > Save)
- Internal links resolve, no 404s
- 301 redirects working (if URLs changed)
Security:
- SSL active, no mixed content warnings
- HTTP redirects to HTTPS
- Security plugin firewall configured
Performance:
- Speed test scores comparable to pre-migration
- Caching plugin active and generating cached pages
- CDN connected and serving assets
Scheduled tasks:
- Scheduled posts publish on time
- Backup schedules running
- WooCommerce scheduled actions processing
SEO:
- Analytics tracking confirmed in real-time report
- Search Console verified, sitemap submitted
- robots.txt not blocking crawlers
- No new 404 errors appearing
Integrations:
- Social sharing and auto-posting work
- CRM and marketing tool connections active
- Chat widgets and embeds load
Decommission timeline:
- Old host kept active for 2-4 weeks as fallback
- Final backup taken from old host before cancellation
FAQ
How long should the full verification take?
For a simple blog or brochure site, 30-45 minutes. For an e-commerce site with payment processing, forms, and third-party integrations, plan for 1-2 hours. It is worth the time. Finding a broken checkout two weeks after migration is far more expensive than spending an extra hour checking everything on day one.
What if I did not record pre-migration counts?
If you did not document your post/page/media counts before migrating, use the Wayback Machine (web.archive.org) to check your old sitemap or use a crawl tool to estimate. For future migrations, our guide on how to migrate WordPress to a new host includes a pre-migration preparation section that covers exactly what to document.
My site looks fine but something feels off. Where should I look first?
Check the error log. Go to Tools > Site Health > Info > Server and note the error log path, then review it for PHP warnings or errors. Many post-migration issues generate errors that do not show on the frontend but indicate problems: deprecated function calls, missing files, failed database queries. If your host provides an error log viewer in the control panel, start there.
Do I need to redo this checklist if I only migrated to a staging site?
Yes, but you can skip the SEO and decommissioning sections. Everything else applies equally to staging environments. In fact, running through this checklist on staging is exactly how you should validate a migration before doing it on production.
What is the most commonly missed item on this checklist?
Email. Every time. Forms look fine visually, but the email delivery chain is broken because SMTP credentials reference the old host, SPF records have not been updated, or the new server’s IP is not authorized to send mail for the domain. Always send a real test email and verify it arrives.
I used All-in-One WP Migration. Do I still need this checklist?
Yes. All-in-One WP Migration handles the technically complex parts of migration automatically: serialized data replacement, URL updates across the database, file transfer integrity. That eliminates an entire class of problems. But it cannot verify that your payment gateway accepts transactions on the new host, that your email provider’s SPF records include the new server, or that your CDN is pointing to the right origin. Those are environment-specific checks that only a human can verify.
