TUTORIAL

How to Require Email Verification Before Login in WordPress

Last Updated: 9 mins By: Rabin Shrestha

Every open registration form eventually collects an account nobody can actually reach: a typo’d Gmail address, a disposable inbox used once and abandoned, or a script testing your form for open relays. None of that is malicious in the dramatic sense — it’s just noise. But noise in your user table has a cost. Welcome emails bounce. Password-reset requests go nowhere. On a membership site, it’s worse: you’ve handed access to gated content to an email address nobody has proven they control.

Email verification closes that gap with one rule: an account can’t log in until someone clicks a link sent to the address they typed in. It doesn’t require a human reviewer, and it doesn’t slow down a real signup by more than the time it takes to open an inbox. Here’s the thing: this is a free, built-in option in User Registration & Membership— not a paid add-on. Every competitor covered while researching this guide gates the same feature behind a paid tier.

Note: This guide assumes User Registration is already installed with a registration form built. If you’re starting from scratch, install the plugin and create your first form, then come back here.


What You’ll Need

  • User Registration & Membership — free version is all you need for this
  • A registration form already built and published on your site
  • Access to an inbox you control, for testing the verification email
  • Working outbound email on your site — if you’re not sure, see the Troubleshooting section below

Why Require Email Verification on Your Registration Form

Three symptoms usually show up together on a site without this in place:

  • Spam and bot signups. Scripted registrations from junk or disposable domains that inflate your user count and, on membership sites, can be used to probe for free access.
  • Bounced onboarding email. Welcome messages, receipts, and password resets that silently fail because the address was mistyped at signup — and the user has no idea why they never heard back.
  • Unverifiable ownership. Anyone who can type an email address into a form can register with it. Without confirmation, you have no evidence the account holder is who they claim to be.

How to Set Up Email Verification

This is a free, built-in option — no separate plugin required. Open your registration form, go to its Form. Settings tab, and set User Approval and Login Option to Auto Approval After Email Confirmation. Here’s each step in full:

Step 1: Enable Email Confirmation on Your Registration Form (Free)

Open the form in the form builder and switch to the Form Settings tab in the right-hand panel. Find User Approval and Login Option and change it from the default (Auto approval and manual login) to Auto Approval After Email Confirmation. Save the form.

user-registration-registration-form

This setting lives per form, so different registration forms on the same site — a free-tier signup versus a paid-membership one, say — can use different rules.

User Registration Form Settings

Step 2: Customize the Verification Email

Once you’ve completed the previous step, go to Settings › Emails ›To UserEmail Address Confirmation. The subject and body are both editable, and the body ships with a working confirmation link built from smart tags — {{username}}, {{blog_info}}, and a {{email_token}} that resolves to the actual verification URL. Rewrite the copy in your own voice; the tags and the link structure stay intact as long as you don’t delete them. Use the Preview link on that screen to check it before it goes live.

User Registration Email Address Confirmation Email Template

Step 3: Know What Happens to Unverified Accounts

Until the link is clicked, a login attempt is rejected with: “Your account is still pending approval. Verify your email by clicking on the link sent to your email” — with a Resend Verification Link the user can click right there on the login screen. No separate plugin or custom message is needed; it’s the built-in error.

Login Pending Approval Message

Clicking the confirmation link logs the user in automatically by default — verification is the only gate. If you also want a person to review the account after it’s confirmed, that combination exists too.

Note: Choosing Admin Approval After Email Confirmation instead adds a manual review step after the address is verified. The user sees a “waiting for admin approval” message instead of being logged in, and you get a separate notification email with one-click Approve / Deny links. This combination is in User Registration Pro.

Either way, an admin can trigger a fresh verification email for a specific person from the Resend Verification row action on the Users screen — handy for the “I never got the email” support ticket.

Step 4: Test the Full Signup, Verify, Login Flow

Register a test account with an inbox you control and confirm the email lands within a minute or two. Click the link and check you land logged in (or see the approval-pending message, if you’re using the Pro combination). Then open an incognito window and try logging into that same account before clicking the link, to confirm it’s actually blocked and the resend prompt appears. Skipping this last check is the most common reason sites discover the gate isn’t working only after a user complains.


What Happens If a User Never Verifies Their Email?

By default: nothing, indefinitely. The account sits in your Users list flagged as pending, holding a username and email address, unable to log in, until either it’s verified or an admin removes it by hand. On a site that gets steady spam signups, that list grows forever.

Auto-Expiring Unverified Accounts (Pro)

User Registration Pro can clear that list on a schedule instead. Under Settings › Advanced › Auto Delete Users, turn on the toggle and set three things: a Duration (daily, weekly, or monthly), which User Status to target (pending or denied accounts, specifically — not active members), and which User Role to limit it to. It runs as a background batch process, so it works through a large user table without timing out the page that triggered it.

Auto Delete Pending Users

It’s the same idea WooCommerce stores use to auto-cancel unpaid orders that were never completed — a self-cleaning funnel — applied to your user table instead of your order table, and built into the plugin rather than stitched together with a custom cron job.


Email Verification vs. Admin Approval: Which Should You Use?

User Registration’s User Approval and Login Option field has five values worth knowing the difference between:

OptionWhat it checksBest for
Auto approval and manual loginNothingLowest-friction signup; default behavior
Auto approval and auto loginNothingLow-stakes communities where instant access matters more than gatekeeping
Admin approvalA human reviewer’s judgmentPrivate or invite-style communities — doesn’t catch a mistyped or fake email, since nobody verifies the address itself
Auto approval after email confirmationThat the address is real and reachablePublic sites fighting spam and typo signups, with no admin bottleneck
Admin approval after email confirmation (Pro)Both of the aboveMembership or paid communities where spam and signup quality both matter

If manual review — with or without email confirmation on top — is what your site actually needs, that workflow is covered in full in How to Approve Users in WordPress; this guide sticks to the confirmation step itself rather than repeating that one.


Troubleshooting: Verification Emails Not Sending

Two symptoms account for most “verification isn’t working” reports, and they have different fixes.

The email never arrives. WordPress sends mail through PHP’s built-in mail() function by default, and most hosts throttle, block, or fail to authenticate it — so it’s silently dropped or filed as spam. This is almost always fixed by connecting a real SMTP or transactional email provider instead of relying on PHP mail; SmartSMTP handles that setup for you, free, right from your WordPress dashboard. User Registration also logs failed sends — look for a “wp_mail() returned false” entry in the plugin’s debug log to confirm that’s actually the issue before troubleshooting further.

The link says “Token Expired.” By design: a confirmation link is only valid for 24 hours. That’s not a bug to fix — the resolution is clicking Resend Verification Link for a fresh one, which is exactly what the error message tells the user to do.


Want the full picture before you decide between free and Pro? See what’s included in User Registration Pro — the free plan covers everything in this guide.


Frequently Asked Questions

Does email verification stop spam registrations completely?

No. It filters out mistyped addresses and one-time disposable inboxes, but a determined bot that also controls the inbox it registers with can still verify itself. Pair it with a captcha — reCAPTCHA, hCaptcha, Cloudflare Turnstile, or User Registration’s own Force Captcha setting — or a honeypot field for actual bot resistance. Email confirmation and spam-blocking solve different problems, and neither replaces the other.

Can I verify existing users retroactively?

No built-in bulk action does this. The confirmation requirement applies to registrations made after you turn it on; accounts created before that aren’t retroactively flagged as unverified. If you need to handle a handful of existing accounts as exceptions, that’s a manual, case-by-case decision rather than something to script across your whole user table.

Will unverified users count toward my user limit?

User Registration itself doesn’t cap the number of WordPress users on your site. If you’re running paid membership plans with a seat or member cap, that limit is a property of the plan, not of the verification step — check whether your plan counts pending signups the same as approved members, since that’s a membership-tier setting rather than anything email confirmation changes.

Is email verification free, or do I need User Registration Pro?

Free. Auto Approval After Email Confirmation ships in the free core plugin — no add-on required. Pro is only needed if you also want a human review step (Admin Approval After Email Confirmation) or scheduled auto-deletion of stale unverified accounts.

Can I customize the verification email design?

Yes. Settings › Emails › Email Address Confirmation gives you a full rich-text editor for both the subject and the body, with the same smart-tag system used across every other User Registration email — so you can add your logo, footer, and tone of voice without touching code.


Wrapping Up

Now you know how to require email verification before login — a five-minute setting change that cuts spam signups and typo’d addresses without adding friction for real users. It’s free in User Registration’s core plugin, with no separate add-on to buy.

Want admin review on top of email confirmation, or stale unverified accounts to clean themselves up on a schedule? Both of those live in User Registration Pro.

You might also like:

How to Require Email Verification Before Login in WordPress
Scroll to top

Pin It on Pinterest