Give your WordPress site its first task.
Connect the site you already have, add your agent to Slack or Telegram, and tell it what you need.
Connect your siteStart with 500 free credits. No credit card needed.
A broken WordPress login is usually one of two problems. Either WordPress rejects your username and password, or it accepts them and sends you straight back to the login form. A password reset fixes the first one and does nothing for the second, so find out which one you have before you change anything.
“Login not working” covers about ten different failures. WordPress might reject your password. It might accept it and bounce you back to the form. The login page might be missing, a security plugin might have locked you out, or the site might be crashing before the form even loads. Each of these has a different fix.
The most common mistake in support threads is resetting the password again and again. That only works when the password was the problem. So start with one question: does WordPress reject your credentials, or does it accept them and then fail? If you aren’t sure you’re even on the right login page, our guide on how to sign in to WordPress covers the default addresses first.
Watch what happens after you click Log In. Each symptom points to a different layer of the site.
| What you see | Where the problem usually is | Start here |
|---|---|---|
| “The password you entered is incorrect” or “unknown username” | The account or the password | Basic checks, then a password reset |
The form reloads or returns to itself, often with reauth=1 in the address | Cookies, site URLs, cache, CDN or a plugin | The loop section below |
| “Cookies are blocked or not supported by your browser” | Authentication cookies | The loop section below |
| “Too many failed attempts”, a greyed-out button, a CAPTCHA that never passes | A security or login plugin | The security plugin section below |
| /wp-admin returns a 404 or sends you to the homepage | A login-hiding plugin, redirect rules or the host | The hidden login page section below |
| “There has been a critical error” or a blank white page | A PHP fatal error | The fatal error section below |
| “Error establishing a database connection” | The database or the server | Your host. A password reset can’t help here. |
These checks take two minutes, you can’t break anything with them, and they tell you whether the problem is in your browser or on the site.
Use the “Lost your password?” link on the login page. If the email never arrives, check spam first. WordPress’s troubleshooting FAQ says site email can fail when the server’s mail setup isn’t configured. The email may also be going to a different address from the one you expect. The admin notification address in Settings and your user account’s email are separate fields, and they don’t have to match.
Also check that you’re using the right account. WordPress.com and a self-hosted WordPress site have separate logins. Your host, your domain registrar and WooCommerce.com each have their own login as well.
If the reset email doesn’t work, your hosting account is the fallback. Most hosts let you reset or create WordPress users from their control panel. With SSH and WP-CLI you can do it directly:
wp user list --fields=ID,user_login,user_email,roles
wp user update 1 --user_pass='temporary-long-password'
Log in, then set a proper password from your profile right away, because the temporary one is now in your shell history. Editing user_pass in phpMyAdmin is the last resort. DreamHost’s knowledge base calls that method “no longer recommended”. Old recipes that tell you to paste an MD5 hash are a common source of failed attempts.
If the reset worked but the old password still seems to apply, the site may have a server object cache. DreamHost documents this on DreamPress Pro, where running wp cache flush over SSH clears the stale data.
This failure has nothing to do with the password. WordPress accepted your credentials but couldn’t set or read its login cookie, or a redirect sent you somewhere else first. WordPress’s Advanced Administration Handbook lists these causes:
WP_HOME and WP_SITEURL constants conflict, or the home and siteurl database options don’t matchMigrations are a common trigger. Duplicator reviewed more than 8,000 of its support tickets and found that nearly 1 in 10 migration tickets were wp-admin lockouts after a successful move, usually from URL mismatches or redirect loops. Read the stored values over SSH:
wp option get home
wp option get siteurl
grep -E "WP_HOME|WP_SITEURL|COOKIE_DOMAIN" wp-config.php
WordPress’s wp-config documentation explains the two settings. WP_SITEURL is where the core files live and WP_HOME is the public address. Constants in wp-config override the database options. Don’t just set both to the same value. On sites installed in a subdirectory they are meant to be different. If old URLs are left in the content, back up first and preview the fix before running it:
wp search-replace 'http://old-domain.com' 'https://new-domain.com' --dry-run
Clearing your browser cache doesn’t touch the host’s page cache, a caching plugin, a CDN, or an object cache in wp-content/object-cache.php. Exclude wp-login.php and any custom login address from page caching, then clear the server cache. In one Reddit case the loop came from a CDN the host had switched on. Turning it off fixed the loop. If someone else controls your DNS or CDN, for example a former developer’s Cloudflare account, changes inside WordPress may not help.
This variant means something printed output before WordPress could send its cookie headers. In one resolved WordPress.org thread, the cause was two blank lines at the end of the theme’s functions.php. The poster had already allowed cookies and cleared them, and neither helped. Look for whitespace after a closing ?> in functions.php, wp-config.php or a recently edited plugin file.
Lockout, CAPTCHA, 2FA and login-hiding plugins protect the login page, and they also cause many of the lockouts people report. Two resolved WordPress.org threads show the pattern:
Without dashboard access, open your host’s file manager or SFTP, go to wp-content/plugins, and rename the suspect plugin’s folder, for example wordfence to wordfence-off. WordPress deactivates a plugin whose folder it can’t find. Log in, fix the setting that caused the problem, and turn the plugin back on. Don’t leave it off as the fix.
Plugins such as WPS Hide Login move the login page on purpose. Their documentation says that while the plugin is active, /wp-login.php and /wp-admin become inaccessible, so guessing the default address won’t work. The custom address is stored as whl_page in the options table, or in sitemeta on multisite:
wp option get whl_page
Deleting or renaming the plugin’s folder brings back the default login. A cached 404 or a short redirect loop can follow, so clear the cache before assuming it failed.
If you can still reach any admin screen, use the Health Check & Troubleshooting plugin. Its troubleshooting mode turns plugins off and switches to a default theme for your user only. Visitors keep seeing the normal site while you turn plugins back on one at a time.
If you’re locked out completely, rename folders one at a time, starting with whatever changed most recently. Renaming the whole plugins folder gets you in fastest, but it also switches off forms, checkout and security for every visitor, and it doesn’t tell you which plugin was at fault. Updates are a frequent trigger. In one thread, WPO365 version 42.2 sent /wp-admin to the homepage, and rolling back to 41.3 fixed it. Our guide to fixing WordPress plugins that stop working covers the isolation method in more detail.
A critical error message or a white screen is a PHP fatal error, not a login problem. WordPress’s Recovery Mode documentation says WordPress can email the admin a special login link after some fatal errors. Through that link you can deactivate the failing plugin or theme. It only works for some fatal errors, so if no email arrives, read the PHP error log before you start guessing. The file path in the error usually names the plugin. Our WordPress white screen guide walks through it.
“Error establishing a database connection” means WordPress failed before it could show the form. Check the database name, user and password in wp-config.php against your hosting panel, and contact your host if they match.
Store customers log in through a different path from admins. WooCommerce’s documentation says the My Account page is set under WooCommerce → Settings → Advanced, and that page needs the [woocommerce_my_account] shortcode to show the sign-in form. For Social Login, WooCommerce lists these causes:
Exclude /wc-api/*, the wc-api query argument and wp_woocommerce_session* cookies from caching. Facebook login also fails when iThemes Security’s “Filter Long URL Strings” is on.
Stop and get help in any of these situations:
Ask the original developer or agency first, then your host. Also check now who owns the domain, the hosting and the CDN account. A developer who disappears with your registrar login is a bigger problem than any login loop.
If you’d rather not do this yourself, SiteSelf handles WordPress bug fixes like this one. You describe the symptom in chat. It needs hosting (SSH) access for file, cache and log work, says what it’s about to change and whether it can be undone, and reports what it checked afterwards.
Both work on a standard install. Visiting /wp-admin while logged out redirects to wp-login.php. If WordPress lives in a subdirectory, the path includes that folder. A login-hiding plugin replaces both with a custom address.
If one device works, the site is fine and the problem is local to the other device. Clear that browser’s cookies for your domain, turn off extensions, and check security software or a VPN. A loop that happens on every device and for every admin points back to the site.
Rename it, don’t delete it. Renaming lets you test whether a rule in it is the cause and put it back in seconds. Deleting it removes your permalink rules and any security rules your host or plugins added. Once you’re logged in, regenerate the WordPress section by saving Settings → Permalinks.
Access through the REST API uses Application Passwords, not your login password. Create one under Users → Profile → Application Passwords and give it to the tool. Retrying the admin password will keep failing however correct it is.
Changing the salts logs everyone out, which helps after a suspected compromise. It rarely fixes a loop caused by URLs, caching or a plugin. In one Reddit thread a team changed the salts and turned on debugging without effect, and a login-related plugin turned out to be the cause.
No. WordPress removed old advice that involved changing core files, and core updates overwrite any edits you make there. Every fix in this article works through settings, plugins, wp-config.php or the host.
Troubleshooting
A 500 error on WordPress means something failed on the server. It doesn’t say what failed. The fastest fix starts with the log entry for the failing request, so find that before you disable anything.
Read article ›Troubleshooting
An HTTP 405 means one URL refused one method, such as a form’s POST or an integration’s PUT. The code doesn’t tell you which layer refused it, so capture the failing request first and fix only what the evidence points to. Saving permalinks or switching off security rarely solves it.
Read article ›Troubleshooting
DNS_PROBE_FINISHED_BAD_CONFIG means Chrome could not turn your domain into an IP address. Your WordPress site never got the request, so plugins, themes and settings are not the cause. The first test is whether anyone else sees it: if only one device or network does, fix the local DNS path, and if every network does, fix the domain’s DNS records.
Read article ›Connect the site you already have, add your agent to Slack or Telegram, and tell it what you need.
Connect your siteStart with 500 free credits. No credit card needed.