Skip to content

Performance2 min read

How to Fix a Slow WordPress Admin Dashboard (wp-admin)

Diagnose and fix a sluggish WordPress admin: Query Monitor inspection, Heartbeat API control, WooCommerce background jobs, and transients cleanup.

By Hamza Ahmad AslamFull-Stack & WordPress Engineer

Dashboard metrics and charts displayed on a modern workstation monitor
Photo by Luke Peters on Unsplash (opens in a new tab)
On this page
  1. 1. Profile wp-admin execution with Query Monitor
  2. 2. Throttle the Heartbeat API
  3. 3. Clear orphaned transients and Action Scheduler logs
  4. 4. Increase PHP Memory Limit for Admin
  5. Frequently asked questions

Short answer: While front-end visitors often see cached pages, wp-admin always bypasses the page cache and executes 100% dynamic PHP and SQL on every click. A sluggish WordPress admin is typically caused by four bottlenecks: bloated autoloaded options, runaway transient records, unthrottled WordPress Heartbeat API AJAX calls, or plugins checking external licensing APIs synchronously on admin page loads. Fix it by profiling with Query Monitor, clearing orphaned transients, and throttling background polling.

1. Profile wp-admin execution with Query Monitor

Install the developer tool Query Monitor (opens in a new tab). Navigate through your slow admin screens and check the top admin bar:

  • Page generation time: Should stay under 0.5s for admin screens.
  • Database query time: Should stay under 0.05s.
  • HTTP API calls: Look for blocking remote HTTP requests made to plugin developer servers during page load.

If an HTTP API call takes 2.0s to check an expired license key, that single call holds up the entire dashboard.

2. Throttle the Heartbeat API

The WordPress Heartbeat API sends periodic AJAX requests (/wp-admin/admin-ajax.php) every 15 seconds while editing posts and every 60 seconds on other dashboard screens. In multi-author environments, dozens of concurrent browser tabs overwhelm PHP-FPM workers.

Throttle the heartbeat frequency using your theme or an mu-plugin:

add_filter( 'heartbeat_settings', function ( $settings ) {
    $settings['interval'] = 60; // Extend interval to 60 seconds
    return $settings;
} );

3. Clear orphaned transients and Action Scheduler logs

WooCommerce, SEO plugins, and analytics add-ons frequently leave millions of transient records in wp_options.

Run these WP-CLI commands to purge expired transients and old Action Scheduler logs safely:

# Delete expired transients
wp transient delete --expired

# Purge completed Action Scheduler logs older than 7 days
wp action-scheduler clean --batch-size=1000

4. Increase PHP Memory Limit for Admin

Complex post-editing screens and page builders require higher memory limits. Configure separate memory allowances in wp-config.php:

define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' ); // Applied inside /wp-admin

Need a professional performance audit for your WordPress admin or WooCommerce back office? Explore my WordPress Performance Optimization services or reach out directly.

Frequently asked questions

Why is my WordPress admin slow but my live website fast?

Your live website is served by a page cache or CDN edge cache that bypasses PHP and the database completely. The admin dashboard is completely dynamic and requires full PHP execution, database queries, and session authentication on every screen.

Does deleting revisions speed up wp-admin?

Yes. Large revision histories bloat the wp_posts and wp_postmeta tables, slowing down post-editing screens and database joins. Limiting revisions with define('WP_POST_REVISIONS', 5); in wp-config.php keeps the database lean.

Enjoyed this? Get the next article by email.

Occasional, useful posts. No spam — unsubscribe anytime.