FluentAuth · WordPress security

Protect your site.
Make signing in easier.

Give your team stronger login protection and your members an easier way in. Review site activity and investigate file changes from one dashboard.

Built by WPManageNinja · 10,000+ active installs

FluentAuth 3.0.0 is here → Passkeys, authenticator apps, a security checklist and recovery tools.

FluentAuth dashboard with login activity, a chart and security status.
Try the dashboard Click around. Make yourself at home.
Your login activity and security status, in one place.

Explore passkeys →

Security checklist · New in 3.0

See what needs your attention.

Review configuration issues, exposed files and account risks. Each finding explains what it means and the next step to take.

Explore the security checklist →
FluentAuth Findings screen with action, recommendation, passed and dismissed filters.
File monitoring · New in 3.0

Know when your files change.

Compare core, plugins and themes with official WordPress.org releases. Review differences before restoring a modified file, and keep snapshots for custom extensions.

See how file monitoring works →
File monitoring results listing WordPress core, plugins and themes.
Login page designer

Make the login page yours.

Your logo, colours and welcome message. Design the login and signup screens with a live preview, then send each role to the right page after sign-in.

Explore the login page designer →
FluentAuth login page designer with banner controls and a live form preview.
How it works

Watch a sign-in being checked.

FluentAuth hooks the login WordPress already has and adds a gate in front of the password check and one behind it. Same five gates every time. What changes is who is knocking.

At the door

An editor signs in

The ordinary case, and the one that has to stay quick.

  1. Address rulesPassed

    Block list, and roles tied to an allow list

    Not on your block list, and no role restriction stands in the way.

  2. Attempt limitPassed

    Failures from this address in your window

    First attempt in the window, so there is nothing counted against this address.

  3. PasswordPassed

    Checked by WordPress, as it always was

    Correct. WordPress checks it exactly as it did before you installed anything.

  4. Second factorProof required

    Passkey, authenticator app or emailed code

    Their role needs one, so they touch a passkey or type the code from their app.

  5. RecordedPassed

    Written to the log, alerted, and routed by role

    Logged with the method, address and browser, and they land on the page their role should see.

A script guessing passwords

The attack nearly every WordPress site actually gets.

  1. Address rulesPassed

    Block list, and roles tied to an allow list

    Not blocked yet. It is a fresh address, which is rather the point of a botnet.

  2. Attempt limitRefused here

    Failures from this address in your window

    Five failures inside thirty minutes, and the sixth is refused before the password is ever looked at.

  3. PasswordNot applicable

    Checked by WordPress, as it always was

    Never reached. A refusal at the gate above costs your database nothing.

  4. Second factorNot applicable

    Passkey, authenticator app or emailed code

    Never reached.

  5. RecordedPassed

    Written to the log, alerted, and routed by role

    Every attempt is in the log. The block is one row whose count climbs, not hundreds of rows, and you get at most one email a minute.

A password that leaked

Reused somewhere else, breached there, and now correct here.

  1. Address rulesPassed

    Block list, and roles tied to an allow list

    Clean. The attempts are spread over hundreds of addresses, a few each, so no single one is ever blocked.

  2. Attempt limitPassed

    Failures from this address in your window

    Passed, and that is the weakness of counting by address. So FluentAuth also counts by account.

  3. PasswordPassed

    Checked by WordPress, as it always was

    Correct. The password is genuinely this user’s; it just is not this user typing it.

  4. Second factorProof required

    Passkey, authenticator app or emailed code

    Failures against this one account have passed three times the per-address limit, so a code goes to the account’s own inbox. The owner can read it. Whoever bought the password cannot.

  5. RecordedPassed

    Written to the log, alerted, and routed by role

    Logged. An address that has signed in to this account before is trusted, so your own team never meets the challenge.

A member with a magic link

No password at all, which changes what each gate is for.

  1. Address rulesPassed

    Block list, and roles tied to an allow list

    Still applied. A link to your inbox is not a way around a role that may only sign in from the office.

  2. Attempt limitNot applicable

    Failures from this address in your window

    Skipped. Redeeming a link from your own inbox is not a password guess, so a locked-out admin can still get back in.

  3. PasswordNot applicable

    Checked by WordPress, as it always was

    There is not one. Holding the mailbox is the proof.

  4. Second factorProof required

    Passkey, authenticator app or emailed code

    An emailed code would prove the same mailbox twice, so it is not asked for. A passkey or authenticator code, if the role needs one, still is.

  5. RecordedPassed

    Written to the log, alerted, and routed by role

    Logged as a magic link, so the record says how they got in and not merely that they did.

Someone using Google

A provider sets the session itself, so the rules are applied there too.

  1. Address rulesPassed

    Block list, and roles tied to an allow list

    Applied here as well. Google says who somebody is. It does not say where they are.

  2. Attempt limitNot applicable

    Failures from this address in your window

    Nothing to count. No password is being guessed.

  3. PasswordNot applicable

    Checked by WordPress, as it always was

    None. Google vouches for the address, and the account is matched or created.

  4. Second factorProof required

    Passkey, authenticator app or emailed code

    Still required for the roles that need one. A provider button is not a way past it.

  5. RecordedPassed

    Written to the log, alerted, and routed by role

    Logged as a Google sign-in, next to every other way into the site.

The order is the order the plugin checks in. Attempt limits, address rules and second factors each have their own page.

A simpler sign-in

Less password friction.
More ways to get in.

Let members choose Google, GitHub or Facebook, or email them a one-time magic link. Keep device verification for the roles that need it.

An email-based magic login form on a customised WordPress login page.
Magic login on the local site's customised login page.
From the WordPress.org reviews
“All the most important security features, without the unnecessary and the bloat.”

Selected reviews from WordPress users about everyday use, support and performance.

★ 4 average from 30 reviews on WordPress.org ↗
FAQ

Questions, answered.

What does FluentAuth cost? Could there be a Pro version?

The features shown here are included in the $0 plugin. We may introduce a Pro version in the future, but these features will remain in the free plugin. We will not remove them or move them behind a paywall. The download is FluentAuth 3.0.0. See pricing.

Is FluentAuth a full security plugin? Do I still need a suite?

FluentAuth covers login protection, passkeys and authenticator apps, activity logs, file checks, a security checklist and recovery tools. It does not include a web application firewall or guarantee malware removal. Combine it with updates, backups and the protections your host provides. Declare trusted proxies before relying on forwarded visitor addresses.

Can I add FluentAuth to an existing site?

Yes. Start by reviewing the protections and sign-in routes you already use. If another plugin controls login limits, verification or redirects, decide which tool will own each job. Test a representative staff account and member account, including password recovery, before changing the policy for everyone. Follow the team login guide for a staged rollout.

Which protections should I enable first?

Begin with the accounts that can change your site. Review their roles, configure login attempt limits and choose a verification policy. Then confirm that account recovery and alert delivery work. Add social login, custom forms and redirects around the journeys your members use. The first-day setup guide walks through the controls in the order they matter.

Will it slow my site down?

FluentAuth does not run a PHP firewall or a file scan on every page view. Logs use their own database table. Enabled features such as custom login forms, magic login and Google One Tap can load scripts or styles where they are used. Performance depends on your site and configuration.

Which two-factor methods are supported?

Passkeys, authenticator apps (TOTP) and emailed codes, with recovery codes as the backstop. Choose methods by role. A magic link already proves mailbox access, so it does not trigger another email challenge; a required device factor still applies. See two-factor authentication.

Which social login providers work?

Google, GitHub and Facebook, plus Google One-Tap. Each needs an OAuth app on the provider's side; the docs walk through Google, GitHub and Facebook step by step. Keys can be stored in wp-config.php instead of the database.

What happens if I lock myself out?

The attempt limit is per IP address, so wait out the window you configured or sign in from another connection. If you have lost your second factor, use one of your recovery codes. As a last resort, the troubleshooting page covers the constants that switch a module off from wp-config.php.

Does it work with WooCommerce, LearnDash, membership plugins?

FluentAuth integrates with WordPress authentication hooks and provides role-based redirect rules. Test your checkout, member login and account recovery flows before enforcing a new method: custom login implementations and caching can affect how a challenge or redirect is displayed.

Does it change my login URL or hide wp-login.php?

No. A hidden login URL is found by anyone who looks for it, and moving it breaks other plugins along the way. FluentAuth leaves the login page where it is and makes it safe: rate limits, a second factor, and no usernames leaking through the REST API or author archives.

What data does it send anywhere?

Nothing, by default. Logs, settings and codes stay in your database. The optional file-integrity service can email you scan results if you register it; that registration is opt-in and explained on the screen. See the privacy policy.

Simple pricing

Start with every feature shown here.

The features you see on this site are included in the $0 plugin. Use FluentAuth on as many WordPress sites as you need.

We may introduce a Pro version in the future. The features shown on this site will remain available in the free plugin. We will not remove them or move them behind a paywall.

Get FluentAuth
$0

For the features shown here.

GPLv2 or later · Unlimited sites
Optional scan alerts require a service connection.

Get started

A safer sign-in starts here.

Install FluentAuth, choose your login protections, and help your team sign in securely. Manage it all from one dashboard.

WordPress.org · GPL · no account required