Getting CPU overages or 503 errors on Bluehost?
The easiest way to reduce CPU usage on Bluehost is to activate server level caching, offload bandwidth to Cloudflare, and use PHP 8.0. Cloudflare’s bot fight mode and hotlink protection can also reduce CPU. Finally, disable WordPress heartbeat API and remove high CPU plugins.
Upgrading plans is the last thing you should do. It’s well-known in Facebook groups like WP Speed Matters that Bluehost is slow, crams too many websites on their servers, and throttles bandwidth. If you use this guide and still have issues, try Cloudways Vultr HF or NameHero’s LiteSpeed which are much faster than Bluehost and can instantly fix CPU issues with better core web vitals. I use Vultr HF and you can check my GTmetrix report or click through my posts.
- Check AWStats and error logs
- Enable Bluehost’s server caching
- Use PHP 8.0 (and keep it updated)
- Offload bandwidth to Cloudflare
- Activate hotlink protection
- Replace wp-cron with a real cron job
- Remove reporting, backup, security plugins
- Consider a premium cache plugin
- Disable WordPress heartbeat
- Clean your database with WP-Optimize
- Disable object cache if using W3 Total Cache
- Avoid slow page builders on cheap shared Hosting
- Try not minifying or combining CSS/JS
- Keep web and email hosting separate
- Check for a slow TTFB
- Move To LiteSpeed or cloud hosting
1. Check AWStats And Error Logs
Login to your Bluehost account and check your AWStats and error logs.
AWStats can help you identify the source of high CPU by showing how much bandwidth websites are using as well as bots, images, and other elements on your Bluehost account.
Error logs are also found in Bluehost which show the last 300 Apache errors. Learn what kind of error it is and fix it. You may need a developer for this, but you can point them in the right place.
2. Enable Bluehost’s Server Caching
Bluehost’s server caching can be activated in your account or by using Bluehost’s plugin.
This enables page caching which lightens the load on your server. Caching at a server level is also faster than file-based caching done by most cache plugins, so you should definitely use it.
3. Use PHP 8.0 (And Keep It Updated)
Bluehost supports PHP 8.1 at the time of writing this, but PHP 8.0 is more stable. You can upgrade PHP versions in your Bluehost account under MultiPHP Manager. Check here every few months or so to see if Bluehost released a new version. Check for errors after upgrading.
4. Offload Bandwidth To Cloudflare
Cloudflare’s free CDN reduces CPU usage by offloading resources to their 250+ data centers. You can activate Cloudflare directly in your Bluehost account, but you’re better off setting up Cloudflare manually by signing up on the Cloudflare website and changing nameservers. This gives you access to Cloudflare’s full dashboard instead of the (very basic) settings in Bluehost.
Once you’ve added your website to Cloudflare and changed nameservers, you will have access to their full dashboard which has a lot of settings. Below are some of the settings I would tweak:
- Enable bot fight mode to block spammy bots and reduce CPU.
- Enable HTTP/3, Brotli, early hints, and consider using their APO.
- Minify HTML/CSS/JS in Cloudflare and disable these in your cache plugin.
- Take advantage of page rules, firewall rules, and other Cloudflare features.
5. Activate Hotlink Protection
Hotlink protection prevents other people from embedding your images on their website. Instead of downloading images and uploading them to their own website, they just copy/paste the image. Since the image is hosted on your server, it also uses CPU from your server. Even if you don’t have high res images, there are many content thieves out there and it’s best to be safe.
Hotlink protection can be activated in your Bluehost control panel or Cloudflare has this too.
6. Replace WP-Cron With A Real Cron Job
Every page view triggers the WordPress cron job which increases CPU.
Bluehost’s cPanel lets you setup, remove, or edit cron jobs. Open your wp-config.php file in your main WP folder. Then add this code before the line: /* That’s all, stop editing! Happy blogging. */
define('DISABLE_WP_CRON', true);
Now in the Bluehost cPanel, find the cron job section. Add a new cron job using the following code and replace https://yourwebsite.com with your site. Set the cron job to run 2x per hour.
wget -q -O - https://yourwebsite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
7. Remove Reporting, Backup, Security Plugins
These plugins should be avoided because they run high CPU background tasks. Some people have success with Wordfence (you can try it), but it usually does more harm than good. Stat plugins have to collect stats and if you need backups, use a lightweight plugin like UpdraftPlus.
There are 2 types of slow plugins: ones that add extra CSS/JS which make your frontend website slow. And plugins that are running in the background which increase CPU usage.
Two tools I recommend are Query Monitor and the WP Hive Chrome Extension. Query Monitor lets view any page on your site, then go to Queries > Queries By Component to see your slowest loading plugins. WP Hive lets you browse the WordPress plugin repository and see whether a plugin impacts PageSpeed + memory usage before installing it. I have already checked WP Hive and other resources, so make sure you check out my full list of slow plugins.
Plugin | Category | Memory Impact | PageSpeed Impact |
---|---|---|---|
Analytify | Analytics | X | ✓ |
Backup Buddy | Backup | X | ✓ |
iThemes Security | Security | X | ✓ |
Broken Link Checker | SEO | X | ✓ |
Jetpack | Security | X | X |
Query Monitor | Analytics | X | ✓ |
NextGEN Gallery | Gallery | X | X |
Site Kit by Google | Analytics | X | ✓ |
Wordfence | Security | X | ✓ |
wpDiscuz | Comments | X | X |
WPML | Translate | X | X |
Yoast SEO | SEO | X | ✓ |
8. Consider A Premium Cache Plugin
All 3 factors impact CPU usage:
- If you’re using a cache plugin
- Which cache plugin you’re using
- Whether you configured it properly
The fastest cache plugin is LiteSpeed Cache which uses server-side caching, but you’ll need to use a LiteSpeed host to use it (I recommend NameHero). I was using WP Rocket but made the switch to FlyingPress (by Gijo Varghese from the WP Speed Matters Facebook Group) and immediately noticed my site was faster when clicking through posts. So either use FlyingPress or WP Rocket – both are paid plugins. Free cache plugins like W3TC or WPFC don’t do a good job at addressing core web vitals which means you’d need to install several extra speed plugins. I have guides on LiteSpeed Cache, WP Rocket, and most free cache plugins, not FlyingPress yet.
Some cache plugin settings also impact CPU usage (look through their documentation).
- Preload crawl interval (try increasing it)
- Caching logged-in uses (usually turn off)
- Using separate cache for mobile (usually turn off)
- Guest Mode setting in LiteSpeed Cache (on if your server can handle it)
9. Disable WordPress Heartbeat
The WordPress Heartbeat API allows plugins to send you real-time notifications and also shows when other users are editing a post. This creates an additional request every 15-30 seconds (consuming server resources). Most cache plugins have a setting to disable or limit Heartbeat. You can also do it manually with some code or with the Heartbeat Control plugin.
10. Clean Your Database With WP-Optimize
Even though most cache plugins have an option to clean your database, you should install the WP-Optimize plugin once in a while which lets you go through database tables and remove tables left behind by old plugins. If you installed a plugin and deleted it, it will store settings in your database. Some plugin modules also accumulate quite a bit of database junk (Rank Math modules is one example). So if you don’t use a certain feature in a plugin, disable that module. However, only some plugins are module-based and let you disable certain features in the plugin.
11. Disable Object Cache If Using W3 Total Cache
If you use W3 Total Cache, object cache usually does more harm than good and can slow down the admin. Redis and memcached are great for reducing CPU but aren’t supported on Bluehost.
12. Avoid Slow Page Builders On Cheap Shared Hosting
Shared hosting with Elementor/Divi is a recipe for disaster (same with WooCommerce).
Slow page builders already add extra CSS, JavaScript, and fonts to your site which make it slower. Page builder editors also consume a decent amount of CPU, especially if you install a bunch of extra Divi/Elementor plugins on top of the page builder. I made this mistake and it costs thousands of dollars and weeks of work trying to revert back to a faster alternative (I ended up with Gutenberg but GeneratePress and the Kadence theme are also popular options).
If you must use Elementor/Divi, at least optimize it. Elementor has experimental settings which can improve load times and reduce CPU, and Divi also added their own speed settings. You should also highly consider hard coding your header/footer in CSS so it doesn’t use heavy page builder code. These obviously appear across your entire site and CSS is much more lightweight.
13. Try Not Minifying Or Combining CSS/JS
WP Rocket says:
“Occasionally some of the options on the File Optimization tab, such as Minify/Combine can cause high CPU usage in cases where your site has a lot of CSS or JS files. Try disabling these options and then monitor your CPU usage to see if it helps.”
This can apply to any cache plugin, not just WP Rocket. You’re also better off using your CDN (i.e. Cloudflare) to minify HTML, CSS, and JavaScript files and disabling these settings in your cache plugin. Since the CDN is closer to your end-users, minifying in your CDN is slightly faster.
14. Keep Web And Email Hosting Separate
Emails take up storage, files (inodes), and resources.
That’s why many premium hosts like Cloudways and Kinsta don’t offer email hosting – because it should be separate from your web hosting to begin with. Obviously this is an extra cost since you will need to use a third-party service like Google Workspace (what I’m using), but it can potentially make an improvement especially if you’re exceeding Bluehost’s 250,000 inode limit.
15. Check For A Slow TTFB
If you have a slow server response time (TTFB) in PageSpeed Insights, you can pretty much identify Bluehost as the problem. Google flags your TTFB if it’s over 600ms but under 200ms is ideal. TTFB doesn’t just affect TTFB. It also affects LCP and many other items in core web vitals.
Unfortunately, Bluehost’s TTFB is one of the slowest:
14. Move To LiteSpeed Or Cloud Hosting
Most hosting recommendations are garbage, but it’s the #1 speed factor and you can use KeyCDN to test your global TTFB (which is also 40% of LCP). I suggest joining the WP Speed Matters Facebook Group to get unbiased hosting feedback. The 3 hosts below are solid and either use LiteSpeed servers, Cloudflare Enterprise, cloud hosting, and all 3 use NVMe/Redis. These are much faster than “mainstream hosts” (Bluehost, SiteGround, Hostinger) who use slower SSDs, Apache/Nginx, and no Cloudflare Enterprise or Redis (and if they do, it costs $$$).
The aff links below are how I make a living and I appreciate you using them. Thanks :)
- NameHero – all plans use LiteSpeed which is not only faster than Apache/Nginx, but it can handle 2x the capacity of Apache. This also means you’ll use LiteSpeed Cache + QUIC.cloud CDN (arguably fastest setup on a budget). NameHero has more CPU/RAM than similar LiteSpeed hosts with cPanel + email hosting. I usually recommend the Turbo Cloud plan with 3 cores + 3GB RAM + NVMe for $7.58/mo. The main con is their data centers are only in the US + NL. If these aren’t close to your visitors, make sure to use QUIC.cloud (which has HTML caching) or look into ChemiCloud / Scala. All 3 use LiteSpeed and have at least a 4.7/5 TrustPilot rating.
- Cloudways Vultr High Frequency – while NameHero is shared, Vultr HF is cloud hosting with NVMe and 44 data centers. I moved from SiteGround and load times + hosting costs both cut in half while eliminating CPU issues. People are scared it’s “techie” but launching a server and connecting your domain can literally take 5 minutes (plus they offer a free migration). Redis Object Cache Pro is free and the Cloudflare Enterprise add-on is $5/mo which adds prioritized routing, more PoPs, image optimization, WAF, Argo, and load balancing. Cons are extra costs for email hosting (use Google Workspace), cache plugin (use FlyingPress), and Cloudflare Enterprise doesn’t have full page caching (coming soon). It’s monthly pricing with 3-day trials. Normally starts at $13/mo but here’s a coupon for 30% off 3 months.
- Rocket.net – a step up from Cloudways in terms of speed, support, and easy of use. Unlike Cloudways, their Cloudflare Enterprise is free with full page caching and no configuration needed (the CEO Ben Gabler was previously Chief Product Officer at StackPath, so won’t get a better Cloudflare Enterprise). You get 32 cores + 128GB RAM, NVMe, Redis, and Brotli. There are no PHP worker limits since only about 10% of traffic hits the origin server and they allow 10x more monthly visits than Kinsta. However, a con is the low bandwidth compared to Cloudways. Since hosting/CDNs are a big part of TTFB/LCP, you’re hitting 2 birds with 1 stone. While still small, they’re getting popular and start at $25/mo (yearly) or try them for $1. If you have a larger/WooCommerce site, I suggest having a conversation with Ben.
How do I reduce CPU usage in Bluehost?
The easiest way to reduce CPU usage in Bluehost is to offload resources to Cloudflare’s CDN and disable high CPU background tasks + plugins. Configuring a cache plugin and cleaning your database can also reduce CPU, but Bluehost may still throttling bandwidth.
I hope this was helpful. If you have questions, drop me a comment.
Cheers,
Tom