Home / WordPress / admin-ajax.php Using Too Much CPU: Fix

admin-ajax.php Using Too Much CPU: Fix

Reduce high CPU usage from admin-ajax.php by identifying the caller, limiting heartbeat/AJAX, and fixing heavy plugins.

Views: 22 Unique: 18 Updated: 2026-03-17

What this problem is

Your hosting shows repeated requests to /wp-admin/admin-ajax.php causing high CPU usage.

Why it happens

  • WooCommerce, builders, or analytics plugins running frequent AJAX calls
  • WordPress Heartbeat API causing frequent background requests
  • Bots hitting AJAX endpoints
  • Long-running AJAX actions due to slow database

Prerequisites

  • Access to hosting access logs (to see the request parameters and IPs)
  • wp-admin access to adjust plugins/settings

Diagnosis

  1. In access logs, identify the query parameter action=.
  2. Check whether requests come from real users (logged-in) or bots.
  3. Correlate CPU spikes with specific actions/plugins.

Detailed steps

Step 1) Identify the action and plugin

Search code or plugin docs for the AJAX action name to find the owner plugin.

Step 2) Reduce Heartbeat frequency

Use a safe configuration (via a plugin or code) to reduce Heartbeat in admin/editor screens.

Step 3) Disable/replace the culprit plugin or feature

Disable the feature that triggers frequent AJAX requests (cart fragments, live stats, etc.).

Step 4) Block abusive traffic

Use WAF/rate limiting rules for abusive IPs or paths, without blocking legitimate admin use.

Expected results

  • Lower CPU usage and fewer admin-ajax requests

What to do if it fails

  • Enable PHP slow logs and database slow logs to find why the AJAX call is slow

Best practices

  • Keep plugin features minimal and monitor logs after installing new plugins
Back to category