A stolen login cookie keeps working until your WordPress keys and salts change. NibbleSalt rotates them on a schedule, edits wp-config.php safely or switches to its own database mode when it can't, confirms your site still loads before signing anyone out, waits while WooCommerce shoppers have items in their cart or an order awaiting payment, and warns everyone who is logged in, on any device, before it happens.
WordPress signs its login cookies and security tokens with eight keys and salts stored in wp-config.php. Most sites set them once at install and never touch them again, which means a cookie that leaked years ago is still trusted until it expires on its own.
NibbleSalt changes your keys and salts on a schedule you choose. Every existing login cookie stops working the moment the new keys take effect, and nothing about the way you use your site changes.
NibbleSalt is a clean, focused WordPress security plugin that automatically rotates your security keys and salts on a schedule. It works out whether your server lets it edit wp-config.php, picks the right mode on its own, and needs no configuration to start.
Every rotation follows the same careful order: take a lock, check whether WooCommerce shoppers have an active cart or an unpaid order, make the change, confirm your site still loads, and only then sign everyone out. If the check fails, the original file is put back and nothing is rotated.
It also looks after itself. Only one rotation can run at a time, a crash or timeout can't leave it stuck, and if a step goes wrong after the keys have already changed, NibbleSalt tells you exactly that and never retries, because a second rotation would sign everyone out twice.
NibbleSalt looks at how your site's keys are actually set up and picks the safest way to rotate them:
When wp-config.php is writable and the eight keys are plain, single definitions, NibbleSalt rewrites just those eight values in place. Everything else in the file, including its permissions and owner, stays exactly as it was.
Used when the file is read-only, its folder isn't writable, the salts come from environment variables or a variable, or they are defined more than once. NibbleSalt never edits the file in these cases. It keeps its own random seeds in the database and derives the salts WordPress uses from them.
Some servers cache wp-config.php and won't notice a change. After a rotation, NibbleSalt checks whether the new keys are really live. If they aren't after about five minutes, it flags the rotation as not active yet and offers a one-click switch to Database mode.
Every one of these is part of version 1.0, not a roadmap item, and not gated behind a paid tier.
In File mode, NibbleSalt changes only the eight key and salt values and leaves the rest of the file alone.
After the change, NibbleSalt loads your site the way a visitor would. If that request fails, the original wp-config.php is restored automatically and nothing is rotated. Sessions are only ended once the site has proven healthy.
Hosts that make wp-config.php read-only, or that set salts from the environment, can't be rotated by editing a file. NibbleSalt handles them by supplying the salts through WordPress itself, from seeds it stores in an autoloaded option, so the file is never touched.
On servers where wp-config.php is cached and never re-read, a file edit can look successful while doing nothing. NibbleSalt notices that the new keys aren't live and says so, instead of quietly reporting success.
If a shopper has a real, recent, non-empty cart, or has placed an order that's still waiting on payment, NibbleSalt waits instead of signing them out.
Fifteen minutes before a scheduled rotation, a dismissible countdown appears for every logged-in person, any role, on the front end and in wp-admin alike, so no one is caught mid-task.
Choose daily, weekly, monthly or quarterly. Times are worked out in your site's own timezone and stay correct across daylight saving changes. If WordPress's scheduler runs late, past the rotation window, NibbleSalt reports the rotation as postponed instead of running it at a bad time.
An atomic lock prevents two rotations from overlapping, whether they start from the button, the scheduler or the command line. The lock is released automatically if the process crashes or times out, and it clears itself after ten minutes at worst, so a rotation can never hang on "already running".
If a step fails after the keys have already changed, NibbleSalt says exactly that: the keys changed, and a follow-up step failed. It never retries in that situation, because a second rotation would sign everyone out twice. The next run is simply scheduled as normal.
Standard rotations can be undone for 24 hours. There is no emailed rescue link, because a link like that could re-validate a stolen cookie.
A Recent activity list on the settings screen shows your most recent rotations, deferrals and postponements. WP-CLI commands let hosts and scripts trigger a rotation, check its status, or undo the last one, and they respect the same lock as the dashboard.
When a rotation includes the nonce keys (the "All eight keys" option), NibbleSalt clears the page caches of common caching plugins and hosts afterward, never before, because clearing first would let caches refill with pages tied to the old keys. The default, login-keys-only rotation doesn't touch nonces, so it skips this step entirely.
Filters and actions let you add your own checkout guards, cache purges, session handling and file locations, and run code after every rotation.
No dashboard tour required. This is the entire mental model.
It takes a lock so nothing overlaps, then checks whether shoppers have active carts. If they do, it waits.
New keys are generated and applied, either in wp-config.php or through Database mode.
Your site is loaded like a visitor would load it. If that fails, the original file is restored and nothing is rotated.
Every session is ended, page caches are cleared, the rotation is logged, and the next run is scheduled.
There is no paid tier of NibbleSalt holding features back. This is what installing it actually gets you.
| Capability | NibbleSalt | Rotating by Hand | Typical Rotator Plugins |
|---|---|---|---|
| Rotates on a schedule with no action from you | ✓ | ✗ | Usually |
| Works when wp-config.php is read-only or salts come from the environment | ✓ | Needs file access | Varies |
| Checks the site still loads before signing anyone out | ✓ | ✗ | Varies |
| Restores the original file automatically if the result is broken | ✓ | ✗ | Varies |
| Waits while WooCommerce shoppers have an active cart or an unpaid order | ✓ | ✗ | Rarely |
| Notices when the new keys aren't live yet | ✓ | ✗ | Rarely |
| Schedules in your site's timezone, correct across daylight saving | ✓ | Not applicable | Varies |
| 24-hour undo | ✓ | ✗ | Varies |
| Activity log of every rotation | ✓ | ✗ | Varies |
| Safe against overlapping runs and crashes | ✓ | Not applicable | Varies |
| Price | Free | Free | Free or paid |
There is no setup wizard. Everything after the first step is optional.
From the WordPress Plugins screen, or by uploading the plugin's .zip file directly. NibbleSalt is for single-site installs. On a multisite network it shows a notice and does nothing.
NibbleSalt looks at how your keys are defined and chooses File mode or Database mode on its own.
Choose how often to rotate, from daily to quarterly. If you run a store, you can also set how many active shoppers it should wait for.
The Rotate Now panel shows exactly how many people are currently logged in and their roles, so nothing is a surprise. Rotate once to see it work: everyone, including you, will be signed out, and the Recent activity list shows the result.
NibbleSalt is completely free, open-source, and built without hidden paywalls or bloated features. If it helped keep your site's logins safer, consider supporting our ongoing development to keep it that way!
Yes. Every feature described on this page is included with the free plugin, with no license key and no feature paywall.
There is also nothing external to sign up for. Key generation and every check happen on your own server.
One small extra, on by default: NibbleSalt can rewrite WordPress's default "Lost your password?" email with clearer wording. It's a separate setting you can switch off, for instance if another plugin already customizes that email.
Yes, everyone, including you. That is what makes a stolen login cookie useless. Everyone who is logged in gets a 15-minute countdown first, wherever they are on the site or in wp-admin. NibbleSalt also picks the timing according to the schedule you set, checks that the site is healthy first, and on WooCommerce stores waits while shoppers have active carts or unpaid orders.
NibbleSalt switches to Database mode automatically. It never touches the file, and instead supplies the salts through WordPress from seeds it stores in its own option.
After making the change, NibbleSalt loads your site the way a visitor would. If that check fails, the original wp-config.php is restored and nothing is rotated. Sessions are only ended after the site has proven healthy.
Standard rotations can be undone for 24 hours. Undo is not available after an Emergency rotation or once the 24 hours have passed. An undo ends all sessions too, so old login cookies never work again.
If shoppers have real, recent carts, or an order still waiting on payment, NibbleSalt defers and retries every hour, then postpones the rotation once its cap is reached. Empty carts never cause a delay, and you can set how many active shoppers it should wait for before deferring.
The rotation lock is released automatically when the process ends, and if that ever failed it would clear itself after ten minutes. A rotation never gets stuck on "already running".
No. While a delayed, "warn everyone first" rotation is pending, the Rotate Now button is disabled and shows that a rotation is already scheduled, and the request is refused even if triggered another way. This stops two rotations from landing at different times and undoing each other's work.
In File mode, your wp-config.php simply keeps the keys it has. In Database mode, removing the plugin returns WordPress to the salts in wp-config.php, which signs everyone out once.
Not in version 1.0. On a multisite network, NibbleSalt shows a notice and does nothing.
No. Install and activate the plugin, and it handles the rest. The settings screen and the activity log show what it did, if you are curious.
Install NibbleSalt and let it rotate your security keys safely, on a schedule, without you touching wp-config.php.
NibbleSalt is completely free, open-source, and built without hidden paywalls or bloated features. If it helped keep your site's logins safer, consider supporting our ongoing development to keep it that way!
Small, focused WordPress plugins built without bloat.