Migration troubleshooting guide

wp-admin locked out after moving hosts? Check these first.

Different problem from a rejected password: this is what to check when wp-admin won't load at all, or blocks you before a login form even appears, right after a host-to-host move.

Five causes specific to a host move

Each of these can make a perfectly healthy WordPress installation look locked out, and each is unrelated to the database, the password, or the account itself.

SymptomLikely causeWhere to check
Inconsistent behaviorDNS still partly resolving to the old hostQuery DNS directly, don't trust the browser
Blocked before loginAn IP allowlist or geo-block carried over from the old hostSecurity plugin settings in the database, or the new host's firewall
A password prompt from the browser itselfLeftover staging or "coming soon" HTTP authNew host's control panel; a stray .htpasswd
Blank page or fatal errorFile permissions wrong after the transferDirectory/file ownership and permission bits
"Too many attempts" immediatelyA login-limiting plugin's ban list migrated with the databaseThat plugin's settings or database table

Check DNS before anything else

A partially propagated DNS change means some requests land on the old host and some on the new one — from the same browser, sometimes the same minute. That looks exactly like an intermittent lockout, but nothing about WordPress is actually broken. Query DNS directly instead of trusting what a browser tab shows:

Query the current A record dig +short example.com

If that doesn't match the new host's IP yet, either wait out propagation or add a temporary entry to your local hosts file so you can test the new host directly without DNS in the way.

Work through the rest in this order

  1. 01
    Confirm DNS resolves where you think it does.

    Rule this out first — every other check is pointless if you're intermittently testing the wrong server.

  2. 02
    Rule out staging or maintenance protection.

    Check the new host's control panel for a site-wide password or "coming soon" toggle, and look for a stray .htpasswd or maintenance-mode plugin that traveled over from a staging copy.

  3. 03
    Check for an inherited IP or geo restriction.

    A security plugin's IP allowlist is normal database content, so it migrated along with everything else — and the new host's outbound IP, or yours if you're behind a VPN, may simply not be on the old list.

  4. 04
    Verify file ownership and permissions.

    Transfers between hosts — especially across different control panels — can leave files owned by the wrong user or with permissions the new host's PHP process can't work with. Directories around 755 and files around 644, owned by the web server user, is the usual target.

  5. 05
    Check a login-limiting plugin's ban list.

    If it stores attempts in the database, testing from the same IP during the move can trip its own lockout. Clear the relevant table or setting rather than repeatedly retrying.

Quick answers

Will clearing my browser cache fix this?

It can mask DNS propagation delays by forcing a fresh lookup, but it doesn't fix any of the underlying causes — an inherited IP block, wrong file permissions, or a leftover maintenance password are all still there afterward.

Why does the public site work but wp-admin specifically doesn't?

Several of these causes — IP restrictions, staging passwords, some firewall rules — are commonly scoped to /wp-admin/ and wp-login.php specifically, leaving the rest of the site untouched. That split is a useful clue, not a coincidence.

I can log in but get a blank white screen — is this the right guide?

Not quite. A blank screen after a successful login is usually a PHP fatal error or a plugin/theme conflict surfaced by the new host's PHP version, which is a different diagnosis than being blocked before login.

How do I check DNS without waiting for propagation?

Query it directly with dig or nslookup rather than relying on your browser, or add a temporary hosts-file entry pointing the domain at the new host's IP so you can test it in isolation.

Primary reference: Migrating WordPress.