Visitors get your pages in a second, yet every click inside wp-admin hangs for five, ten or twenty seconds, and saving a page feels like it might never finish. That split is a clue in itself. Visitors are usually served a saved (cached) copy of each page, while the dashboard is built fresh on every click, so the dashboard shows how slow the site really is underneath. One free plugin tells you which part is taking the time. Below is a rebuilt example (not a real client), the ten-minute check, and the fix for each cause.
| What the check shows | Why it happens | The fix |
|---|---|---|
| HTTP API Calls lists a call to another site that takes seconds or times out (a license check, a news feed, an "upgrade to Pro" banner) | Some plugins phone home on every dashboard page and make the page wait for the answer. When their server is slow or blocked, every click waits too | Update that plugin first; this is often fixed upstream. If it persists, turn off its dashboard widget in Screen Options (top right of the Dashboard), or replace the plugin. A security plugin or host firewall blocking outgoing calls produces the same timeouts and is worth a check |
| Queries by Component shows one plugin with most of the database time, often a page builder, an activity log, statistics or a related-posts plugin | The plugin runs heavy database work on every admin page, or its own tables have grown to millions of rows (logs and statistics never cleaned) | Check that plugin's settings for a log retention or cleanup option and set it to 30 or 90 days. Deactivate it for a minute and reload: if the dashboard is fast, you have your answer. Replace it if it has no cleanup |
| Site Health warns about autoloaded options, or Overview shows a large memory use on every page | WordPress loads every "autoload" setting on every request. Plugins you deleted years ago often leave large ones behind, and some plugins store whole caches there | Back up the database first. Find the biggest rows with SELECT option_name, LENGTH(option_value) FROM wp_options WHERE autoload IN ('yes','on','auto-on','auto') ORDER BY 2 DESC LIMIT 20; in phpMyAdmin. Rows named after plugins that are no longer installed can be set to not autoload (or removed). Leave WordPress's own rows alone |
Slow mostly while editing, worse with several tabs open; the host reports high CPU or admin-ajax.php in its logs | The Heartbeat feature pings the server every 15 to 60 seconds from each open admin tab, for autosave and post locking. Ten forgotten tabs means constant load, and a small hosting plan runs out of workers | Close admin tabs you are not using. Slow Heartbeat down (many caching plugins have a setting for it) rather than switching it off: in the editor it is what saves your drafts and stops two people overwriting each other's edits |
| WooCommerce screens are the slowest; WooCommerce > Status > Scheduled Actions shows thousands of past-due or failed actions | WooCommerce queues background jobs (emails, stock syncs, reports). When they pile up, the queue and its table slow down every admin page that touches them | Find out which hook is failing (the action's name tells you the plugin) and fix or remove that plugin. Then clear old completed and failed actions. If past-due actions keep growing, switch WordPress's scheduler to a real server task (next row) |
| Random clicks are slow, not always the same page; Query Monitor shows time spent before the page's own work starts | WordPress runs its scheduled tasks (wp-cron) during page loads, and the admin is where they run most. A backlog of jobs lands on your click | Add define('DISABLE_WP_CRON', true); to wp-config.php, then ask the host (or use its control panel) to call https://yoursite.com/wp-cron.php every 5 to 15 minutes. Do not do the first step without the second: scheduled posts and emails would stop |
| Site Health flags an old PHP version or no object cache; everything is a little slow, nothing stands out | The dashboard is built fresh each time, so slow PHP or a low memory setting hurts it most. A small shared plan with one or two workers queues every click | Update PHP in the host's control panel (see outdated PHP first). Turn on the host's object cache (Redis or Memcached) if it offers one. Memory errors: see memory exhausted |
wp_options without a database backup. A wrong row can take the whole site down.Finding the cause usually takes ten minutes with Query Monitor; cleaning the database, replacing a plugin without losing its settings, or moving the scheduler to a server task is where most owners would rather have someone do it. If that is you, the box below is for that. Related: whole site is slow, Elementor editor stuck loading and WooCommerce checkout problems.