Slow Heartbeat down instead of turning it off completely
Heartbeat Frequency raises the interval between WordPress's own Heartbeat requests, trading a slightly delayed autosave or session check for meaningfully fewer PHP executions on a busy admin — without disabling the feature outright.
- Set any interval from 15 seconds upward.
- Below WordPress's own 15-second floor is validated and rejected.
- Post locking, session checks and autosave keep working, just less often.
- The middle setting between leaving Heartbeat alone and switching it off.
Leave empty to use the WordPress default (15 sec). Minimum: 15.
What does Heartbeat Frequency do?
When the heartbeat_frequency module is active with a value set, TOWP_Performance filters WordPress's own heartbeat_settings to change the interval between Heartbeat requests. Since the Heartbeat JS client itself enforces a 15-second minimum and silently ignores anything below that, the module rejects any value under 15 rather than applying a setting that wouldn't actually take effect. Leaving the field empty makes no change at all, preserving WordPress's own 15-second default.
Between leaving Heartbeat alone and switching it off, there's no middle ground
Since WordPress offers no built-in way to simply slow Heartbeat down, most sites end up choosing between two extremes.
Every interval below fifteen seconds means more requests, not fewer
WordPress's own default already polls as often as fifteen seconds on most admin screens, and there's no built-in way to simply slow that down instead of disabling the feature.
Disabling Heartbeat outright can remove features a site still needs
Turning Heartbeat off completely trades away autosave coordination and post locking, even on a site that would rather just hear from it less often.
The same features, checking in less often
The module raises the interval between requests instead of removing Heartbeat entirely, so dependent features keep working on a longer cycle.
Any interval from fifteen seconds upward
Set exactly how many seconds pass between Heartbeat requests, rather than choosing only between the WordPress default and disabling it.
Values below the real minimum are rejected
Since the Heartbeat JS client enforces a 15-second floor on its own, the module validates against that same minimum rather than accepting a setting that wouldn't actually apply.
Dependent features keep working, just less often
Post locking, session checks and autosave coordination continue functioning; they simply notice a change a little later than before.
Slower, not off, validated against a real limit
Every capability below is present in the supplied PHP class and its settings registration.
The exact hook WordPress uses for this
The module hooks heartbeat_settings, the same native WordPress filter used to configure the Heartbeat script's own behavior.
Matches the 15-second minimum WordPress itself enforces
A value below 15 is rejected before the filter is even added, avoiding a setting that the Heartbeat JS client would silently ignore anyway.
No filter added unless a valid value is set
With the field left empty, the module adds no filter at all, and WordPress's own default interval applies exactly as before.
Uses WordPress's own configuration mechanism
The interval override works through the native filter WordPress itself provides for this exact purpose, rather than replacing or patching the Heartbeat script.
A separate, complementary setting
This works independently of the Heartbeat module's on/off/post-editor modes, offering a middle ground rather than another disable switch.
Frontend and admin alike
The interval change applies wherever the Heartbeat script is still active, whether that's every admin screen or only the ones left enabled.
Where a slower interval helps most
The module supports any site that wants fewer requests without losing what Heartbeat provides.
Busy admins that still need Heartbeat-dependent features
Keep post locking and autosave coordination working while meaningfully reducing how often they check in.
A lighter alternative to disabling Heartbeat outright
Choose this over a full disable when the goal is fewer requests, not the complete removal of Heartbeat-dependent functionality.
Sites tuning server load without losing collaboration features
Stretch out the interval on a site where several editors work simultaneously, without giving up collision warnings entirely.
Fewer requests, nothing given up
The module combines a real request reduction with every dependent feature staying fully functional.
One filter, requests scale with the interval
The verified implementation stays lightweight while directly reducing repeated request volume.
One filter, applied once
The interval override is a single filter callback added once at initialization, adding no ongoing overhead of its own.
No effect with an empty or invalid value
An empty field, or one below the 15-second minimum, results in no filter being added at all.
Fewer requests scale with a longer interval
The higher the configured interval, the fewer Heartbeat requests fire over any given period of admin activity.
Timing only, nothing disabled silently
The code changes request frequency, never any capability, permission, or dependent feature.
A performance setting, not an access control
This module only changes how often Heartbeat requests fire; it has no effect on any capability or permission.
Validated against a real technical constraint, not an arbitrary one
The 15-second minimum matches a genuine limit enforced by WordPress's own Heartbeat JS client, not a limitation invented by this module.
No feature silently disabled
Unlike a full Heartbeat disable, this setting keeps every dependent feature active; it only changes the timing.
Configuration requires the same access as any other setting
Setting the interval happens through the standard TheOneWP settings screen, available only to an administrator.
Built directly around WordPress's own Heartbeat configuration
The supplied code integrates through APIs present in WordPress core; this page makes no compatibility claim beyond the verified implementation.
heartbeat_settings filter
The native WordPress filter used to configure the Heartbeat script's behavior, including its polling interval.
The Heartbeat JS client's own 15-second floor
The actual constraint enforced by WordPress's Heartbeat JavaScript itself, which this module's validation is built to match.
Independent of the Heartbeat mode toggle
This setting works alongside, not instead of, the separate Heartbeat module that controls where the script runs at all.
TheOneWP versus common alternatives
Compare the verified implementation with a typical preset-only frequency option.
| Capability | TheOneWP Heartbeat Frequency | Other common solutions |
|---|---|---|
| Granularity | Any interval from 15 seconds upward, chosen precisely | Often a fixed set of preset intervals to pick from |
| Validation | Rejects values below the real 15-second client minimum | Some approaches accept a lower value that silently has no effect |
| Feature preservation | Every Heartbeat-dependent feature keeps working | A full disable removes those features entirely |
| Mechanism | WordPress's own native heartbeat_settings filter | Some approaches patch or replace the Heartbeat script directly |
| Administration | A single field with a clear default and minimum | Frequently undocumented or unclear about what value is actually safe |
Set a slower interval in four steps
Confirm dependent features still work after choosing an interval.
Enable Heartbeat Frequency
Activate the module from the TheOneWP System settings tab.
Choose an interval
Enter a value of 15 or higher, or leave the field empty to keep WordPress's own default.
Save the setting
Save the value; the new interval applies to Heartbeat requests going forward.
Confirm dependent features still work as expected
Check that post locking and autosave still function, just on the longer interval that was configured.
Raise it gradually, pair it with the mode setting
A modest increase often delivers most of the benefit without noticeably slowing anything down.
Start with a modest increase before going higher
A jump from 15 to 30 or 60 seconds is often enough to meaningfully cut request volume without dependent features feeling noticeably slower.
Pair this with the Heartbeat mode setting for full control
Use the separate Heartbeat module to decide where the script runs at all, and this setting to decide how often it checks in where it does.
Reconsider the interval on a site with frequent simultaneous editing
A longer interval means a slower notice when two people start editing the same post; weigh that against the request savings.
Leave the field empty if 15 seconds is already acceptable
There's no need to set a value equal to the default; an empty field already preserves it.
Avoid a couple of assumptions about what this setting changes
A few details are worth understanding correctly before setting a value.
Entering a value below 15 and expecting it to apply
Anything under the 15-second minimum gets rejected, since WordPress's own Heartbeat client would silently ignore it anyway.
Assuming this disables Heartbeat
This setting only changes the polling interval; Heartbeat and everything that depends on it stay active.
Setting an interval so long that collaboration features feel broken
A very high interval can make post locking or session checks feel unreliable, even though they're technically still working.
Heartbeat Frequency FAQ
These answers come directly from the verified class and its settings registration.
What does Heartbeat Frequency do?
It sets how many seconds pass between WordPress's own Heartbeat requests, instead of using the default interval or disabling Heartbeat entirely.
What's the minimum interval I can set?
15 seconds, which matches the minimum enforced by WordPress's own Heartbeat JavaScript client.
What happens if I enter a value below 15?
It gets rejected; no filter is applied, and WordPress's own default interval continues to apply.
What happens if I leave the field empty?
Nothing changes; WordPress's default 15-second interval applies exactly as before.
Does this disable any Heartbeat-dependent features?
No. Post locking, session checks and autosave coordination all keep working; they just check in less often.
Is this the same as the Heartbeat module?
No. That module controls where Heartbeat runs at all; this setting controls how often it polls where it's active.
Will this reduce server load?
Yes, proportionally to how much the interval is raised, since fewer requests mean fewer PHP executions and database queries.
Can I use this alongside the Heartbeat mode setting?
Yes. The two settings are independent and can be configured together.
Does a longer interval affect how quickly post locking notices appear?
Yes. A longer interval means those notices, and any other Heartbeat-dependent updates, appear a little later.
Who can change the Heartbeat interval?
Only an administrator with access to the TheOneWP settings screen.
Stop choosing between Heartbeat's default and turning it off.Slow it down instead.
Use Heartbeat Frequency to raise the polling interval, keeping every dependent feature working while meaningfully cutting request volume.

