Setup guides, settings explained, and fixes for the most common problems. For the free plugin and the Pro add-on. Written for Smarto Login Security 1.0.0 and Pro 1.0.0. Updated 2026-11-13.
Every control for how people sign in, in one place. Each rule is checked on the server when credentials are checked.
Smarto Login Security decides where people sign in, how they prove who they are, and what happens to their sessions afterwards. A hidden URL or a missing button is never the only protection. The free plugin is complete on its own, with no account, license or time limit.
Login URL and redirects: your own login address, a hidden wp-login.php and wp-admin, and the page people land on after login and logout.
Two-factor authentication: authenticator apps, email codes and backup codes, required for the roles you choose.
Brute-force protection: failed-login limits per IP and per account, rate limits for password reset and registration, and username protection.
CAPTCHA: Google reCAPTCHA v2 or v3, or hCaptcha, on the forms you pick.
IP rules: blocklist and allowlist with IPv4, IPv6 and CIDR ranges.
Sessions and accounts: see who is signed in, end sessions, suspend accounts, read the Login History and get email alerts.
WooCommerce: My Account login, registration and lost-password forms get the same protection. Checkout is never changed.
Good to know:Requires WordPress 6.5 or newer and PHP 8.0 or newer. It is not a firewall or malware scanner.
Start here
Install and first setup
Activation switches on no restriction, so nobody gets locked out. You turn on each protection yourself.
1Install Smarto Login Security from Plugins > Add New Plugin and activate it.
2Open Login Security > Login URLs and choose a custom login address. Open it in a private window to test it before you sign out.
3Open Login Security > Authentication and choose which roles must use two-factor authentication. Each user sets up their own methods on their profile page.
4Review Login Protection, CAPTCHA and IP Rules.
5Open Diagnostics to check your setup.
The Login Security overview shows what is protected, users in required roles who have not set up 2FA yet, and recent security events.
Careful:Behind Cloudflare or another proxy? Set the IP source under Settings first (see "Cloudflare and proxies"). Otherwise every visitor shares the proxy's IP and limits hit everyone at once.
Login
Custom login URL
Move the login page to your own address and hide wp-login.php and wp-admin from visitors.
1Open Login Security > Login URLs and turn on Use a custom login URL.
2Type a Login address: 3 to 60 lowercase letters, numbers and hyphens. Avoid obvious words like "login" or "admin".
3Optional: choose where to send visitors who open wp-login.php or wp-admin. Leave it empty to show your theme's 404 page, which reveals nothing.
4Click Save changes, then open the new address in a private window and sign in to test it.
Email the new address to the site admin when it changes is on by default, so the address is never lost.
Record visits to the hidden wp-login.php and wp-admin adds them to the Login History as "Blocked visit to hidden login", with the username when someone tries to sign in there. Guests opening /login, /admin or /dashboard are recorded too. Repeat visits from the same IP to the same place within an hour add to the entry's visit count instead of a new row. Signed-in users are never blocked or recorded.
Password reset links, logging out and other WordPress actions keep working on the new address.
Staff can sign in only on the custom login URL (on by default once the custom URL is on): anyone who can use the dashboard is refused on every other login form, such as WooCommerce My Account or another plugin's login page, even forms the plugin has never seen. They see the usual "wrong username or password" message, so a stolen password reveals nothing, and you get an email alert. Customers and members are not affected, and apps that use application passwords keep working.
Where people sign in lists the places people signed in from in the last 30 days, found automatically from the Login History, and whether staff are allowed there. "No login form" means another plugin or tool signed someone in directly, for example an auto-login link; those sign-ins are not limited by this setting.
Need staff on one front-end form? With Pro, add it under Integrations > Other login forms and choose the roles allowed there.
The overview lists sign-in attempts on your custom address from IPs that never signed in successfully. If you see them, someone knows the address: change it and consider blocking the IPs.
Good to know:The custom login URL needs pretty permalinks (Settings > Permalinks, anything but Plain). All other features work with any permalink setting.
Login
Login and logout redirects
Choose where people land after they sign in or out.
Default page after login and Default page after logout, in Login Security > Redirects. A What happens now card at the top shows where people end up with your saved settings.
With WooCommerce: Page after signing in on My Account. Empty means customers stay on My Account.
Return users to the page they were trying to reach sends people back to the page that asked them to sign in.
Redirects are limited to your own site, so they cannot send people to another domain.
People without dashboard access, such as WooCommerce customers, are never sent to the dashboard.
Redirects for a single role or user are part of Smarto Login Security Pro.
Accounts
Two-factor authentication
A second step after the password. No session is created until it is passed.
Method
How it works
Authenticator app (TOTP)
Google Authenticator, Microsoft Authenticator, 1Password and similar. Set up with a QR code and confirmed with a code before it turns on.
Email codes
A short code sent to the account's email address. Lifetime, wrong tries and resends are limited.
Backup codes
Single-use codes for when the phone is lost. Each code works once.
1Open Login Security > Authentication and keep the methods you want to offer switched on.
2In Require 2FA for these roles, pick the roles that must use it, for example Administrator and Shop manager.
3Choose when someone in these roles has not set up 2FA yet: remind them on the dashboard, send them an email code at every sign-in, or let them in once and require setup before they can use the dashboard.
4Click Save changes. Each user sets up their own methods under Users > Profile.
Careful:"Remind" never blocks anyone, but until a person sets up 2FA their account is protected by the password only. "Email codes" protect them from the first sign-in.
Application passwords are separate credentials and do not ask for 2FA (WordPress design). Suspensions and lockouts still apply to them, and you can limit them to administrators or turn them off under Integrations.
Protection
Failed-login limits and rate limits
Slow down password guessing on every login form, including WooCommerce and XML-RPC.
Setting
Default
Failures per IP
5 within 15 minutes, then a 20 minute lockout
Double the lockout each time it repeats
On, up to 1440 minutes (one day)
Tell people how many attempts they have left
On, for example "2 attempts left before sign-in is locked for 20 minutes."
Failures per account
20 within 60 minutes, then a 30 minute account lockout
Password reset requests
5 per hour per IP
Registrations
5 per hour per IP
All settings are in Login Security > Login Protection. The limits are shared by every login form, so attackers cannot switch forms to get more tries. A locked visitor sees the lockout as soon as they open the login page. IPv6 addresses are counted per network (/64), because one connection can switch between many addresses. Allowlisted IPs can skip lockouts, rate limits and CAPTCHA (an option under IP Rules).
Protection
Username protection
Make it harder to find out which usernames exist on your site.
One error message for wrong usernames and wrong passwords.
The same reply to password reset requests for unknown accounts.
Blocked ?author=N lookups.
The REST API user list hidden from visitors.
Optional: remove author names from oEmbed data, remove the users sitemap, and hide author archives for chosen roles.
Find these under Login Security > Login Protection > Username protection.
Protection
CAPTCHA
Stop bots on your login, registration and password forms. Every check is verified on your server.
Provider
What visitors see
Cloudflare Turnstile (recommended)
Free and private. Most visitors pass without a puzzle. Your site does not need to use Cloudflare.
reCAPTCHA v3
Nothing. Google scores each visit; you set the minimum score.
reCAPTCHA v2 invisible
Nothing, unless Google finds the visit suspicious and shows a puzzle.
reCAPTCHA v2 checkbox
The "I'm not a robot" box.
hCaptcha checkbox or invisible
A privacy-focused alternative to Google, as a box or invisible.
1Open Login Security > CAPTCHA and click a provider card.
2Click Get keys, create keys for your domain, and paste the Site key and Secret key. Each provider keeps its own keys, so you can switch back without pasting them again. Saved keys show only their first and last four characters; paste a new one to replace it, or clear the field and save to remove it.
3Click Test these keys. A window opens with the check: complete it (or click Check keys for the invisible types). It runs a real check with the keys in the form, saved or not, and says whether they work on your domain or what is wrong.
4Choose the look: theme (light, dark or matching the page), size, and for reCAPTCHA v3 and v2 invisible where the badge sits or whether it is hidden. A hidden badge adds Google's required notice under the form.
5Tick the forms to protect: WordPress login, registration, lost password and new password, and the same four WooCommerce forms.
6Click Save changes.
When to show it on login forms: every time, or only after a number of failed sign-ins from the same IP address within an hour. Real people usually never see it; attackers do.
Show the CAPTCHA in the site language, or let it follow the visitor's browser.
Load reCAPTCHA from recaptcha.net for visitors in countries where google.com is blocked.
If the provider cannot be reached: block the form (safer) or allow it and log the error.
Allowlisted IP addresses skip the CAPTCHA.
Good to know:CAPTCHA is the only feature that contacts an outside service, and only after you turn it on. Mention it in your privacy policy. Locked out? Add define( 'WPSMARTO_LS_DISABLE_CAPTCHA', true ); to wp-config.php.
Protection
IP rules
Block addresses that attack you, or allow trusted ones.
Blocklist: these IPs and ranges cannot sign in.
Allowlist: these IPs can optionally skip lockouts, rate limits and CAPTCHA.
Single addresses, IPv6 and CIDR ranges such as 203.0.113.0/24 all work. Rules can expire and have a note.
The overview lists IPs that tried your custom login address, with a Block IP link next to each.
Careful:Never block your own IP. If it happens, add define( 'WPSMARTO_LS_DISABLE_IP_RULES', true ); to wp-config.php, sign in and remove the rule.
Protection
Cloudflare and proxies
Make sure the plugin sees each visitor's real IP address.
1Open Login Security > Settings. The How your IP address is detected card shows what the server sees.
2If "Used by this plugin" shows your proxy or CDN instead of your own IP, choose the matching Client IP source, for example CF-Connecting-IP for Cloudflare.
3List the proxy's IP ranges under Trusted proxies and save.
Forwarded headers are trusted only from the proxies you list, so visitors cannot fake their IP address. The Login History country is worked out from the same IP, so a wrong IP source also means a wrong country.
Accounts
Active sessions
See who is signed in and end any session at once.
Login Security > Active Sessions lists who is signed in, last activity, sign-in time, IP address with country, browser and sign-in method.
Every browser or device is its own session. A session stays Signed in until the person logs out or it expires (after 2 days, or 14 with "Remember Me"), even when the browser is closed. So one person can have several sessions, and an old one can show last activity days ago.
Your own session is marked This browser and cannot be ended from the list. If you have other sessions still signed in, for example from an earlier sign-in that never logged out, End my other sessions ends them all. Sessions with the same browser and IP as yours are marked as a likely earlier sign-in.
End one session or all of a user's sessions. The session is revoked in WordPress, so the cookie stops working right away.
Another plugin or tool as the method means the sign-in did not use the WordPress login form, for example a one-click login from your hosting.
Choose which roles are tracked under Settings > Session monitoring, and how long ended sessions are kept.
Block sessions created outside the protected login flow (under Settings) destroys sessions that code created without WordPress authentication, for users who need 2FA.
Accounts
Suspend accounts
Lock an account without deleting it.
Suspend from Users or Login Security > Suspended Users, for a set time or until you restore it, with an internal reason.
Suspended users are signed out everywhere and refused by every login form, XML-RPC and application passwords.
Choose whether suspended users are told their account is suspended, and the message they see.
Accounts
Login History
Sign-ins, failed logins, lockouts and blocked visits.
Filter by event group or a single event, dates, user or IP address.
Each event shows the time, user, IP address, country, the exact page (Where) and details such as the sign-in method or the reason it failed.
Changes made in the dashboard (settings, IP rules, suspensions) are on the Admin Activity page instead.
Blocked visit to hidden login means someone opened the hidden wp-login.php or wp-admin and was turned away. "Sign-in attempt, blocked" means they also tried a username there.
Entries are kept for 30 days by default, then removed automatically. A line at the top of the page shows whether it is recording.
Country is looked up in an IP to country database included with the plugin, so no IP address leaves your site. It works on every host, with or without a CDN. Countries are approximate (VPNs and mobile networks can show another country), and local or private addresses show a dash. Country data: IP Geolocation by DB-IP.
Good to know:The Login History is a security log, not a full audit log of everything that happens on the site.
Accounts
Admin Activity
Security changes made by people who manage the site.
Login Security > Admin Activity lists settings changes, IP rules added or removed, suspensions and restores, ended sessions, two-factor changes and temporary access.
Done by shows who made the change; Affected user shows the account it changed, for example the suspended user.
Settings changes name the sections that changed, for example "Custom login URL".
Filter by type of change, dates, user or IP address. Entries are kept for 30 days by default.
Good to know:Admin Activity records changes to Login Security only. Changes to posts, plugins, users or other settings are not recorded.
Accounts
Log settings and retention
Choose what is recorded and for how long. Logs cannot be deleted by hand.
1Open Login Security > Settings and find Logs and data retention.
2Record the Login History and Record Admin Activity are on by default. Untick one to stop recording it.
3Set Keep the Login History for (days) and Keep Admin Activity for (days). Both are 30 days by default. Older entries are removed automatically.
4Click Save changes.
Careful:There is no button to delete log entries, so someone who gets into an admin account cannot cover their tracks. Settings changes are always recorded, so switching a log off shows in Admin Activity.
With the Login History off, the Overview counts and the alerts for a new IP address or a leaked login URL stop working, because they need past sign-ins.
Accounts
Email alerts
Hear about the important things, without a flood during an attack.
Lockouts after repeated failed logins.
Every login by a privileged user, or only logins from a new IP address.
Sign-in attempts on your custom login URL from an IP that never signed in.
Suspicious activity, suspensions and restores, sessions ended by an administrator.
Security settings changes, and CAPTCHA or email provider failures.
Set the recipients and events in Login Security > Notifications. Similar emails are grouped, with at least 60 minutes between them by default. Choose which roles count as privileged under Settings.
Login
WooCommerce
Customers get the same protection as staff, without changes to checkout.
The My Account login, registration and lost-password forms share the failed-login limits, rate limits and CAPTCHA.
Customers are sent to My Account after login, not the dashboard.
Checkout is never modified.
Turn it on or off under Login Security > Integrations.
Login
XML-RPC and application passwords
Apps that sign in without a login form. Turn them off or limit them if nothing on your site needs them.
Neither can show a CAPTCHA or ask for a 2FA code, because there is no form. Lockouts, IP rules and suspensions always apply to both. Choose under Login Security > Integrations.
XML-RPC: On (WordPress default, accounts that need 2FA are refused), Block sign-ins (pingbacks from other sites still arrive) or Off completely (every request is refused). Some mobile apps, desktop editors and site connection services still use XML-RPC, so check before you turn it off.
Application passwords: Everyone (WordPress default), Administrators only or Off. Saved application passwords are kept and work again if you allow them later.
The Integrations page shows Protected once XML-RPC sign-ins are blocked and application passwords are limited, and Limited while either is left open.
Help
Locked out or forgot the login URL
Add one line to wp-config.php, sign in, fix the setting, then remove the line.
These switches only relax extra restrictions. A normal WordPress password is still required. The custom login address is also emailed to the site administrator whenever it changes.
Most problems come from proxies, caching or another login plugin.
Problem
What to do
Everyone gets locked out at once
The plugin sees your proxy's IP. Set the Client IP source and Trusted proxies under Settings.
The custom login URL shows a 404
Turn on pretty permalinks, then save Settings > Permalinks once. Clear any page cache for that address.
A user lost their phone
They sign in with a backup code. An administrator can also reset their 2FA methods on their profile page after confirming who they are.
Email codes do not arrive
Check that the site can send email (an SMTP plugin helps). Use WPSMARTO_LS_DISABLE_2FA to get in meanwhile.
Another plugin's login form skips 2FA
Forms that create sessions without WordPress authentication are only partly covered. Diagnostics shows what is covered.
The Country column shows a dash or your CDN's country
A dash means a local or private address. If every event shows the same country, the plugin sees your proxy's IP: fix the Client IP source under Settings.
Good to know:Login Security > Diagnostics tests your login address and reports conflicts and what is and is not covered.
Help
Privacy and data
Only what is needed to protect accounts, kept for as long as you choose.
Stored: usernames tried, IP addresses and their approximate country (looked up on your site, never online), browser user agents (optional), times, sign-in methods and results, and session activity for tracked roles.
Never logged: passwords, verification codes, sign-in tokens and secrets. Codes and tokens are stored only as keyed hashes; authenticator secrets and provider keys are encrypted.
Logs are kept for 30 days by default and old entries are deleted automatically. A suggested privacy-policy text is added to Settings > Privacy, and the data works with WordPress personal data export and erasure.
No tracking or analytics, and nothing is sent to WP Smarto.
Deleting the plugin removes its data only if Delete all plugin data when the plugin is deleted is on under Settings. Otherwise settings, history and 2FA setups are kept for a reinstall.
Help
Frequently asked questions
Quick answers to what people ask most.
Is Smarto Login Security free?+
Yes. Every feature of the free plugin works fully with no account, license or limit. Pro is a separate plugin with team and agency features.
Will activating it lock me out?+
No. Activation switches on no restriction. You turn on each protection yourself, and recovery switches in wp-config.php always get you back in.
I forgot my custom login URL. What now?+
Add define( 'WPSMARTO_LS_DISABLE_CUSTOM_LOGIN', true ); to wp-config.php, sign in on wp-login.php, check the address under Login Security > Login URLs, then remove the line. The address is also emailed to the site admin when it changes.
Does it work with WooCommerce?+
Yes. My Account login, registration and lost-password forms are protected, customers go to My Account after login, and checkout is not changed.
Does it work behind Cloudflare?+
Yes. Under Settings, choose CF-Connecting-IP as the Client IP source and list Cloudflare's IP ranges as trusted proxies.
Does hiding the login URL make my site secure?+
It stops most automated attacks, but it does not replace strong passwords and two-factor authentication. Use all three.
Does it replace a firewall or malware scanner?+
No. It protects sign-ins and sessions. It is not a firewall or malware scanner.
Do application passwords ask for 2FA?+
No, that is how WordPress designed them. Suspensions and lockouts still apply to them, and you can limit them to administrators or turn them off under Login Security > Integrations.
Does it send data anywhere?+
Only to Google reCAPTCHA or hCaptcha, and only if you turn CAPTCHA on. Nothing is sent to WP Smarto.
Start here
What Pro adds
Team and agency features on top of the free plugin. Every free feature keeps working as before.
Login routes: a login address per role or user, exclusive routes and routes limited to IP addresses.
Redirects after login and logout per role and per user.
Sign-in methods: SMS codes through your Twilio account, magic links and six-digit sign-in codes by email.
Temporary access: time-limited links for a developer or support agent, without sharing a password.
Live sessions: online, idle and offline status, an Online now view, and people stay online while they read the public site.
IP-limited roles: roles that may sign in only from allowlisted IPs.
Other login forms: role and IP rules for other plugins' login pages and AJAX logins.
Good to know:Pro needs the free Smarto Login Security plugin, installed and active.
Start here
Install Pro
Pro is a separate plugin that runs next to the free one.
1Install and activate the free Smarto Login Security plugin.
2Download Smarto Login Security Pro from your account dashboard on wpsmarto.com.
3Upload it in Plugins > Add New Plugin > Upload Plugin and activate it.
4Activate the license (next section).
Pro settings appear inside the pages you already know: routes under Login URLs, passwordless under Authentication, other login forms and Twilio under Integrations, and a new Temporary Access page.
Start here
Activate the license
One click in WordPress, one approval on wpsmarto.com.
1Open Login Security > Pro License and click Activate license.
2Log in to wpsmarto.com if asked and approve the site.
3You return to WordPress with the license active. Updates arrive in Dashboard > Updates like any plugin.
Manage plans, sites and invoices in your wpsmarto.com dashboard. To move a license, deactivate it on the old site first, or remove the site from your dashboard.
Good to know:If the license ends, Pro features stop, your settings stay and the free plugin keeps working. Role routes stop answering, so people sign in on the main login address again.
Login
Role-specific login routes
Give administrators, editors or single users their own login address.
3Choose the Roles that can sign in here, and add Individual users if needed. Only listed roles and users can sign in through a route.
4Optional: tick Exclusive so those users can sign in only through this address and are refused on every other login form.
5Optional: limit the route to these IP addresses. Save, then test the address in a private window.
Careful:Locked out by an exclusive route? Add define( 'WPSMARTO_LS_DISABLE_ROUTE_RULES', true ); to wp-config.php, sign in, fix the route, then remove the line.
Login
Redirects per role and user
Send each role or person to the right page after login and logout.
Rules by role: a page after login and after logout for each role.
Rules for individual users: override the role rule for one person.
Find them under Login Security > Redirects. Like the free redirects, they stay on your own site.
Sign-in methods
SMS codes and passwordless sign-in
More ways to sign in, without weakening 2FA.
SMS codes: add your Twilio Account SID, Auth token and Sender under Integrations, then turn on text messages under Authentication. Users add their number in international format, starting with +.
Magic links by email: a sign-in link with a confirmation click, so email scanners that open links cannot use them.
Sign-in codes by email: a six-digit code instead of a password.
Choose the Allowed roles and the link or code lifetime under Authentication > Passwordless sign-in. Requests are rate limited.
Good to know:Accounts that need 2FA must still pass a factor other than email after a magic link or email code.
Access
Temporary access
Let a developer or support agent in for a while, without sharing a password.
1Open Login Security > Temporary Access.
2Link to an existing account, or create a temporary account with the role you choose.
3Set how long the link works, whether it is single-use, and optionally the IP addresses allowed to use it.
4Copy the link and send it. Revoke it at any time; revoking ends the sessions it created.
Set the default duration, the longest allowed duration and what happens to a temporary account when its access ends under Temporary access options. Every use appears in the Login History.
Access
Live online status
See who is online right now, not only who is signed in.
Online, idle and offline status, and an Online now view on Active Sessions. Set the minutes for online and idle under Settings > Session monitoring.
Keep people online while they read the public site: without it, someone reading a long page without clicking turns idle. A tiny script checks in every 2 minutes while a tracked user has a page of the site open.
The country of each session is shown by the free plugin, under the IP address.
Access
IP-limited roles and other login forms
Keep powerful roles to trusted networks, and cover other plugins' login forms.
Roles that may sign in only from allowlisted IPs: people in these roles can sign in only from addresses on your allowlist. Optionally sign them out when their IP changes to one that is not allowed.
Other login forms (under Integrations): add a form by its page address or AJAX action name, then choose the roles allowed to sign in through it and the IP addresses it accepts.
Help
Pro questions
Licenses, external services and what happens when Pro stops.
What happens if my Pro license ends?+
Pro features stop, your settings stay and the free plugin keeps working. Role routes stop answering, so people sign in on the main login address again.
I locked myself out with an exclusive route.+
Add define( 'WPSMARTO_LS_DISABLE_ROUTE_RULES', true ); to wp-config.php, sign in, fix the route, then remove the line. The free plugin's recovery switches also work.
Which external services does Pro use?+
wpsmarto.com for license activation and updates (a random site key, the product name and, on activation, the site address and name), and Twilio only if you set up SMS.
Do I need the free plugin?+
Yes. Pro adds to the free Smarto Login Security plugin and needs it installed and active.
Still stuck?
Ask our assistant, it knows these docs. If it cannot solve it, it passes your question to the team, who reply by email.