Back to Blog

    WordPress Site Migration for Agencies: Checklist, Risks & SEO Protection

    Filippo Tinnirello

    Most WordPress migration disasters are not technical failures — they are process failures. A missing redirect, an overlooked plugin, a DNS change that propagates while nobody is watching. Here is the full migration checklist I use on agency projects, built from 20 years of watching what goes wrong and making sure it does not happen again.

    The Five Ways Migrations Fail

    SEO Collapse

    Traffic drops 30-60% within 48 hours because redirects were not mapped, sitemaps were not resubmitted, or old URLs were changed without 301 redirects.

    Data Loss

    Incomplete database exports miss custom tables, serialised data breaks during search-and-replace, or media files fail to transfer completely.

    Performance Regression

    The new host is not configured the same way — missing caching layers, different PHP version, or resource limits that were fine on the old server.

    DNS Propagation Chaos

    The site enters a split-brain state where some visitors see the old site and others see the new one — orders, form submissions or content edits get lost.

    Phase 1: Pre-Migration Discovery

    The biggest mistake in any migration is jumping straight to execution. Before anyone touches a database, you need to understand what you are actually dealing with.

    • Full site inventory: Document every page, post, custom post type, taxonomy and media item. Note which pages receive the most traffic so they get priority testing.
    • Plugin and integration audit: List every active plugin, custom code snippet and third-party API integration. Identify which ones are critical to business operations.
    • The surprise question: Ask the client: Does the site do anything unusual? Members-only areas, custom calculators, SSO integrations, event booking — things nobody mentioned in the initial scope.
    • SEO audit: Export all indexed URLs from Google Search Console. Map old URLs to new URLs. Identify high-value pages that must not lose rankings.

    Phase 2: Pre-Migration Preparation

    • Full backup (off-site): Complete file backup (wp-content, themes, plugins, uploads) plus a full database dump. Store the backup somewhere other than the source or destination server.
    • Staging environment: Set up the site on the new host with a temporary URL. Test everything before DNS changes. The staging environment should match the production configuration exactly.
    • Low-TTL DNS: Reduce DNS TTL to 300 seconds (5 minutes) at least 24 hours before the migration. This lets you propagate changes quickly without the standard 24-48 hour wait.
    • Update wp-config.php: Database credentials, salts, debug mode off, proper memory limits. Verify the PHP version matches or exceeds the old server.

    Phase 3: Migration Execution

    Step 1: Transfer Files

    Use rsync or a migration plugin (UpdraftPlus, WP Migrate, Duplicator) — not FTP, which is too slow and error-prone for large sites. Verify file counts match between source and destination.

    Step 2: Import Database

    Import via phpMyAdmin or WP-CLI. After import, run a search-and-replace for the old domain to the staging domain. Use WP-CLI's search-replace command or a tool that handles serialised data properly — never a raw SQL REPLACE.

    Step 3: Test on Staging

    Log in, check every page type, test forms, verify media loads, confirm plugin functionality. Run Lighthouse to catch performance regressions. Fix everything on staging before proceeding.

    Phase 4: Go-Live & Post-Launch

    • Change DNS and wait: Point the A record or nameservers to the new host. Monitor propagation. Do not make content changes on either site during this window.
    • SSL verification: Confirm SSL certificate is active and auto-renewing. Test all pages load over HTTPS without mixed content warnings.
    • Resubmit sitemap: Submit the new sitemap to Google Search Console and Bing Webmaster Tools. Request a re-crawl of key pages.
    • Monitor for 48 hours: Watch Google Search Console for crawl errors. Monitor uptime, form submissions, eCommerce orders. Keep the old server running for at least 72 hours as a rollback option.
    • Performance baseline: Run PageSpeed Insights and establish a post-migration benchmark. Compare to pre-migration numbers to confirm the move improved or maintained performance.

    SEO Protection Checklist

    ActionWhy It Matters
    Map all old URLs to new URLsPrevents 404 errors on indexed pages
    Set up 301 redirects for changed URLsPasses link equity to the new URLs
    Preserve meta titles and descriptionsMaintains existing search rankings
    Verify robots.txt is not blockingEnsures search engines can crawl the new site
    Resubmit sitemap to GSCAccelerates re-indexing of the migrated site
    Monitor crawl stats for 2 weeksCatches issues before they impact rankings

    Need a Safe Migration?

    I handle WordPress migrations for agencies — from simple hosting moves to complex platform transitions. Zero SEO loss, full testing protocol, and a rollback plan if anything goes sideways. Your client never knows I was involved.