New 24/7 monitoring and daily cloud backups now included in every Shield Pro plan.

Server

Learn how to disable WordPress Heartbeat API.

Heartbeat sends AJAX pulses from open browser tabs to admin-ajax.php. On busy editorial teams or shops with many admin users, it adds constant PHP load. You can throttle or disable it selectively instead of turning it off everywhere.

Time: 10-20 minutes Level: Beginner
Neil McNaught, founder of BugShield and WordPress author
Written by
Written by
Updated
Updated

What this problem looks like

Heartbeat powers autosave, post locking, and some real-time admin features. Disabling it globally breaks collaborative editing and can affect WooCommerce product edit locking.

Best practice: disable on front end, throttle on admin, keep reasonable frequency in editor.

Step 1: What Heartbeat does

WordPress Heartbeat posts to admin-ajax.php with action heartbeat. Each open wp-admin tab sends pulses. Ten editors with five tabs each creates significant background traffic.

Step 2: Configure with Heartbeat Control plugin

  1. Install Heartbeat Control from wordpress.org.
  2. Settings → Heartbeat Control.
  3. Disable Heartbeat on front end.
  4. Set admin to 60 second interval or disable on dashboard only.
  5. Leave post editor at default or 30 seconds.

Step 3: Code approach in functions.php

Child theme snippet to deregister Heartbeat on front end only. Add to functions.php:

php
add_action( 'init', function() {
	if ( ! is_admin() ) {
		wp_deregister_script( 'heartbeat' );
	}
}, 1 );

Step 4: WooCommerce and stock management

Some inventory plugins use Heartbeat for live stock updates. Test product edits and concurrent editing after throttling. Re-enable admin Heartbeat if stock locks misbehave.

Step 5: Measure CPU impact

Check hosting CPU graphs before and after changes during business hours. Pair Heartbeat tuning with object cache and cron fixes for best results.

When to stop DIY and hire help

If CPU stays high after Heartbeat tuning, the cause is elsewhere: cron, traffic bots, or plugin queries. BugShield diagnoses server load on WordPress hosting at a confirmed price without hourly billing surprises.

Questions answered

WordPress Heartbeat API FAQs

Answers about what Heartbeat does, safer rate limiting, post locking, WooCommerce, server load, and testing changes without breaking wp-admin.

Is it safe to disable Heartbeat completely?

Not recommended site-wide. Disable on front end and throttle admin instead.

Does Heartbeat affect visitors?

Only if themes or plugins load Heartbeat on public pages. Most shops should deregister it on front end.

Will disabling Heartbeat break Gutenberg?

Autosave and block editor sync need Heartbeat in editor context. Keep editor enabled.

Can Heartbeat cause 503 errors?

On overloaded shared hosting, many simultaneous heartbeat requests contribute to PHP worker exhaustion.

What does the WordPress Heartbeat API do?

It sends periodic browser requests that support post locking, autosave, session checks, dashboard updates, and real-time features used by WordPress and plugins.

Is limiting WordPress Heartbeat safer than disabling it?

Usually. Increasing the interval or limiting it on selected screens can reduce requests while preserving autosave, lock warnings, and plugin functions.

Will disabling Heartbeat stop WordPress autosave?

It can interrupt autosave and post-lock updates, increasing the risk of lost edits or two people overwriting each other's work.

Can WooCommerce use the WordPress Heartbeat API?

WooCommerce and extensions may use Heartbeat for dashboard or session-related updates. Test orders, admin notices, and relevant screens after changing it.

Is WordPress Heartbeat the same as WP-Cron?

No. Heartbeat is browser-driven communication while an administrator has a page open. WP-Cron schedules background tasks when WordPress receives traffic or an external runner calls it.

How do I verify a WordPress Heartbeat change?

Inspect browser Network requests on editor and dashboard screens, test autosave and post locking, and compare server load before and after the controlled change.

Would you rather a developer fixed it?

Request a fix at a confirmed price and speak directly with the BugShield developer working on your site.

Request a Fix