High CPU usage is one of the most common performance problems faced by WordPress website owners. When a WordPress website consumes excessive CPU resources, it can become slow, generate 508 or 503 errors, increase server load, and even affect other websites hosted on the same server.
The good news is that high CPU usage is usually caused by a specific issue that can be identified and optimized.
In this guide, we will explain the most common causes of high CPU usage in WordPress and the steps you can take to fix them.
Before making changes, you should first determine what is actually causing the high CPU usage.
Common causes include:
Heavy or poorly coded plugins
Excessive WordPress cron jobs
High website traffic
Bots and crawlers
Brute-force attacks
WooCommerce background processes
Database queries
XML-RPC requests
Heartbeat API requests
Slow external API calls
Poorly optimized themes
Malware or compromised files
Lack of caching
If you are using cPanel, CloudLinux, or another hosting control panel, check the resource usage section to determine whether the website is consistently reaching its CPU limit.
Do not immediately assume that WordPress itself is the problem. In many cases, a single plugin, cron job, or external request is responsible.
Plugins are one of the most common reasons for high CPU usage.
Some plugins perform expensive database queries, generate reports, scan files, communicate with external APIs, or execute background processes.
Pay particular attention to:
Security plugins
Backup plugins
Statistics plugins
Related-post plugins
Page builders
WooCommerce extensions
Broken or abandoned plugins
Plugins that perform scheduled scans
Plugins that continuously synchronize data with external services
Temporarily disable unnecessary plugins and monitor CPU usage.
If CPU usage drops significantly after disabling a particular plugin, investigate that plugin further or replace it with a more lightweight alternative.
Avoid installing multiple plugins that perform the same function.
For example, running several caching, security, optimization, or database-cleaning plugins simultaneously can actually make performance worse.
Caching is one of the most effective ways to reduce CPU usage.
Without caching, WordPress may need to execute PHP and query the database every time someone visits a page.
With proper caching, frequently requested pages can be served without executing WordPress on every request.
Depending on your server, consider using:
LiteSpeed Cache for LiteSpeed servers
WP Rocket
WP Super Cache
W3 Total Cache
Nginx FastCGI Cache
Server-level caching
If your server uses LiteSpeed, LiteSpeed Cache is generally a strong option because it can provide both page caching and server-level optimization.
Make sure page caching is actually working rather than simply installing the plugin.
A large or poorly optimized database can increase CPU usage, especially on websites with WooCommerce, membership systems, or large amounts of content.
Common sources of database bloat include:
Post revisions
Auto-saved drafts
Spam comments
Trashed posts
Expired transients
WooCommerce sessions
Plugin-generated logs
Large metadata tables
Unused plugin data
Regularly clean unnecessary data and optimize database tables.
However, always create a backup before performing database cleanup.
For large websites, database optimization should be performed carefully rather than repeatedly running aggressive cleanup operations.
The WordPress Heartbeat API allows the browser to communicate with the WordPress server periodically.
It is useful for features such as:
Autosaving posts
Locking posts while someone is editing
Real-time dashboard information
However, on some websites, excessive Heartbeat requests can create unnecessary PHP and database activity.
You can reduce the frequency of Heartbeat requests or disable them in areas where they are not required.
Be careful with completely disabling Heartbeat because some WordPress features and plugins depend on it.
A better approach is usually to control its frequency.
WordPress uses WP-Cron to execute scheduled tasks such as:
Publishing scheduled posts
Sending emails
Processing WooCommerce tasks
Cleaning temporary data
Running plugin jobs
Performing automated maintenance
On a busy website, WP-Cron can become a significant source of CPU usage.
By default, WordPress may trigger WP-Cron during normal page requests.
For high-traffic websites, it is often better to disable the default WP-Cron trigger and run it using a real server cron job.
For example:
define('DISABLE_WP_CRON', true);
Then configure a system cron job to execute WordPress cron periodically.
A common setup is to run it every 5 minutes, although the correct frequency depends on the website's requirements.
This approach gives you much better control over scheduled WordPress tasks.
WooCommerce websites can consume considerably more CPU than normal WordPress websites.
WooCommerce may generate background tasks related to:
Order processing
Scheduled actions
Emails
Webhooks
Product synchronization
Subscription processing
Stock updates
Analytics
Customer sessions
Check WooCommerce → Status → Scheduled Actions and look for large numbers of pending, failed, or repeatedly executed actions.
If thousands of scheduled actions are waiting or failing repeatedly, investigate the responsible plugin or task.
Do not simply delete scheduled actions without understanding what created them.
Sometimes the website is not receiving legitimate visitors—the majority of requests may come from bots.
Search engine crawlers, vulnerability scanners, aggressive bots, and malicious traffic can generate thousands of requests.
Check your:
Access logs
Web server logs
Cloudflare analytics
Security plugin logs
cPanel statistics
Look for IP addresses or user agents generating unusually high numbers of requests.
If necessary, use:
Cloudflare
Web Application Firewall (WAF)
Rate limiting
Server firewall rules
Bot protection
Fail2Ban
ModSecurity
Blocking or rate-limiting abusive traffic can dramatically reduce CPU usage.
XML-RPC is a WordPress feature used by certain applications and integrations.
If your website does not require XML-RPC, disabling it can reduce unnecessary requests and help prevent certain types of abuse.
However, do not disable XML-RPC blindly if your website depends on:
Jetpack
Remote publishing
Specific mobile applications
Third-party integrations
Always verify whether your website actually needs it first.
admin-ajax.php is frequently involved in high CPU usage.
Plugins can repeatedly call this endpoint for:
Live search
Filtering
Analytics
Notifications
Shopping carts
Forms
Dynamic content
Background processes
If server logs show a large number of requests to:
/wp-admin/admin-ajax.php
identify which plugin or feature is generating those requests.
Reducing unnecessary AJAX requests can significantly improve server performance.
PHP OPcache stores compiled PHP scripts in memory so PHP does not have to compile the same files repeatedly.
Enabling OPcache can reduce PHP processing overhead and improve WordPress performance.
Make sure your server's PHP configuration has OPcache properly enabled and configured.
For high-traffic WordPress websites, OPcache should generally be considered a standard performance optimization.
Running an outdated PHP version can result in poor performance, security problems, and compatibility issues.
Use a modern PHP version supported by your WordPress installation, theme, and plugins.
Before upgrading PHP:
Create a backup.
Check plugin compatibility.
Check theme compatibility.
Test the website.
Monitor errors after upgrading.
Do not upgrade production websites blindly.
Large images do not necessarily cause high CPU usage directly, but they can significantly increase bandwidth consumption and page load time.
Optimize:
JPEG images
PNG images
WebP images
AVIF images
CSS files
JavaScript files
Fonts
Use lazy loading for images where appropriate.
A CDN can also reduce the amount of static content that your origin server needs to deliver.
A CDN can serve static resources from locations closer to your visitors.
This reduces the workload on the origin server for files such as:
Images
CSS
JavaScript
Fonts
Videos and other static assets
Cloudflare is a popular option for WordPress websites.
A CDN does not automatically fix CPU problems caused by PHP or database queries, but it can significantly reduce unnecessary origin requests.
Unexpected CPU usage can sometimes be caused by malware.
A compromised WordPress website may be used for:
Spam
Cryptocurrency mining
Malicious redirects
Brute-force attacks
Bot activity
Sending unauthorized requests
Running malicious PHP scripts
If CPU usage suddenly increases without any change in traffic, investigate the website for malware.
Review:
Recently modified files
Unknown PHP files
Suspicious plugins
Unknown WordPress users
Server access logs
Cron jobs
WordPress core integrity
Security tools such as Imunify360, Wordfence, or server-level malware scanners can help identify suspicious activity.
Simply deactivating an unnecessary plugin is not always enough.
If you no longer need a plugin or theme, remove it completely.
Unused software can:
Increase security risks
Add unnecessary database data
Create background tasks
Cause compatibility problems
Increase maintenance overhead
Keep the WordPress installation as clean as possible.
More optimization does not always mean better performance.
For example, running several plugins for:
Page caching
Database optimization
Image optimization
JavaScript optimization
CSS optimization
can cause conflicts and additional processing.
Choose a properly configured optimization stack instead of installing every performance plugin you find.
A poorly coded theme can generate excessive database queries and unnecessary PHP processing.
Premium does not automatically mean optimized.
If the website is using a heavy theme or page builder, check:
Number of database queries
JavaScript files
CSS files
External API calls
Unused assets
Dynamic widgets
AJAX requests
For high-traffic websites, a lightweight theme can make a noticeable difference.
Some WordPress plugins communicate with external services.
Examples include:
Payment gateways
Shipping APIs
SMS gateways
Email services
Currency APIs
Social media APIs
Product synchronization systems
If an external API is slow or unavailable, PHP processes may remain busy while waiting for responses.
Check your server logs and plugin configuration if CPU usage appears to increase whenever a particular integration is active.
If you manage multiple WordPress websites on the same server, the problem may not be limited to one website.
Check:
CPU usage
RAM usage
PHP-FPM processes
MySQL/MariaDB usage
I/O usage
Entry processes
Concurrent connections
Apache/LiteSpeed workers
Load average
For CloudLinux servers, check the resource usage of individual cPanel accounts.
This helps identify which account is actually consuming the server's resources.
For a typical WordPress website, start with the following:
Keep WordPress updated
Keep plugins and themes updated
Remove unused plugins
Remove unused themes
Enable PHP OPcache
Use a supported PHP version
Enable page caching
Optimize images
Use a CDN
Identify heavy plugins
Optimize WP-Cron
Control Heartbeat API
Check admin-ajax.php
Review WooCommerce Scheduled Actions
Optimize database queries
Block abusive bots
Review server access logs
Check for malware
Use LiteSpeed where appropriate
Configure LiteSpeed Cache correctly
Use Redis/Object Cache where beneficial
Enable PHP OPcache
Tune PHP-FPM
Monitor MySQL/MariaDB
Use Cloudflare or another CDN/WAF
Monitor per-account resource usage
Do not try to fix high CPU usage by simply increasing server resources.
Adding more CPU or RAM may temporarily hide the problem, but it does not necessarily fix the underlying cause.
For example, if a plugin is generating thousands of database queries every minute, upgrading from 4 CPU cores to 16 CPU cores may only delay the problem.
The correct approach is:
Measure → Identify → Optimize → Monitor
First find what is consuming CPU. Then fix the specific cause.
High CPU usage on WordPress is usually a symptom rather than the actual problem.
The most common causes are poorly optimized plugins, excessive cron jobs, database activity, aggressive bots, WooCommerce background tasks, AJAX requests, caching problems, and malware.
Instead of installing multiple optimization plugins or immediately upgrading your hosting plan, investigate the source of the CPU usage first.
With proper caching, database optimization, cron management, bot protection, lightweight plugins, and regular monitoring, most WordPress websites can achieve significantly better performance while using fewer server resources.
Author By
Mobarok Hussain
Mobarok Hussain is a Bangladeshi entrepreneur and technology professional best known publicly as the Chairman & Founder of Ummah Host BD, a Bangladesh-based web-hosting and infrastructure company. Ummah Host BD's own website lists him in that role and dates the company's leadership history to 2024.
06 Sep, 2026
We usually reply within seconds.
Support team online
Sales & technical support