Admin slowness has specific causes that frontend performance fixes do not touch – caching plugins do nothing for wp-admin. Before guessing, install Query Monitor and load the slow page. It shows exactly how many database queries ran, which ones were slow, and which plugin ran them. That data turns a guessing game into a targeted fix. Start there.
Why the WordPress Admin Is Slow
The admin bypasses most performance optimisations (caching plugins do not cache admin pages). Admin slowness is usually one of: a plugin making external API calls on every admin page load, a bloated database with too many revisions or transients, too many plugins running expensive operations, or a slow hosting server that struggles with PHP on the admin’s more complex pages.
Step 1: Use Query Monitor to Find the Problem
Install the Query Monitor plugin (free). It adds a debugging toolbar to the admin showing: number of database queries per page, which queries are slow, which plugins are responsible, and PHP memory usage. Load a slow admin page with Query Monitor active. Look for:
- More than 50 database queries on a single page (many plugins each adding queries)
- Individual queries taking over 100ms (a slow query that needs a database index)
- HTTP requests (plugins calling external APIs on page load)
- PHP memory usage over 128MB on a simple page
Query Monitor shows which plugin is responsible for each query and HTTP request, making the culprit identifiable rather than requiring trial and error.
Problem not solved? Describe the issue and get a free estimate.
Step 2: Clean the Database
WordPress accumulates database bloat that slows admin queries:
- Post revisions – WordPress saves every revision of every post. A 5-year-old blog can have tens of thousands of revision records. Limit revisions by adding to wp-config.php:
define( 'WP_POST_REVISIONS', 5 );and delete old revisions with WP Rocket‘s database tools or the WP-Optimize plugin. - Transients – temporary data stored in the database. Plugins create transients and sometimes do not clean them up. Expired transients accumulate over time. WP-Optimize or the Transients Manager plugin deletes expired and orphaned transients.
- Spam comments – thousands of spam comments in the database slow down the comments list in admin. Bulk-delete them from Comments -> Spam.
- Orphaned metadata – post meta records for deleted posts remain in the database. WP-Optimize cleans these.
Step 3: Disable Dashboard Widgets
The WordPress dashboard loads several widgets including “WordPress News” (which makes an external HTTP request to wordpress.org on every dashboard load) and plugin-specific dashboard widgets that each run their own queries. Go to Screen Options (top right of dashboard) and uncheck widgets you do not use. For the WordPress News widget specifically, add to functions.php:
add_action( 'wp_dashboard_setup', function() {{
remove_meta_box( 'dashboard_primary', 'dashboard', 'side' );
}} );
Step 4: Disable Heartbeat API or Reduce Its Frequency
The WordPress Heartbeat API sends an AJAX request to the server every 15-60 seconds while you are in the admin. This keeps the post editor lock active and syncs data. On slow hosting, these frequent requests stack up and slow the admin. Use the Heartbeat Control plugin to reduce the frequency or disable it on pages where it is not needed:
- Dashboard: reduce to every 60 seconds or disable entirely
- Post editor: keep at default (required for autosave)
- Frontend: disable entirely (Heartbeat is not needed on the frontend)
Step 5: Object Cache for Admin Speed
An object cache (Redis or Memcached) stores database query results in memory so repeated identical queries are served from RAM rather than the database. This dramatically speeds up the admin on sites with many posts. Most managed WordPress hosts include Redis – enable it in your hosting panel. On self-managed servers, install Redis and the Redis Object Cache WordPress plugin.