Type to search notes, tools, and pages...

WordPress Performance and Admin Audit Checklist

Work through these 12 evidence-based checks to isolate admin latency, database bottlenecks, and server misconfigurations. State is saved automatically in your browser.

Audit progress

Open DevTools > Network tab. Reload the admin page. Check the Time to First Byte (TTFB) of the main HTML document request.

  • TTFB > 1.0s: Server-side bottleneck (PHP, DB, outbound HTTP, cache misses).
  • Fast TTFB, sluggish page: Client-side issue (AJAX polling, JS execution, asset blocks).

Install Query Monitor temporarily and check the HTTP API Calls panel. Look for license checks or analytics calls blocking admin rendering.

// In wp-config.php to block outbound HTTP natively:
define( 'WP_HTTP_BLOCK_EXTERNAL', true );
define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org' );

Ensure total autoloaded data is under 1MB. Run a SQL query to measure total memory footprint.

SELECT ROUND(SUM(LENGTH(option_value)) / 1024 / 1024, 2) AS total_mb
FROM wp_options WHERE autoload = 'yes';

Never use raw DELETE FROM wp_options for transients (leaves orphaned timeouts). Use WP-CLI instead.

wp transient delete --all

Prevent heavy background jobs from executing during user requests. Add DISABLE_WP_CRON to wp-config.php, then schedule crontab.

define( 'DISABLE_WP_CRON', true );

Verify OPcache is active and set opcache.revalidate_freq = 60 or higher in production.

opcache.enable = 1
opcache.memory_consumption = 128
opcache.revalidate_freq = 60

Reduce redundant database queries across admin views. Confirm active status via WP-CLI.

wp redis status

Do not deactivate plugins globally on a live site. Install Health Check & Troubleshooting to isolate plugin issues for your admin session only.

Heartbeat polls admin-ajax.php every 15s in the editor and 60s on other screens. Limit frequency via filter.

add_filter( 'heartbeat_settings', function( $s ) { $s['interval'] = 60; return $s; } );

MySQL only indexes the first 20 chars of wp_postmeta.meta_value. Queries filtering on longer meta values trigger full table scans.

Dashboard widgets fetch remote RSS feeds synchronously during initial dashboard render. Hide or unhook unused dashboard widgets.

Ensure synchronous wp_mail() calls during admin actions use a local SMTP relay or background queue to prevent connection timeout blocks.

The diagnosis is in the notes

The checklist is a starting point. The diagnosis is in the notes.