WPS Hide Login Plugin Review: Features, Security, and Setup Guide
Feb 14, 2026 by Jay Patel
WPS Hide Login is a WordPress plugin that changes your default login URL to reduce bot attacks and improve login page security without modifying core files.
WordPress powers over 40% of the internet. That number alone makes it the biggest target for automated attacks, bots, and brute force attempts. Every hacker tool, every script kiddie bot, every automated scanner on the internet knows that WordPress login pages sit at /wp-login.php or /wp-admin. They do not need to guess. They already know.
This is not a hypothetical problem. Server logs on any WordPress site that has been live for more than a few weeks will show hundreds, sometimes thousands, of failed login attempts hitting that exact URL. Most of them are automated. Most of them run 24 hours a day.
WPS Hide Login is a lightweight plugin that addresses this specific vulnerability by doing one thing: moving the login page to a URL that nobody can predict. This review covers everything you need to know about how it works, what it actually protects against, where its limits are, and how to set it up without locking yourself out of your own site.
What Is WPS Hide Login
WPS Hide Login is a free WordPress plugin that changes the URL of your login page from the default /wp-login.php to any custom slug you choose. Once activated, anyone who tries to visit the original login URL gets a 404 error instead of the login form. Only people who know the new URL can access the login page at all.
The plugin has been installed on over one million WordPress sites. It is maintained by the WPServeur team and has a consistent update history, which matters more than most users realize when choosing security plugins. A plugin that sits unmaintained for two years is a liability, not an asset.
What makes WPS Hide Login stand out from similar plugins is how it handles the redirect. It does not rename the actual wp-login.php file on your server. It does not touch the WordPress core files. It intercepts the request at the PHP level using WordPress hooks, which means there is nothing to break during a WordPress update, and there is no file permission issue to deal with.
How the Login Page Exposure Problem Actually Works
Before getting into the plugin features, it is worth understanding the actual threat model here.
When a bot scans a website, one of the first things it checks is whether the site runs WordPress. It does this by looking for /wp-content/, /wp-includes/, or the generator meta tag in the page source. Once it confirms WordPress, it immediately tries to access /wp-login.php.
From that point the attack can go several directions. A brute force attack will try thousands of username and password combinations. A credential stuffing attack will take leaked username and password pairs from other data breaches and try them here. A more targeted attack might look at your site, find your admin username in the author archives, and then focus the brute force on that specific username.
All of these attacks share one dependency: they need to reach the login page. If the login page is not at the expected URL, automated scanners either skip the site entirely or spend significantly more time trying to find it, which makes your site a less attractive target compared to the thousands of other WordPress sites that did nothing to protect theirs.
This is what security professionals call security through obscurity. It is not a complete security solution on its own, but it is a legitimate layer of defense when combined with stronger measures.
Features Breakdown
Custom Login URL
The core feature is the ability to set any slug as your new login URL. You can set it to something like /members-area, /dashboard-access, or /site-control. The plugin does not restrict what you can use, but there are practical considerations covered in the setup section below.
Once you set the new slug, the plugin intercepts all requests to /wp-login.php and /wp-admin (when not logged in) and returns a 404 response. This is an important detail: it does not redirect to the homepage or show an error message that hints at the existence of a login page. It simply returns 404, which is the same response a non-existent page would return.
No File Renaming
Some older or competing approaches to this problem involved actually renaming the wp-login.php file or placing it in a different directory. This approach creates immediate problems: themes and plugins that hardcode the login URL break, password reset emails stop working, and WordPress core updates can restore the original file, undoing your change.
WPS Hide Login avoids all of this by working entirely through WordPress hooks. The file stays where it is. WordPress still knows where it is. Only the public-facing URL changes.
Works With Multisite
WordPress multisite installations have their own complexity around login URLs. WPS Hide Login supports multisite, though the configuration works slightly differently depending on whether you are running subdomain or subdirectory multisite. Each site in the network can have its own custom login URL, or you can apply a network-wide setting.
Compatible With Most Caching Plugins
Caching plugins are one of the most common sources of conflict with login URL changes. If a caching plugin caches the 404 response for /wp-login.php, real users might get a cached 404 even after they have been granted access, or the login form itself might be cached and served to the wrong session.
WPS Hide Login handles this by working before the cache layer in most configurations. The login page URL itself is excluded from caching automatically in most popular setups. That said, compatibility testing with your specific caching setup is recommended, which the testing section covers later.
Redirect Options
When someone hits the old /wp-login.php URL, you can control what happens. The default behavior is a 404 response. Some configurations prefer a redirect to the homepage instead. Both approaches have trade-offs: a 404 is more convincing as a non-existent page, while a redirect to the homepage might feel less alarming to a legitimate user who typed the wrong URL by habit.
What WPS Hide Login Does NOT Do
This is the part of most plugin reviews that gets skipped, and it is the most important part for anyone making a real security decision.
It does not stop attacks that already know your URL. If someone discovers your custom login URL through information leakage (a misconfigured sitemap, a cached Google result, a developer who mentioned it somewhere, a leaked backup file), the protection is gone. The security depends entirely on keeping the URL secret.
It does not protect against attacks through other entry points. XML-RPC, the REST API, and WooCommerce endpoints all have their own authentication mechanisms. A determined attacker can attempt credential attacks through xmlrpc.php regardless of where your login page is. If you are serious about security, you need to address those separately.
It does not prevent account takeover once someone has valid credentials. If a password is leaked or guessed through a separate channel, hiding the login URL does not stop the attacker from logging in once they find it.
It does not protect against session hijacking, cookie theft, or CSRF attacks. These are different attack vectors that require different solutions.
It is not a replacement for two-factor authentication. 2FA is a harder control because it requires something the attacker cannot steal just by knowing your password. Hiding the login URL is softer than 2FA and should be used alongside it, not instead of it.
Understanding these limits is not a reason to avoid the plugin. It is a reason to use it as one layer in a multi-layer security setup rather than treating it as a complete solution.
Real Security Value: An Honest Assessment
The security community is divided on the value of security through obscurity, and that debate applies directly to this plugin.
The argument against it is that it provides no cryptographic security guarantee. If an attacker is determined and methodical enough, they can discover your custom login URL through various means: directory enumeration, monitoring your traffic, examining your sitemap, or simply checking if common login-related slugs return anything other than 404.
The argument for it is purely practical. The vast majority of WordPress attacks are not targeted. They are automated, running against thousands of sites simultaneously using known attack patterns. These automated attacks check for /wp-login.php. They do not spend time probing every possible URL slug looking for an alternate login page. By removing yourself from the set of sites that respond to the standard attack pattern, you eliminate a huge percentage of real-world attack traffic without spending anything.
The evidence supports this in practice. Server logs consistently show that sites using custom login URLs receive dramatically fewer automated login attempts. The attacks do not stop entirely because some bots do look harder, but the volume drops significantly.
The practical conclusion: WPS Hide Login provides genuine security value against the most common category of WordPress attacks (automated brute force and credential stuffing against the default login URL), and it provides zero protection against more sophisticated targeted attacks. For most WordPress sites, the former is the primary threat.
Setup Guide
Installation
Go to your WordPress dashboard, navigate to Plugins, click Add New, and search for “WPS Hide Login.” Install and activate it. The plugin adds its settings to Settings → WPS Hide Login.
Choosing Your Custom Login Slug
The slug you choose matters more than most people think. Avoid these common mistakes:
Do not use obvious alternatives. Slugs like /login, /admin-login, /wp-login-new, /secure-login, or /dashboard are the first things automated scanners try after /wp-login.php. They provide almost no additional protection.
Do not use something you will forget. If you get locked out of your own site because you cannot remember the custom URL, recovery is possible but involves server access or database editing, which is time-consuming and stressful.
Make it genuinely unpredictable. Something like /morning-coffee-access or /gateway-november or a combination of words that has no obvious connection to login or admin is much harder to guess than any variation of standard admin terminology.
Write it down somewhere safe. This sounds obvious but it is the most common source of lockouts. A password manager entry, a secure note, anywhere that is not the WordPress database itself.
Configuring the Redirect
After entering your custom slug, you can set the redirect URL for anyone who hits the old login page. The default 404 is fine for most setups. If you have a contact page or a specific members page you want to direct confused legitimate users toward, you can set that here instead.
Testing Before You Rely On It
After saving your settings, do these checks before closing the settings page:
Open a new incognito or private browsing window. Try to access /wp-login.php on your site. You should get a 404. Try to access /wp-admin while not logged in. You should also get a 404. Then navigate to your custom login URL. You should see the login form.
If all three work correctly, the plugin is functioning as expected. Log in through the new URL to confirm the full login process works end to end including any redirect after login.
Caching Plugin Compatibility Check
If you use WP Rocket, W3 Total Cache, LiteSpeed Cache, or any other caching plugin, clear your cache completely after setting up WPS Hide Login. Then repeat the tests above in an incognito window to make sure the 404 responses are not being served from cache and the login page is not being cached incorrectly.
If your login page shows content from the wrong session or a stale cached version, you will need to add your custom login URL to your caching plugin’s exclusion list. Most caching plugins have a section for excluded URLs. Add your custom login slug there.
Firewall and Security Plugin Compatibility
If you run Wordfence, Sucuri, iThemes Security, or similar security plugins alongside WPS Hide Login, test that the login rate limiting and lockout features of those plugins still function correctly. In most cases they do because those plugins work at the application level and respond to login attempts regardless of the URL, but edge cases exist and are better discovered during testing than during an actual incident.
Common Issues and How to Fix Them
Locked out after activation. If you activated the plugin and immediately lost access to the login page, the most likely cause is that you forgot to note the custom URL. Recovery options: access your server via FTP or your hosting control panel, navigate to wp-content/plugins/, and rename the wps-hide-login folder to anything else (like wps-hide-login-disabled). This deactivates the plugin without needing dashboard access. Your login page returns to normal.
Login page returns 404 even at the custom URL. This is almost always a caching issue. Clear all caches including server-side caches if your host provides them (LiteSpeed, Nginx FastCGI cache, Cloudflare). If the issue persists after clearing cache, deactivate and reactivate the plugin.
Password reset emails link back to the old URL. Some configurations have this issue because the password reset link is generated using the old login URL. Check the plugin settings for a “Redirect to” option and make sure it points to your custom URL. Alternatively, this can happen with page caching of email templates in some complex setups.
Conflicts with membership plugins. Plugins like MemberPress, LearnDash, or Restrict Content Pro have their own login page management. When two plugins both try to control login URL behavior, conflicts happen. Test thoroughly after activating both and check which plugin’s login URL settings take precedence.
Comparison With Alternative Approaches
Manual .htaccess password protection on /wp-login.php is a server-level approach that adds HTTP authentication (a browser username/password prompt) before WordPress even loads. This is arguably more secure because it stops attacks before they hit PHP. The downside is that it requires server access to configure, breaks on some hosting environments, and can cause issues with plugins that make background requests to the login endpoint.
Limiting login access by IP address via .htaccess or a firewall is more restrictive than URL hiding. If your IP is static, it means only your IP can even see the login page. The obvious problem is that it breaks when your IP changes, which it does on most home connections regularly.
Two-factor authentication plugins like WP 2FA or Google Authenticator plugins address a different part of the problem. They assume the attacker can reach the login page and make that page require something beyond just a password. This is a harder security control but does not reduce the volume of automated attack traffic the way URL hiding does.
Cloudflare Access or similar zero-trust tools put an authentication layer in front of the entire WordPress admin, completely invisible to attackers who are not authenticated at the Cloudflare level. This is the strongest approach but also the most complex to set up and maintain.
In practice, WPS Hide Login is the easiest of these options to implement correctly and provides meaningful protection against the most common attack patterns. Using it alongside 2FA covers most realistic threat scenarios for a standard WordPress site.
Performance Impact
The plugin adds one hook to WordPress’s request handling process. The performance impact is negligible – we are talking about microseconds of additional processing time per request. Unlike security plugins that scan every file on every page load, WPS Hide Login does nothing on ordinary page views. It only activates when someone tries to access the login-related URLs.
There is no database query overhead, no background processing, and no impact on frontend page load times. For performance-conscious site owners, this is one of the cleanest security plugins available from a resource perspective.
Who Should Use This Plugin
Small business websites and blogs running WordPress without dedicated security infrastructure get the most value from this plugin. The threat model for these sites is almost entirely automated attacks, and this plugin addresses that well.
WooCommerce stores benefit from this plugin for the admin login protection, but should be aware that customer login (if it goes through a custom WooCommerce endpoint) may or may not be affected depending on configuration. Test thoroughly.
High-traffic media sites and news sites that attract more targeted attention should use this plugin as one layer and invest more heavily in additional controls like 2FA, application firewall rules, and possibly IP-based access controls for the admin area.
Developers managing multiple client sites will find this plugin useful as a quick, low-maintenance addition to every site’s security baseline. The one-million install count exists partly because agencies add it to every site they build as a standard practice.
Enterprise WordPress installations with dedicated security teams should evaluate this plugin in the context of their broader security architecture. It is not a substitute for proper IAM controls, network-level security, and monitoring.
Final Verdict
WPS Hide Login does one thing and does it well. It removes your WordPress login page from the URL that every automated attack in the world is already programmed to check. It does this without touching core files, without creating performance overhead, and without requiring ongoing maintenance once set up.
The plugin is not a silver bullet and should not be treated as one. It provides no protection against targeted attacks that discover your custom URL, no protection against credential theft through other channels, and no protection against the many other ways a WordPress site can be compromised that have nothing to do with the login page.
But for what it does – eliminating the background noise of automated brute force attacks and reducing your exposure in the most commonly exploited attack surface on WordPress sites – it is effective, free, and takes five minutes to set up correctly.
Used alongside two-factor authentication and a proper backup strategy, it forms a solid base layer of security for any WordPress installation. That is an honest assessment of its value, without overstating what it can do or dismissing what it genuinely accomplishes.
Plugin: WPS Hide Login | Developer: WPServeur | Price: Free | Install Base: 1M+ active installs | WordPress.org Rating: 4.8/5
More Plugins Reviews
Share your site. Get a full audit in 24 hours.
