100% Free Zero Configuration Nightly to Quarterly Checks Its Own Work WooCommerce-Aware

NibbleSalt ‑ 'Automatic Security Key & Salt Rotation for WordPress'

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.

GPLv2 · Single-site WordPress · No account or license key needed

On this page
🔑 Why Rotate WordPress Salts

A Stolen Login Cookie Works Until Your Keys Change

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.

⚠ Without rotation
The same keys protect your site for its entire life. Rotating them by hand means editing wp-config.php, and one slip in that file can take the whole site down. So it rarely gets done, and on locked-down hosts it can't be done at all.

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.

💡 It is built around one honest fact. Rotating keys signs everyone out, you included. That is exactly what makes stolen cookies worthless. NibbleSalt picks a quiet time, checks the site is healthy before it signs anyone out, waits while WooCommerce shoppers have an active cart or an order awaiting payment, and shows everyone who is logged in a 15-minute warning first, so the sign-out lands when it hurts least and surprises no one.

Typical Setup, Keys Set Once

  • The same keys and salts for the life of the site
  • Rotating by hand means editing wp-config.php and hoping nothing breaks
  • A bad edit can take the whole site offline
  • Locked-down hosts don't let you make the edit at all
  • A rotation in the middle of a checkout interrupts shoppers
  • Nothing tells you whether the change actually took effect

With NibbleSalt

  • Rotates on a schedule, from nightly to quarterly
  • Edits wp-config.php safely, or uses its own database mode when it can't
  • Checks that the site still loads before signing anyone out, and restores the file if it doesn't
  • Waits while shoppers have active carts or unpaid orders, up to a limit you control
  • Warns everyone who is logged in, any role, 15 minutes ahead — on the site and in wp-admin
  • Flags a change that hasn't taken effect yet and offers a fix
  • Every rotation logged, and standard ones can be undone for 24 hours
🔌 What is NibbleSalt?

A Free Key Rotator That Checks Its Own Work

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.

💡 Genuinely Free: Every feature on this page is included in the plugin at no cost. There is no paid version, no license key, and no outside service to sign up for.
🛒 Built for busy stores and big sites: The WooCommerce guard, the rotation window and the shopper threshold exist so that a large store or a site with many user roles can rotate keys without a sudden, badly timed mass sign-out.
🔍 How It Chooses a Mode

It Works Whether or Not Your Host Lets It Edit wp-config.php

NibbleSalt looks at how your site's keys are actually set up and picks the safest way to rotate them:

01

File Mode Preferred When Possible

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.

02

Database Mode Automatic Fallback

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.

03

The Server Cache Safety Net

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.

Key Features of NibbleSalt

Built So a Rotation Never Becomes an Outage

Every one of these is part of version 1.0, not a roadmap item, and not gated behind a paid tier.

1 Careful wp-config.php Editing

In File mode, NibbleSalt changes only the eight key and salt values and leaves the rest of the file alone.

  • The new file is written to a randomly named, owner-only temporary file in the same folder, then swapped in
  • File permissions and ownership are left as they were
  • No leftover temporary files, and nothing named after your database credentials

2 A Health Check Before Anyone Is Signed Out

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.

3 Database Mode for Locked-Down Hosts

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.

4 Aware of Server Caching

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.

5 WooCommerce-Aware Timing

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.

  • It retries hourly and postpones the rotation once a cap is reached, so the guard can never block rotation forever
  • Empty carts never cause a delay
  • An "only wait if at least N shoppers are active" setting keeps a steady trickle of carts on a busy store from holding things up

6 A 15-Minute Warning for Everyone, Not Just You

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.

  • Starting a rotation manually offers the same warning: check "Warn everyone first" and it waits 15 minutes and shows the identical countdown, instead of signing everyone out on the spot
  • While a delayed rotation is pending, the settings page shows exactly when it will run, and the Rotate Now button is disabled so a second one can't be started on top of it

7 A Schedule That Respects Your Timezone

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.

8 One Rotation at a Time, Even After a Crash

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".

9 Honest Reporting When Something Goes Wrong Late

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.

10 A 24-Hour Undo That Can't Be Abused

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.

  • Every rotation ends all sessions, so undoing one can never bring an old cookie back to life
  • Undo is switched off after an Emergency rotation and after 24 hours

11 Activity Log and Command Line

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.

12 Page Caches Cleared at the Right Moment

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.

13 Extendable by Developers

Filters and actions let you add your own checkout guards, cache purges, session handling and file locations, and run code after every rotation.

⚙ How NibbleSalt Works

What Happens During a Rotation

No dashboard tour required. This is the entire mental model.

01

Lock and look around

It takes a lock so nothing overlaps, then checks whether shoppers have active carts. If they do, it waits.

02

Make the change

New keys are generated and applied, either in wp-config.php or through Database mode.

03

Check the site is healthy

Your site is loaded like a visitor would load it. If that fails, the original file is restored and nothing is rotated.

04

Sign out, clean up, log

Every session is ended, page caches are cleared, the rotation is logged, and the next run is scheduled.

📊 Why "Free" Doesn't Mean "Basic" Here

NibbleSalt vs. Doing It by Hand or With Other Plugins

There is no paid tier of NibbleSalt holding features back. This is what installing it actually gets you.

CapabilityNibbleSaltRotating by HandTypical Rotator Plugins
Rotates on a schedule with no action from youUsually
Works when wp-config.php is read-only or salts come from the environmentNeeds file accessVaries
Checks the site still loads before signing anyone outVaries
Restores the original file automatically if the result is brokenVaries
Waits while WooCommerce shoppers have an active cart or an unpaid orderRarely
Notices when the new keys aren't live yetRarely
Schedules in your site's timezone, correct across daylight savingNot applicableVaries
24-hour undoVaries
Activity log of every rotationVaries
Safe against overlapping runs and crashesNot applicableVaries
PriceFreeFreeFree or paid
🚀 Getting Started

Install It and It Sets Itself Up

There is no setup wizard. Everything after the first step is optional.

Install and Activate

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.

That's It for Setup

NibbleSalt looks at how your keys are defined and chooses File mode or Database mode on its own.

Pick a Schedule (Optional)

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.

Try a Rotation (Optional)

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.

⬇ Download NibbleSalt Free

Support Free, Open-Source Development

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!

Frequently Asked Questions

Before You Install

Is NibbleSalt actually free, with no catch?

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.

Does it touch anything besides key rotation?

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.

Will a rotation sign everyone out?

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.

What if my host won't let plugins edit wp-config.php?

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.

What if a rotation breaks my site?

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.

Can I undo a rotation?

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.

How does it treat a WooCommerce store?

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.

What if the server crashes in the middle of a rotation?

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".

Can I start a second rotation while one is already counting down?

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.

What happens if I deactivate or delete it?

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.

Does it work on multisite?

Not in version 1.0. On a multisite network, NibbleSalt shows a notice and does nothing.

Do I need to know what salts and keys are?

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.

Stop Trusting Keys You Set Years Ago

Install NibbleSalt and let it rotate your security keys safely, on a schedule, without you touching wp-config.php.

⬇ Download NibbleSalt Free

Support Free, Open-Source Development

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!

More from MVP Plugins

Small, focused WordPress plugins built without bloat.

View all plugins