Expire User Passwords
by Matt Miller · Login & Users
Also makes 7 other plugins · 10.1K+ installs across the portfolio →
Require certain users to change their passwords on a regular basis.
Try it live opens a temporary test site in your browser, which can take about 20 seconds to load. Plugins that rely on outside services or a full server may not work completely there.
Health
B 83/100
Few reviews
Active installs
3K+
≈3.5K estimated
Momentum
+58%
downloads vs prior 30d
Biggest opportunity: Swap “login” for “reset password”. “login” isn't earning its slot: you're not in the first 24 results for its own search. “reset password” sits at #23 untagged, close enough for a declared tag to move it up. All five slots are taken, so one has to go.
83 health vs 61 average across 2,203 Login & Users plugins
Install conversion
How it's measured →4.7%
of downloads still active
At least 3K of 63.4K lifetime downloads are still running, above its category: the median Login & Users plugin keeps 0.7%, across 1,476 plugins.
Downloads count every update, not just first installs, so older and more frequently released plugins read lower. Compare against other Login & Users plugins, not across the directory. wp.org reports active installs as the bottom of a band, so the real rate is this or higher.
This plugin shipped 12 releases in the last 12 months, and every existing install that updated counted as another download. wp.org publishes no split between first installs and updates, so we show the raw rate rather than guess at one.
Details
Directory ranking optimization
How it's scored →How well this listing is tuned to rank in WordPress.org search, on the factors an owner controls. Not popularity, optimization.
Excellent listing optimization
Most to gain: Rating quality
Updated 9 days ago
Tested up to WordPress 7.1.4, the current branch or newer
4.2★ over 5 reviews, smoothed to 4.11★ and held back under 25 reviews
5 of 5 tags set · short description in place
To rank higher: Too few reviews to rank on quality — nudge happy users to leave one.
Get the full rank-higher report →Search visibility
How it's tracked →Directory searches this plugin turns up in, and which way each one is moving. WordPress.org publishes no history of search positions, so this starts the day we first tracked a keyword and never backfills.
60
Momentum
Gaining ground
+1.6
Velocity
places per keyword, 28d
58%
Breadth
of keywords climbing, 28d
+1.6
Acceleration
recent half vs earlier
wp.org is where the directory puts the plugin for that search. On merit is where it would sit if results were ranked on rating, support and updates, without the install boost. The last column is how far the wp.org position moved, from our first reading in the last 90 days to the latest.
| Keyword | wp.org | On merit | wp.org move, 90 days |
|---|---|---|---|
| user passwords | #1 | #7 | up 1 |
| expire | #1 | #5 | 0 |
| expire users | #1 | #6 | 0 |
| passwords your tag | #4 | #17 | up 1 |
| password expiry your tag | #5 | #15 | — |
| user sessions | #13 | #22 | up 7 |
| user verification | #15 | #21 | down 1 |
| require password | #10 | #19 | — |
| password | #20 | #18 | down 1 |
| reset password | #23 | #21 | 0 |
| expiry | #15 | #22 | down 1 |
| password change | #23 | #19 | 0 |
| login your tag | Not in the top 24 | ||
| security your tag | Not in the top 24 | ||
| users your tag | Not in the top 24 | ||
74 searches this plugin appeared in over the last 90 days, 12 listed. 62 left out as unrelated or noise (years, numbers, stray words). 3 of its tags aren't in the top 24 for their own search.
What to do about it
- Swap “login” for “reset password”. “login” isn't earning its slot: you're not in the first 24 results for its own search. “reset password” sits at #23 untagged, close enough for a declared tag to move it up. All five slots are taken, so one has to go.
Daily downloads
Since 5 Oct 2022 · 1,488 days · wp.org + Plugin Pulse archive
30-day downloads
Rolling 30-day volume · peak 6K · peaks are release surges
Directory rank vs rivals
wp.org popularity rank over time · higher is better · when a rival's line climbs above yours, they've overtaken you
Rating trend
Star average over time · dips mark rough releases
Health trend
Composite health score, snapshotted daily
Update activity
How busy the existing users are, measured as downloads in the last 30 days for every 1,000 active sites. A spike means a new release everyone's pulling; a long, slow decline means an aging user base that updates less.
Release cadence
Actively maintainedHow often this plugin actually ships. A steady rhythm is the maintenance signal a single "last updated" date can't show.
12
releases in the last 12 months
9d ago
latest release · v1.4.3 · 23 Oct 2026
19
tagged releases on record
Recent releases
What its installed base runs
via wordpress.orgShare of active installs on each version of this plugin · 14% run the current release. Green is the current release; a big slice on older versions is a user base that has stopped updating.
Estimated active installs
The public count shows “3K+”. Our estimate pins where the real number sits.
Crossed into this band 12 months ago; a band this size takes about a year or more to cross, which places it about 50% of the way through.
Install history since 7 Aug 2020
Recent reviews
All reviews on wp.org ↗- ★★★★★ odvir2.9y ago
Excellent plugin. Unfortunately, after the new WordPress update, it blocks managed users from logging in.
Read on wp.org ↗ - ★★★★★ nasseryo3.2y ago
Everything in the title
Read on wp.org ↗ - ★★★★★ Henry Douglas4.6y ago
Excellent plugin, solved my problem.
Read on wp.org ↗ - ★★★★★ nikmittal6.4y ago
Does what it says 🙂
Read on wp.org ↗ - ★★★★★ marco19586.6y ago
Using it on 15 WP 5.3.2 sites at the moment. It’s a must have these days. Using the same password too long will lead to leaks at some time. Would like to have an export/import option to easily share settings. Also a way to configure via the wp cli would be nice.
Read on wp.org ↗
Latest updates
via wp.org changelogRecent releases and news for this plugin
- — Version 1.4.2 Added sanitization callback to register_setting() Added translators comment and fixed singular placeholder in _n() call Removed .gitmodules and .travis.yml from plugin directory Updated “Tested up to” to 6.9 1.4.2
- — Version 1.4.1 Added GPL license declaration to plugin header Updated Author URI Added direct file access protection to all PHP files Improved output escaping and input sanitization Removed non-production files from plugin directory 1.4.1
- — Version 1.4.0 Added translations for 50 languages Added POT translation template file Added opt-in data cleanup on plugin deletion Updated FAQ section Updated readme with complete language list 1.4.0
- — Version 1.3.9 Added translations for Russian, Polish, Dutch, Turkish, and Swedish Updated localization section in readme 1.3.9
- — Version 1.3.8 Added Chinese Simplified (zh_CN) translation 1.3.8
- — Version 1.3.7 Added Japanese (ja) translation 1.3.7
Behavioral tests
via WP HiveAutomated install-time checks, tested on PHP 8.1.12 · WP 7.0.1
Languages
via translate.wordpress.orgTranslated into 7 languages, 1 at 90% or more
AI assistants
How it's measured →Whether ChatGPT and Claude name this plugin when asked the category question, and whether the readme gives them something to quote.
Not measured yet for this plugin’s topics. Its tracked searches are not among the measured topics. See the topics measured so far.
Readme readiness
4 of 8 pass · checked 29 Oct 2026Can an assistant quote this readme? Eight deterministic checks over the wp.org listing, no model involved.
- ! Says what it does Short description names no action; say what the plugin does for the site.
- ✓ Has a FAQ 7 questions in the FAQ.
- ✓ FAQ asks real questions 7 of 7 read like questions a user would type.
- ! Names who it is for One audience phrase ("ideal for"); say who the plugin is for and what they use it for.
- ! Names what it works with Names no plugin, service or platform it works with.
- ! Headings and lists 0 headings and 1 list; assistants quote headed sections and bullet lists, not paragraphs.
- ✓ Enough to quote 1,951 characters of description.
- ✓ Tags match the text 3 of 5 tags appear in the text; "login", "password expiry" do not.
Growth timeline
Install-tier crossings we have observed, and how long each tier took to outgrow
- 2025-11-05 4K+ → 3K+ down after 340 days in tier
- 2024-11-30 5K+ → 4K+ down after 24 days in tier
- 2024-11-06 6K+ → 5K+ down after 339 days in tier
- 2023-12-03 7K+ → 6K+ down after 92 days in tier
- 2023-09-02 8K+ → 7K+ down after 57 days in tier
- 2023-07-07 7K+ → 8K+ up after 12 days in tier
- 2023-06-25 8K+ → 7K+ down after 75 days in tier
- 2023-04-11 7K+ → 8K+ up after 18 days in tier
Competes with
The plugins that solve the same job, ranked by shared tags then reach, closest match first. The letter on the right is each plugin's health grade (A best, F worst).
-
Password Strength Settings for WooCommerce 10K+ installs · 4.3★ · 3 shared tags D -
Loginizer 1M+ installs · 4.8★ · 2 shared tags A -
Security Optimizer – The All-In-One Protection Plugin 1M+ installs · 4.5★ · 2 shared tags A - L Limit Login Attempts 300K+ installs · 4.6★ · 2 shared tags C
-
WPS Limit Login 100K+ installs · 4.8★ · 2 shared tags A -
Hide My WP Ghost – Security & Firewall 100K+ installs · 4.5★ · 2 shared tags A
Embed this report card
Drop a live Pulse card for Expire User Passwords into a readme, a review or a deck. It updates itself.
<iframe src="https://plugins.wpmayor.com/embed/expire-user-passwords" width="480" height="300" style="border:0" loading="lazy" title="Expire User Passwords — Plugin Pulse"></iframe> Expire User Passwords: 3K+ active installs, 4.2★ (5 reviews). Plugin Pulse (WP Mayor), as of 2026-11-01. https://plugins.wpmayor.com/plugin/expire-user-passwords
Spotted a number that looks wrong? Report a data issue and we'll check it against the source.