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
- In access logs, identify the query parameter
action=. - Check whether requests come from real users (logged-in) or bots.
- 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