How To Reduce CPU Usage On Bluehost (Also Known As Bandwidth Limitations / Throttling Which Cause 503 Service Unavailable Errors)

Home » WordPress Hosting » How To Reduce CPU Usage On Bluehost (Also Known As Bandwidth Limitations / Throttling Which Cause 503 Service Unavailable Errors)

Getting CPU overages on Bluehost?

Here are some of the most common solutions. These are based on my own experience having CPU overages, and solutions that worked for people in WordPress Facebook Groups I’m in.

The most commons ways to fix Bluehost CPU overages are: upgrading to PHP 7.2 in the cPanel, activating Cloudflare, eliminating high CPU plugins, and using the Heartbeat Control, WP-Optimize, and Blackhole For Bad Bots plugin. There are a few additional solutions below.

There are 2 options: lower the CPU consumed by your website/plugins (using my guide), or upgrade your plan to include more server resources. But, it’s well-known in the WordPress Hosting Facebook Group that Bluehost is one of the cheapest, lowest quality hosts. They’re owned by EIG, pack too many people on the same server, and are constantly bashed about slow servers, support, and downtimes. Do some research and join that Facebook Group – there are much better options like SiteGround, Cloudways, and Kinsta. I use SiteGround and have 200ms server response times, 100% GTmetrix scores, and .4s load times in Pingdom.

bandwidth-exceeded

 

1. Upgrade To PHP 7.2

Higher PHP versions make your site load much faster, and makes it more secure. Bluehost currently supports PHP 7.2 – which you definitely should be using. Here’s how to upgrade.

Step 1: Use the Display PHP Version plugin to see which PHP version you’re currently on.

Display-PHP

Step 2: Run PHP Compatibility Checker to make sure your plugins are compatible.

PHP-Compatibility-Checker

Step 3: Head to PHP Config section of Bluehost’s cPanel.

Bluehost-PHP-Config

Step 4: Upgrade to a higher PHP version (the higher, the faster):

Bluehost Update PHP Version

Step 5: Check your website for errors (you can always go back to an earlier version).

WordPress PHP Benchmarks

 

2. Activate Cloudflare CDN

Cloudflare is a free CDN which hosts your website files on 200+ data centers, and helps offload resources to those data centers (putting less stress on your own server). It also has lots of other speed/security features, but you should be using a CDN if you have CPU usage issues.

In your Bluehost cPanel, activate Cloudflare:

Bluehost Cloudflare

Bluehost Cloudflare Activation

Cloudflare-Bandwidth

 

3. Find CPU-Hungry Plugins

You probably know plugins are notorious for causing slow load times and consuming resources. If you run your site through GTmetrix and see the same plugin showing multiple times in your report, it’s probably a sign. You can also use the GTmetrix Waterfall tab to see how long each individual element/plugin takes to load. I have an extensive list of high CPU plugins which you should avoid if possible (they are known for consuming server resources).

Slow WordPress Plugin

Query Monitor can also identify slow plugins (but uninstall it when you’re done):

Query Monitor Slow Plugins

 

4. Disable Backup, Statistic, And Scan Plugins

These are by far the most common CPU-hungry plugins. Any plugin that runs constantly will put stress on your server. UpraftPlus has some recommendations, but the bottom line is that if you’re going to be using these types of plugins, you need to make sure your server has enough resources to accommodate them. Otherwise, you will inevitably end up with CPU overages.

UpdraftPlus Backup and Restoration

 

5. Reconsider Your Cache Plugin

All 3 factors impact bandwidth consumption:

  • If you’re using a cache plugin
  • Which cache plugin you’re using
  • Whether you configured it properly

WP Rocket was rated #1 in Facebook polls because it comes with many features most cache plugins don’t. Otherwise, you would need to install about 6 extra plugins. This is why WP Rocket yields better scores + load times in GTmetrix/Pingdom (it has more features, and you only need 1 single plugin to get all these features). If you don’t want to pay for WP Rocket, check out Swift Performance or WP Fastest Cache which are usually the #1 free cache plugins.

  • Database cleanup (built-in to WP Rocket, or use WP-Optimize)
  • Heartbeat control (built-in to WP Rocket, or use Heartbeat Control)
  • Lazy load images/videos (built-in to WP Rocket, or use WP YouTube Lyte)
  • Host Google Analytics locally (built-in to WP Rocket, or use CAOS For Analytics)
  • Host Google Fonts locally (built-in to WP Rocket, or use CAOS For Fonts, or SHGF)
  • Integration with Cloudflare + other CDNs (built-in to WP Rocket, or use CDN Enabler)

2016 best cache plugin poll

2019 cache plugin poll

Swift vs WP Rocket

2016 cache plugin poll

Best cache plugins 2018 poll

wp rocket vs w3 totla cache

 

 

6. Disable Heartbeat API

The WordPress Heartbeat API allows plugins to send you real-time notifications, and shows you when other users are editing a post. This may sound nice, but it also creates an additional request every 15-30 seconds (consuming server resources). Install the Heartbeat Control plugin and disable it completely, or at least limit it to 60 seconds. This will save you resources.

Heartbeat Control

WP Rocket also has an option to disable the heartbeat API:

WP-Rocket-Heartbeat-Control

 

7. Block Spammy Bots

Many websites (mine included) get infested with spam bots that do nothing but crawl your site and consume resources. You can see which bots are hitting your site in real-time using Wordfence’s live traffic report. The easiest solution is to install the Blackhole For Bad Bots plugin. The plugin creates a hidden rule and blocks all spam bots that don’t follow the rule. Googlebot and other good bots are whitelisted, and the spammy ones are blocked. Easy peasy.

Blackhole for Bad Bots

Or, install Wordfence and view your live traffic report which shows all bots hitting your site in real-time. Create a list of all bots that look spammy, then Google their hostnames (provided by Wordfence) to see if other people are reporting them as spam. If yes, add them to your list.

Live-Traffic-Report-Wordfence

Now go to Wordfence’s Blocking Settings and add the spam bots here (you can also do this using Cloudflare Firewall Rules). Be sure to use an asterisk to block all variations of that bot (amazonaws.com is the most common one and was hitting my website about every 3 seconds). I couldn’t believe I was consuming resources on this… for them to do this should be illegal.

Wordfence-Blocking-Rule

 

8. Clean Database With WP-Optimize

Cleaning your database every 1-2 weeks using WP-Optimize prevents junk files from accumulating in your database and slowing it down. Be sure to take a backup before doing this.

WP-Optimize Clean Database

WP Rocket also has an option to clean your database:

WP-Rocket-Database-Settings

 

9. Configure Cloudflare Settings

In your Cloudflare dashboard, head to the Page Rules tab. Create this rule for your WP Uploads area, which saves bandwidth since this area of your site isn’t updated much, and doesn’t need to be cached often. You should also create a page rule to disable Cloudflare performance features in your WordPress Admin area, just like Cloudflare recommends.

WP-Uploads-Page-Rule

WordPress-Admin-Page-Rule

Here are my settings for the speed tab:

Cloudflare-Speed-Tab

And the caching tab:

Cloudflare-Caching-Settings

 

10. Offload More Resources To StackPath CDN

Multiple CDNs = more data centers = faster delivery of your content, and the more resources are offloaded. I use Cloudflare and StackPath who has 31 data centers heavily located in the U.S., which is where most my visitors are. StackPath has a free 30-day trial then is $10/month.

Step 1: Sign up for StackPath.

Step 2: In the dashboard, click the CDN tab, then create a StackPath CDN Site:

StackPath-CDN-Tab

StackPath will walk you through a set of pages:

StackPath-CDN-Domain

StackPath-Server-IP-Address

CDN-URL-StackPath

Step 3: Copy your StackPath CDN URL and paste it into WP Rocket:

WP-Rocket-CDN-Settings

If not using WP Rocket, you can also use CDN Enabler:

CDN-Enabler-Plugin-Settings

Step 4: In StackPath, go to CDN → Cache Settings, then click Purge Everything:

StackPath-Purge-Cache

Step 5: Run your site in GTmetrix and “content delivery network” should be green in YSlow.

CDN GTmetrix YSlow

 

11. Disable Object Cache In W3 Total Cache

If you use W3 Total Cache, the object cache option usually does more harm than good. You will probably notice if you enable this, it will slow down both your website and your admin panel.

W3 Total Cache Object Cache

 

12. Disable Features In WP Rocket

WP Rocket says:

“Occasionally some of the options on the File Optimization tab, such as Remove Query Strings, or 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.”

 

13. Increase Preload Interval In WP Rocket

WP Rocket’s preloading is set to 500ms by default, but this can cause high CPU since it crawls URLs very frequently. Install their Preload Crawl Interval plugin and increase it. You can try 1 or 2 seconds to start, and if it’s still causing high CPU, increase it more (to around 3 seconds).

 

14. Identify The Source In AWStats

AWstats is located in Bluehost’s “Stats” section in the cPanel, and can identify the source of high CPU. It shows how much bandwidth each bot, image, and other elements are consuming. If you see unknown bots are consuming bandwidth, check your Wordfence live traffic report or install the Blackhole For Bad Bots plugin. If you see images are consuming high bandwidth, optimize them to load faster (by resizing them, and losslessly compressing them in ShortPixel).

Robots-Spiders-Bandwidth

Bonus: I also have a tutorial for optimizing images in WordPress including the 3 primary GTmetrix items (serve scaled images, specify image dimensions, and lossless compression).

File-Type-Bandwidth

 

15. Check Server Response Times

Slow server response times aren’t good for bandwidth either. You can check this in Bitcatcha or Google PageSpeed Insights. Google says you server response time should be under 200ms, but this is unrealistic if you’re on Bluehost especially the $6.99/month shared plan. When they say you get what you pay for, this is directly reflected in your website’s server response times.

Bitcatcha Server Speed Report

Reduce Server Response Time

Unfortunately, Bluehost’s servers are not as fast:

Bluehost slow server response time

Slow Bluehost Server Response Time

Bluehost Server Response Time

Bluehost Crap Server Response Time

Bluehost Server Response Times

Bluehost-Managed-WordPress-Hosting

 

16. Switch To Faster Hosting

I use SiteGround and have 200ms response times with 100% GTmetrix scores and .4s Pingdom load times. Do a hosting check, run your own tests, or click through my fast loading pages. They were rated the #1 host in 26 Facebook polls and are worlds better than EIG (Bluehost, HostGator), GoDaddy, and other hosts who pack too many people on the same server. There have been plenty of people who migrated and posted results on Facebook and Twitter. Tweet after tweet, post after post, poll after poll after poll, faster hosting will fix slow response times. They’re recommended by WordPress, do free migrations, and I use their semi-dedicated plan.

OMM-On-SiteGround

Bitcatcha Server Speed Report

2019-GTmetrix-Report

2019-Pingdom-Report

People usually migrate because their speed technology can improve server response times by multiple seconds. Here are a few people who migrated to SiteGround and posted their results.

Switching To SiteGround

SiteGround Load Time Migration

Bluehost to SiteGround GTmetrix

HostGator To SiteGround

SiteGround GTmetrix

SiteGround Google PageSpeed Insights

100 Perfect Score On SiteGround

SiteGround Genesis

Speed Delivered By SiteGround

SiteGround GTmetrix Report

Reduced Load Times With SiteGround

New SiteGround Response Times

HostGator To SiteGround Migration

SiteGround Response Times On Joomla

Switched To SiteGround Hosting

SiteGround Rocket Imagify Combo

Joomla GTmetrix On SiteGround

SiteGround PageSpeed Insights

SiteGround On Joomla

SiteGround Reduced Load Times

SiteGround Speedy Hosting

New Pingdom Results On SiteGround

New SiteGround Response Time

SiteGround Response Time Improvement

SiteGround has 3 plans:

SiteGround-Plans

Higher plans include more server resources (#1 factor in the WordPress optimization guide). Here’s the full comparison chart, but GrowBig gives you about 2x more server resources than StartUp, and GoGeek is semi-dedicated hosting which gives you even more. GrowBig and up comes with a free migration, staging, advanced caching, and ability to host multiple websites. GoGeek comes with priority support. Their cloud hosting is quite the price jump at $80/month.

You can see this on the features page

SiteGround-Server-Resources-Comparison

I use SiteGround because:

  1. My GTmetrixPingdom reports speak for themselves
  2. My pages load instantly (click through them if you want)
  3. Fast speed technology (PHP 7.3, NGINX, SG Optimizer, Cloudflare)
  4. Recommended by Yoast, WordPress, Ivica from WordPress Speed Up
  5. Free Let’s Encrypt SSL, easy to use cPanel, and features for eCommerce
  6. WordPress support is unbeatable even without GoGeek’s priority support
  7. GrowBig comes with staging, more storage, and more server resources (scroll down to “we allocate the resources you need” and hover over the server tab)
  8. GoGeek comes with even more server resources, storage, priority support
  9. Free migrations, migrator plugin, and a 30-day money back guarantee
  10. Plenty of praise on Reddit, Facebook conversations, Twitter, TrustPilot
  11. Tons of praise on Facebook: #1, #2, #3, #4, #5, #6, #7#8, #9, #10#11
  12. Many people already migrated and posted results on Twitter: #1, #2, #3, #4, #5, #6#7, #8, #9, #10, #11, #12, #13, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23, #24, #25, #26, #27, #28, #29, #30, #31, #32, #33, #34, #35, #36, #37

Affiliate Disclaimer – if you sign up for SiteGround using my affiliate link I will donate a good chunk at no cost to you. Each year I donate $3,000 to GoFundMe campaigns (2018 was to feed the hungry in Denver, 2017 was to Red Cross at Hurricane Harvey). Your support helps and I genuinely appreciate it. Either way, I would avoid Bluehost – join some Facebook groups and see the conversations, polls, tweets, and people who migrated from Bluehost to SiteGround. I refuse to recommend EIG/Bluehost’s awful hosting. Do your research, see who Yoast is using, and results of people who migrated.

I hope this was helpful. If you have questions, drop me a comment.

Cheers,
Tom

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments