Error rescue

WordPress Heartbeat API Causing High CPU: Fix (2026)

By Ali Yasin Jatoi 4 min readUpdated July 2, 2026
Reviewed by Ali Yasin Jatoi, Founder & Lead Engineer· Updated July 2, 2026

Quick answer

The Heartbeat API polls admin-ajax.php every 15 seconds when the editor is open, which spikes CPU on shared hosts. Fix by installing Heartbeat Control (free), throttling to 60 seconds on the front-end and dashboard, and 30 seconds inside the editor. On busy sites, WP Rocket also has Heartbeat controls under File Optimization → Heartbeat.

Confirm Heartbeat is the culprit

Open your host's slow query log or New Relic. If admin-ajax.php dominates and each request POSTs an `action=heartbeat` payload, you've found it. On shared hosts this alone can push you over CPU limits and trigger throttling.

Fix #1 — Install Heartbeat Control

Install Heartbeat Control by WP Rocket (free). Set: Frontend = Disable, Backend = 60 seconds, Post Editor = 30 seconds. This reduces admin-ajax.php calls by 90%+ on most sites.

Prefer we just fix it?

Runaway CPU, slow admin, and mystery timeouts are what our speed optimization service kills — Query Monitor + New Relic diagnosis, plugin swap-outs, and a documented before/after report. Learn more about WordPress speed optimization or grab a slot below.

Fix #2 — WP Rocket Heartbeat

If you have WP Rocket, don't double-configure. Use its built-in Heartbeat controls (Settings → Heartbeat) and skip the separate plugin.

Fix #3 — Don't disable Heartbeat entirely

Disabling Heartbeat in the editor breaks autosave and post-locking (two editors can overwrite each other). 30-60 seconds is the safe throttle — full disable only makes sense if no one edits inside wp-admin.

When to call for help

If Heartbeat throttling doesn't fix your CPU spike, the real culprit is usually a rogue plugin cron job or an unindexed autoload option. Our performance audit starts at $149 and includes Query Monitor + New Relic analysis.

Common questions

What is the WordPress Heartbeat API?+

A built-in mechanism that polls admin-ajax.php from the browser every 15-60 seconds to power autosave, post-locking, real-time notifications, and dashboard widgets. It's useful but can spike CPU on shared hosts.

How do I reduce Heartbeat CPU usage?+

Install Heartbeat Control (free) and set Frontend = Disable, Backend = 60s, Editor = 30s. This drops admin-ajax.php load by 90% without breaking autosave or post-locking.

Is it safe to disable the Heartbeat API?+

Safe on the frontend and dashboard, risky inside the post editor. Disabling in the editor breaks autosave and allows two people to overwrite each other's edits. Throttle to 30-60 seconds instead.

Why is admin-ajax.php using 100% CPU?+

Heartbeat is the usual cause on WordPress sites, but not the only one. WooCommerce cart fragments, plugin cron via admin-ajax, and popup/analytics plugins also route through admin-ajax.php. Query Monitor identifies the specific action causing the load.

Want help with this?

The pages below go deeper, by service and by city.

Want this handled for you?

Book a call and we will review your site before recommending anything.

Call Book a call