You click “Lost your password?”, type your email, and wait. Nothing arrives. Not in the inbox, not in spam, not ten minutes later. If you need to reset your WordPress admin password without email, the good news is that WordPress never actually needed that email in the first place. The password lives in your database, and anyone with hosting access can change it directly.
This guide covers four ways to get back into a locked WordPress site, from the easiest (one click in your hosting panel) to the most hands-on (editing the database in phpMyAdmin). Pick the one that matches the access you have.
Why Isn’t the WordPress Password Reset Email Arriving?
The WordPress password reset email usually fails because WordPress sends mail through the server’s basic PHP mail function, which many hosts block or which Gmail and Outlook silently reject as unauthenticated. The reset link was generated correctly. It just never made it to your inbox.
Two other causes are worth ruling out. The admin account might be tied to an old email address you no longer check, or you might be typing a username that doesn’t exist. Either way, the fix below doesn’t depend on email at all. Once you’re back in, fix the root cause so the next reset works normally. The full walkthrough is in WordPress Not Sending Emails? Here’s the Actual Fix.
Which Password Reset Method Should You Use?
The best method to reset a WordPress password without email depends on the access you have. If you can log into your hosting control panel, use its WordPress tool first. If you have SSH, WP-CLI is the fastest. phpMyAdmin and the one-time code file are fallbacks that work on almost any host.
| Method | Access Needed | Difficulty | Best For |
|---|---|---|---|
| Hosting panel (WP Toolkit, Softaculous) | cPanel or Plesk login | Easiest | Most shared hosting users |
| WP-CLI | SSH access | Easy if you use a terminal | Developers, VPS and managed hosts |
| phpMyAdmin | Database access via hosting panel | Medium | When no WordPress tool is installed |
| One-time code file | FTP or File Manager | Medium | No database or SSH access |
Method 1: Reset the Password From Your Hosting Control Panel
Most hosting control panels include a WordPress manager that can change an admin password with no email involved. In cPanel this is usually WP Toolkit or Softaculous, and in Plesk it’s the WordPress section. This is the safest method because the tool hashes the new password correctly for you.
- Log into your hosting account and open cPanel or Plesk.
- Open WP Toolkit (or Softaculous, then “All Installations”).
- Find your site and look for a “Login” or “Setup” or “Admin credentials” option.
- Choose the admin user, enter a new strong password, and save.
Many of these tools also have a one-click “Log in to WordPress” button that skips the password entirely. If you see it, use it, then change your password from Users > Profile inside the dashboard.
Method 2: Reset the WordPress Password With WP-CLI
WP-CLI resets a WordPress password in two commands: one to find the admin user, one to set the new password. It requires SSH access and must be run from the WordPress root folder, where wp-config.php lives.
First, list the administrator accounts so you know the exact user ID:
wp user list --role=administrator --fields=ID,user_login,user_email
Then set a new password for that user. Replace 1 with the ID from the list:
wp user update 1 --user_pass='Your-New-Strong-Passw0rd' --skip-email
The --skip-email flag stops WP-CLI from trying to send a “password changed” notification, which would fail anyway if email is broken. One caveat: the password you typed is now saved in your shell history. Treat it as temporary and change it again from the WordPress dashboard once you’re logged in.
If you’re not in the WordPress folder, add --path=/path/to/wordpress to either command.
Method 3: Reset the WordPress Password in phpMyAdmin
You can reset a WordPress password in phpMyAdmin by editing the user_pass field in the users table and saving it with the MD5 function selected. WordPress accepts that MD5 value once, then automatically upgrades it to a stronger hash the first time you log in.
- Open phpMyAdmin from your hosting panel and select your WordPress database. If you’re not sure which database it is, check the
DB_NAMEline in wp-config.php. - Open the users table. It’s usually
wp_users, but your prefix may differ. Check$table_prefixin wp-config.php. - Click “Edit” on the row with your admin username.
- In the
user_passrow, delete the existing value and type your new password in plain text. - In the “Function” dropdown for that row, choose MD5. Then click “Go”.
The MD5 step is where most phpMyAdmin resets fail. If you skip the function dropdown, WordPress stores your password as plain text and the login will never match. Watch for extra spaces too.
Does the phpMyAdmin Method Still Work on WordPress 6.8 and Newer?
Yes. According to the Make WordPress Core announcement, WordPress 6.8 switched its default password hashing to bcrypt. A follow-up core changeset kept login support for MD5 hashes and upgrades them to bcrypt on the next successful login. So the MD5 reset in phpMyAdmin still works, and logging in once replaces the weak MD5 hash with a strong one.
That upgrade only happens when you log in. Don’t do an MD5 reset and walk away. Log in right after, then set a fresh password from your profile to be safe.
Method 4: Reset the Password With a One-Time Code File
If you only have FTP or File Manager access, you can reset a WordPress password by uploading a small must-use plugin that calls the wp_set_password() function, loading the site once, then deleting the file. The file must be removed immediately, because it resets the password on every page load.
In wp-content, create a folder named mu-plugins if it doesn’t exist. Inside it, create a file called reset-admin-pass.php with this code:
<?php
// TEMPORARY: delete this file right after you log in.
add_action( 'init', function () {
$user = get_user_by( 'login', 'your-admin-username' );
if ( $user ) {
wp_set_password( 'Your-New-Strong-Passw0rd', $user->ID );
}
} );
- Replace the username and password with your own values.
- Visit any page on your site once.
- Delete
reset-admin-pass.phpfrom the server. - Go to
/wp-login.phpand log in with the new password.
A must-use plugin is better here than editing your theme’s functions.php. It can’t be accidentally overwritten by a theme update, and a typo won’t take down your theme. Just don’t forget step 3. Leaving the file in place means your password resets on every visit, and the plain-text password sits on the server.
What If the Password Is Correct but You Still Can’t Log In?
If a freshly reset WordPress password still doesn’t get you into the dashboard, the password was never the problem. The usual causes are a login redirect loop, a security plugin lockout, a two-factor authentication prompt you can’t complete, or a compromised account.
- The login page just reloads. That’s a cookie, cache, or URL mismatch, not a password issue. See WordPress Login Page Refreshing and Redirecting? Here’s How to Fix It.
- “Too many failed login attempts.” A security plugin has locked your IP. Rename that plugin’s folder in
wp-content/pluginsvia FTP to disable it, log in, then rename it back and clear the lockout. - Stuck at a 2FA code. Use your backup codes. If you have none, temporarily disabling the 2FA plugin the same way gets you in. Then set it up again properly, as covered in WordPress Two-Factor Authentication: How to Set It Up in Under 10 Minutes.
- Your admin user is missing or demoted. If you didn’t change it, treat this as a security incident. Check Signs Your WordPress Site Is Hacked (and What to Do First) before doing anything else.
What to Do Right After You Get Back In
Getting back into WordPress is only half the job. Once you’re logged in, spend five minutes making sure you don’t end up locked out again.
- Set a new password from Users > Profile. Any password that passed through a terminal, a database field, or a code file should be considered temporary.
- Check your account email. Make sure it’s an address you actually read. Also check Settings > General > Administration Email Address.
- Review Users > All Users. Look for administrator accounts you don’t recognize.
- Fix email delivery. Install an SMTP plugin and send a test email, so the normal “Lost your password?” link works next time.
- Save the password in a password manager. Most lockouts start with a password that only existed in someone’s memory.
The Bottom Line
You don’t need the reset email to get back into WordPress. You need access to the server the site runs on. Start with your hosting panel’s WordPress tool, use WP-CLI if you have SSH, and fall back to phpMyAdmin or a one-time mu-plugin when nothing else is available. Then fix the email setup, because a site that can’t send a password reset email is probably failing to send contact form and order emails too.
Frequently Asked Questions
You can reset a WordPress password without the reset email by using your hosting panel’s WordPress tool (such as WP Toolkit or Softaculous), the WP-CLI command wp user update, or by editing the user_pass field in phpMyAdmin with the MD5 function selected. All three change the password directly on the server, so no email is needed.
Yes. WordPress 6.8 and newer use bcrypt by default, but WordPress still accepts an MD5 password hash set in phpMyAdmin and automatically upgrades it to bcrypt the first time you log in successfully.
You can find your WordPress admin username in the user_login column of the wp_users table in phpMyAdmin, or by running wp user list --role=administrator in WP-CLI. WordPress also lets you log in with the account’s email address instead of the username.
A WordPress password reset link shows as invalid when it has expired (links expire after 24 hours by default) or when a newer reset request replaced it. Request one fresh link, use only the most recent email, or skip email entirely and reset the password from your hosting panel or database.
Resetting a WordPress password through phpMyAdmin is safe if you edit only the user_pass field and select the MD5 function. Take a database backup first, log in immediately afterward so WordPress upgrades the hash, and then set a new password from your profile.

Leave a Reply