A password reset email is one of the more time-sensitive messages a site sends — a customer locked out wants it immediately — and because reset links expire, a delivery delay of even a few minutes can make the email effectively useless by the time it arrives, if it arrives at all.
Check whether any transactional email arrives, not just this one
Try triggering a different transactional email, such as a new order notification if you have WooCommerce, or a comment notification.
If those arrive normally and only password resets fail, the cause is specific to that email type — often a plugin’s own settings — rather than a site-wide sending problem, which changes where we look first.
Password reset email not delivering
Password reset emails not arriving in time to be useful, traced and fixed.
- Full backup taken before we start
- If we can’t fix it, you get your money back
- We never ask for your own password
This or something else?
| Password reset emails specifically don’t arrive, or arrive too late to be useful | This fix covers it |
| No email from the site arrives at all, not just resets | A broader, site-wide sending diagnosis |
| The reset link itself is broken or expired immediately, not a delivery issue | A different, link/session-related fix |
| WooCommerce order emails are the ones missing, not password resets | WooCommerce order email deliverability fix |
| This is actually about being locked out of wp-admin yourself, not a customer-facing issue | A different, admin access-recovery fix |
What you are seeing
- Customers reporting they never receive the password reset email
- The email arriving significantly delayed, after the reset link has expired
- Other emails from the site working normally
- May affect all users or seem to affect certain email providers specifically
Common causes
- A membership or login plugin overriding WordPress’s default reset email in a way that fails silently
- The reset email being caught by spam filters more aggressively than other email types
- Rate limiting on password reset requests interfering with legitimate ones
- The user’s account email address being outdated or mistyped in their profile
- A caching plugin serving a stale page that prevents the reset request from actually processing
What we do
- Trigger a real password reset and trace whether the email attempts to send at all
- Compare against other transactional email types to isolate whether this is reset-specific
- Check for plugin conflicts overriding the default reset email process
- Confirm the reset email isn’t being caught by spam filtering specifically
- Fix the identified cause and confirm with a real reset attempt
- Check reset link expiry timing is reasonable given typical delivery time
What is included
- Password reset emails confirmed delivering promptly
- The specific cause identified and corrected
- Testing across at least one other email type for comparison
- The pre-fix backup, kept for 30 days
Not included
- Recovering access for a specific user whose reset never worked before this fix — we can help directly if that’s urgent
- A broader sitewide deliverability fix, if that turns out to be the actual cause
- Changing how long reset links remain valid, beyond flagging if it’s unreasonably short
- Building a different account-recovery method beyond fixing the existing one
Questions about this fix
Is this the same as the wp-admin lockout fix?
No — this is about customer-facing password resets on the front end; if you yourself are locked out of wp-admin, that's a different, more urgent fix.
Why would only password resets fail if other emails work?
Some login or membership plugins handle the reset process differently from WordPress's default, which can introduce a failure point that doesn't affect other email types.
Could this be happening to only some customers and not others?
Yes, and that pattern is a useful clue — it can point toward a specific email provider filtering the message more aggressively.
What if the customer's email address on file is just wrong?
Worth ruling out first, since we can't deliver to an address that's mistyped — we check this as part of confirming where the actual failure is.
Will you tell affected customers directly, or is that on me?
That's your call — we fix the underlying cause, and you're best placed to decide whether reaching out to anyone affected makes sense.
Related fixes
If this is the second time this year
A bad update breaking the site is a symptom of updates not being tested first. Care plans run every update on a staging clone before it reaches your live site, which is the actual fix for this happening again.
Your access, your rules
Create a separate admin account for us and delete it when we are done. For anything else, we get in touch and agree a method — never a form field on this site, never by reply to an email.
We back up first, always
Before anything is touched we take a full backup and keep it for 30 days. If a fix goes wrong, we put the site back exactly as it was.
If it is not what you bought
If the problem turns out smaller than what you ordered, we refund the difference. If it is bigger, we stop and send a quote before doing any extra work.
If we cannot fix it
You get back what we received. Diagnosis is on us — you only pay when the problem is actually solved. The payment processor takes its fee before the money reaches us, so we never hold it and it is not ours to return. That is true here as everywhere else.
If it comes back
Reply within seven days of delivery and we put it back on the bench at no cost. The fix is not finished until it holds.
What we are responsible for
If something goes wrong with a fix, our responsibility is limited to what you paid for it. We take a full backup first so mistakes can be undone, and we tell you before doing anything outside what you bought.