How to fix a WordPress login redirect loop
Submitting the login form just bounces you back to it — usually a URL mismatch, cookie problem, or a plugin, worked through in order.
A login loop is a specific symptom: you enter the correct username and password, the page appears to submit, and you land back on the login screen as if nothing happened — no error message, just a bounce. It has a small number of causes, and they are worth checking in this order because each one is quicker to rule out than the next.
Cause 1: mismatched or cached cookies
WordPress uses cookies to track a logged-in session, and a stale or conflicting cookie is the single most common cause of this exact symptom.
-
Clear your browser's cookies for the site
Not your entire browsing history — specifically the cookies for this domain. See clearing your browser cache properly for how to do this precisely rather than clearing everything.
-
Try a private or incognito window
This loads the site with no existing cookies or cache at all, which either confirms the problem is cookie-related or rules it out entirely within seconds.
-
Try a different browser
If the private window did not resolve it, ruling out the whole browser is the next fastest check.
A login loop that disappears in a private window but returns in your normal browser points squarely at a cookie or browser extension conflict, not a problem with the site itself.
Cause 2: the site URL does not match what you are visiting
WordPress stores its own address in the database, and if that stored address does not match the address in your browser's URL bar — http instead of https, www present on one but not the other, or a leftover staging address — the login cookie gets set for one address while the page checks against another, and it never matches.
Check Settings, then General, if you can reach it, or open wp-config.php and look for existing WP_HOME or WP_SITEURL definitions. If they do not exactly match the address you are using to access the site, that mismatch is very likely your cause. See changing a WordPress site URL for how to correct it, including the database method for when the loop stops you reaching Settings at all.
Cause 3: a plugin is interfering
Security plugins, caching plugins, and anything that touches sessions or redirects are the most frequent plugin-related cause — a caching plugin serving a stale, logged-out version of the admin area, for instance, or a security plugin with an overly strict rule blocking the login process itself.
Deactivate plugins to test, using whichever method you can still reach:
- If wp-admin loads at all before the loop happens, deactivate plugins one at a time from the Plugins screen.
- If the loop happens before you can reach any admin screen, rename the plugins folder over FTP instead. See disabling plugins when you cannot log in for the full method.
If disabling all plugins resolves the loop, reactivate them one at a time, checking login after each, until you find the specific one responsible.
Cause 4: a corrupted or misconfigured .htaccess file
WordPress's own rewrite rules live in .htaccess, and a corrupted version — often from a plugin that failed partway through writing it, or a manual edit gone wrong — can interfere with how login requests are routed. Rename the current .htaccess file over FTP, then go to Settings, then Permalinks, and save once to have WordPress regenerate a fresh one. If you cannot reach Settings because of the loop, a default working version can be recreated by hand; the standard rules for a normal install are:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Cause 5: an incorrect password is being auto-filled
Occasionally the cause is simpler than any of the above: a browser's saved password is outdated, or a password manager is filling in the wrong credential. Type the username and password manually rather than relying on autofill, and confirm you are using the correct password before assuming the problem is technical. If you are not certain of the password, resetting a WordPress password is quicker than continuing to guess.
Working through it systematically
| Try this first | Rules out |
|---|---|
| Private browser window | Cookies and browser extensions |
| Check the site URL settings | URL mismatch |
| Disable all plugins | Plugin conflict |
| Rename .htaccess and resave permalinks | Corrupted rewrite rules |
Working down this list in order resolves the great majority of login loops, because it starts with the checks that take seconds and only moves to more involved fixes once the quick ones are ruled out. If you reach the end of this list with no success, contact support with what you have already tried, since at that point the cause is likely specific enough to your setup that it needs a look at the actual server logs.
Related reading
Three ways to change the WordPress site URL, and why a search-and-replace on the database is usually still required afterwards.
How to disable plugins when you cannot log inRename the plugin folder over FTP, or edit the database directly, when a broken plugin has locked you out of the dashboard itself.
How to reset a WordPress passwordThree ways to reset a WordPress password, from the ordinary email link to editing the database directly when nothing else works.
How to clear your browser cache properlySupport will often ask for this first, because a stale cached copy of a page is a surprisingly common cause of a fault that has already been fixed.