A slow WordPress dashboard can feel like your hosting is letting you down. Sometimes it is. But often, small background requests are stacking up behind the scenes.
WordPress Heartbeat settings can reduce server load without turning off the admin features you rely on. The smart move isn’t to disable everything. It’s to identify where Heartbeat is busy, slow it down where it’s safe, and protect autosaves where it matters.
Start with proof, then make the smallest change that solves the problem.
What the WordPress Heartbeat API Actually Does
WordPress introduced the Heartbeat API in version 3.6. It lets a browser check in with the server at intervals, so WordPress can respond to admin events without a full page refresh.
How requests reach admin-ajax.php
Heartbeat sends AJAX POST requests through admin-ajax.php. Each request uses PHP and server resources, even when the response is small.
The official WordPress Heartbeat API documentation describes this as a periodic client-side tick. Depending on the screen and settings, intervals generally fall between 15 and 120 seconds.
One request is harmless. A dozen logged-in users, several open editor tabs, and a busy WooCommerce dashboard can create a steady stream of work for your PHP workers.
Admin tasks that depend on Heartbeat
Heartbeat isn’t random background chatter. It supports useful tasks, including:
- The post editor’s autosave and post revisions.
- Post locking, which warns editors when someone else has a page open.
- Session management and expiration notices.
- Some plugin notifications and real-time updates.
That’s why a full shutdown can create new problems while fixing an old one. Less server load sounds great, until an editor loses an unsaved landing page or collaborative editing stops working.
Diagnose Heartbeat Load Before Changing Settings
Don’t blame Heartbeat because admin-ajax.php appears in a server report. That file handles plenty of WordPress and plugin activity.
Confirm the admin-ajax.php request is actually Heartbeat
Open your browser’s developer tools, go to the Network tab, and filter for admin-ajax.php. Look at the request payload or query details.
You are looking for action=heartbeat. If it isn’t there, Heartbeat isn’t the request you need to fix.
This small check saves time. A page builder, security plugin, or form integration may generate unrelated AJAX calls instead. Query Monitor can also help you inspect plugin and database activity.
Match request patterns to server strain
Check your hosting control panel for CPU usage, memory, entry processes, and PHP workers. Then compare those numbers with real behavior.
Does CPU jump when editors are active? Does the issue happen only during product updates? Does it disappear after everyone logs out?
These comparisons help isolate performance issues. A high number of admin-ajax.php requests is not enough evidence. Confirm repeated action=heartbeat requests before changing the setting.
We also recommend testing at a quiet time. You need a clear before-and-after picture, not a guess made during a traffic spike.
Choose the Smallest Safe Change First
The Heartbeat API reference covers the background requests that keep WordPress admin tasks active. A longer request interval is usually safer than disabling Heartbeat outright. It lowers the number of calls while keeping essential work running.
Slow it down before shutting it off
For many small business sites, a 60-second interval is a sensible starting point for the dashboard. It reduces background requests without making the admin area feel frozen.
Only disable heartbeat after testing a longer interval and confirming it isn’t enough. This keeps the change targeted and easier to reverse.
The post editor deserves more care. If you publish often, write long pages, or have several people editing content, keep Heartbeat active there. On editor-heavy sites, prioritize autosave and post locking over the smallest possible request count.
Intervals from 15 to 120 seconds are common. Stay inside that range unless a plugin’s documentation tells you otherwise.
Treat each WordPress area differently
Think in three areas:
| Area | Safe starting point | Why |
|---|---|---|
| Frontend | Disable or use a long interval | Most visitor-facing pages don’t need Heartbeat. |
| Dashboard | Set 60 to 120 seconds | Admin checks still work with fewer requests. |
| Post editor | Keep enabled, use 30 to 60 seconds | Autosave and post locking need regular contact. |
The takeaway is simple: don’t use one setting everywhere. Public pages, the dashboard, and the post editor have different jobs.
Configure WordPress Heartbeat Settings With Plugins
A plugin is the easiest route for most site owners. The Heartbeat Control plugin and Perfmatters are reputable options, but the best optimization plugins are easy to maintain and reverse. It also makes rollback simple, and the Heartbeat Control plugin keeps that process accessible when an admin task suddenly stops working.
Control Heartbeat in WP Rocket
WP Rocket includes Heartbeat controls under Settings > WP Rocket > Heartbeat. Enable the control, then choose whether to reduce activity, disable it, or leave it alone for each area.
WP Rocket’s Heartbeat control guide says its reduced mode changes a one-minute interval to one request every two minutes.
In WP Rocket, we’d use reduced activity in the dashboard first. For the post editor, keep it active unless you’ve tested autosaves, post locking, and editor-based plugins.
Test the change after saving, then use WP Rocket’s controls to roll it back if an admin task stops working.
Set separate rules in LiteSpeed Cache
LiteSpeed Cache gives you more detailed controls under LiteSpeed Cache > Toolbox > Heartbeat. You can set frontend, backend/dashboard, and editor timing separately.
LiteSpeed Cache’s Heartbeat settings documentation lists defaults of 60 seconds for frontend and backend, and 15 seconds for the editor. You can set values between 15 and 120 seconds. A value of 0 disables Heartbeat in that area.
Choosing to disable heartbeat in a context is more aggressive than increasing its interval.
For most sites, we’d use LiteSpeed Cache to disable Heartbeat on the frontend, keep backend requests at 60 seconds, and leave the editor at 15 or 30 seconds. Simple. Safe. Much easier on server resources.
Change the Interval With a Custom Snippet
Custom code works when you want a lightweight fix without another optimization plugin. Add the snippet through a child theme’s functions.php file or a code snippets plugin.
Use the heartbeat_settings filter
The WordPress heartbeat_settings hook provides the heartbeat_settings filter for adjusting the interval without deregistering the Heartbeat script.
add_filter( 'heartbeat_settings', function( $settings ) {
$settings['interval'] = 60;
return $settings;
} );
This example requests a 60-second interval. It is a sensible starting point for a low-traffic admin area. If you prefer a UI, the Heartbeat Control plugin offers a reversible alternative.
Don’t use this as a blanket fix for every screen. The heartbeat_settings filter changes the interval wherever Heartbeat runs, so it isn’t context-specific unless you add conditional logic.
Keep code changes easy to reverse
Before adding custom code, create a fresh backup and record the original behavior. If something goes wrong, remove the snippet and clear any cache.
Custom code isn’t automatically better than a plugin setting. Choose the option you can maintain confidently. If multiple people manage the site, a clearly labeled plugin setting is often less risky.
Protect Autosaves, Post Locking, and Team Work
The post editor is where aggressive changes hurt first. They can disrupt autosave on sites where marketing, support, and content teams work all day.
Test a real editing session
Open a draft in one browser. Use the post editor to make a few edits, wait for an autosave, then refresh the page. Confirm that the draft is still there.
Next, open the same post in a second browser session to test post locking. WordPress should show a post locking warning. If it doesn’t, restore the editor interval or disable heartbeat before team workflows fail.

Check plugins that expect live updates
Page builders, learning platforms, membership tools, booking plugins, and WooCommerce extensions may use background AJAX calls for their own features. Some use Heartbeat directly, while others may depend on real-time updates.
Test the tasks your business runs every week:
- Create and update a post or product.
- Test collaborative editing and post locking with two users.
- Let a login session sit for a while.
- Review plugin notices, orders, bookings, and support workflows.
A setting that works on a brochure site may fail on a busy store. Test the work, not dashboard speed alone.
When Hosting Needs More Than a Heartbeat Tweak
Heartbeat tuning can reduce unnecessary server load. It can’t fix an overloaded shared hosting plan, inefficient plugins, slow database queries, inadequate memory, or an underpowered PHP setup with too few PHP workers.
If usage stays high after you confirm and reduce Heartbeat requests, review overall site performance. Check caching, image optimization, optimization plugins, plugin cleanup, current PHP versions, and available memory. Monitor PHP workers after tuning, especially during busy periods.
For site owners who want fewer technical chores, managed WordPress hosting adds monitoring, backups, security, and WordPress-focused support. That gives you a better place to troubleshoot than a generic resource warning.
Growing stores and high-traffic sites may also need more isolated resources. Our guide to when to upgrade to VPS hosting can help you compare the next step without paying for more server than you need.
Key Takeaways
- Confirm
action=heartbeatbefore treatingadmin-ajax.phpas the problem. - Reduce the interval first, especially in the dashboard.
- Keep the post editor active when autosaves and collaborative editing matter.
- Test visitor-facing features before you disable heartbeat on the frontend.
- Make one change at a time, using the Heartbeat Control plugin or WP Rocket for easy rollback.
Frequently Asked Questions
Is it safe to disable Heartbeat on the frontend?
Usually, yes, if your public-facing plugins don’t depend on it. Test contact forms, bookings, carts, membership areas, and other live features first. If you’re unsure, a longer interval is a safer first step.
Will changing Heartbeat settings improve site speed for visitors?
It can reduce server load from logged-in background requests. It won’t automatically make every public page faster. Page caching, hosting capacity, database performance, and plugin quality still affect visitor speed.
Why is admin-ajax.php using so much CPU?
Heartbeat may be part of the issue, but it isn’t the only possibility. Confirm the request action, then look for plugins or admin tools sending frequent requests. After identifying the source, a tool such as the Heartbeat Control plugin can reduce or scope Heartbeat activity. The WordPress Heartbeat API explained resource is useful when you need to separate Heartbeat activity from other AJAX traffic.
Keep WordPress Responsive Without Letting Requests Run Wild
The right Heartbeat configuration gives you control without taking away the admin tools that protect your work. Measure actual traffic, adjust the request interval where it makes sense, and test the editor before finishing. A stable setup also supports site performance.
Lower request volume is good. Lower request volume that still preserves autosave, team editing, and admin stability under pressure is better.





