Let’s get this out of the way.
Servers are controlled by your hosting… if they don’t use PHP 7+, HTTP/2 servers, and your plan doesn’t come with enough server resources (#1 factor in the WordPress optimization guide) to support your website/plugin resource consumption, you’ll have slow response times.
This usually happens with EIG brands (Bluehost, HostGator, iPage, Site5) since they’re infamous for packing too many people on the same server. Join the WordPress Hosting and WordPress Speed Up Facebook Group and you’ll see plenty of posts about EIG (I listed some below). If you have high response times on EIG, Godaddy, or a low quality host, that’s the issue.
I personally use SiteGround who Yoast uses as well. Not only are my server response times well under 200ms, but my GTmetrix report is pretty much unbeatable. They’re recommended by WordPress, do free migrations, and their semi-dedicated GoGeek plan comes with 4x more server resources than shared hosting (the plan I use). They were also #1 in 20+ Facebook polls.
There are others ways to reduce server response times which I’ll cover in this tutorial: finding high CPU plugins using the GTmetrix Waterfall tab, offloading resources to Cloudflare, configuring a cache plugin (eg. WP Rocket), and fixing items in GTmetrix since this improves load times while also reducing server response times. I will show you exactly how to do these.
*Google PageSpeed Insights is good for measuring response times but is pretty useless otherwise – it doesn’t even measure load times, and there many articles supporting this.
1. Find And Eliminate High CPU Plugins
Use GTmetrix To Find Your Slowest Plugins
GTmetrix shows you which plugins are consuming the most resources. They usually appear multiple times in your Page Speed, YSlow, and Waterfall report (I recommend the Waterfall):
Recommended Lightweight Plugins
- Soliloquy (Slider)
- Meta Slider (Slider)
- Envira Gallery (Gallery)
- FooGallery (Gallery)
- Sassy Social Share (Social Sharing)
- DVK Social Sharing (Social Sharing)
Other Plugin Tips
- Deactivate AND delete unused plugins
- Combine plugins with duplicate functionality
- Turn of specific plugin settings that consume CPU (these are typically settings that activate ongoing scans, collect data, and Wordfence’s live traffic report)
2. Ditch EIG Hosting
The same company (EIG) owns Bluehost, HostGator, iPage, Site5, Unified Layer, and over 60 different hosting companies. They are known for cutting costs by packing too many people on the same server (stressing it out) and have horrible reviews because of it. Many websites hosted by EIG have high response times, and you should switch hosts if you’re using them.
Read this about EIG:
When choosing any hosting plan (not just SiteGround’s) make sure your plan has enough server resources to accommodate your website/plugins. This is SiteGround’s feature page and you can scroll down to the “we allocate the resources you need” section, then hover over the “server” tab to see how many connections, CPU seconds, Inodes, and other geeky (yet important) speed features come with each plan. They also list their speed technology which uses PHP 7.3, NGINX, HTTP/2 servers, and Cloudflare – all of which can improve response times. Not every host uses this technology (do your research on Google/Facebook Groups).
3. Upgrade Your PHP Version
Many WordPress sites still run PHP 5 even though PHP 7.2+ is much faster. That’s because hosting companies won’t automatically upgrade your PHP version (due to potential compatibility issues, which you can use the PHP Compatibility Checker plugin to check for).
How To Check Which PHP Version You’re Running
Install the Display PHP Version plugin to check which version of PHP you’re running. You should at least be running PHP 7 (not PHP 5). If you’re using an outdated version, contact your hosting (or Google instructions) to upgrade. Sometimes you can easily do this in your cPanel. If using SiteGround, you can use their SG Optimizer plugin to upgrade to the latest PHP 7+.
Yoast also reminds you to upgrade…
Upgrade to PHP 7+ in your cPanel, then check your website for errors…
4. Check If You’re Using HTTP/2
The HTTP/2 test checks if your hosting is using the latest version of HTTP. Some hosts don’t support HTTP/2, but they should, and you will need to contact them and request an upgrade.
5. Configure A Cache Plugin
With most other cache plugins, you would need to install about 6 extra plugins to get these features, when WP Rocket has them all built-in, reducing the number of plugins on your site. If you’re like me, you only want to use 1 plugin, otherwise you will need to research which features your cache plugins comes with, then install these plugins if it doesn’t support them.
- 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)
6. Use Cloudflare
Here’s what WordPress says…
Here’s the bandwidth you can save with Cloudflare…
Most hosts have an option to enable Cloudflare in their cPanel…
You can also setup Cloudflare using most cache plugins (below is for WP Rocket), but WP Fastest Cache and W3 Total Cache also have options for Cloudflare + CDN integration…
More CDNs = More Data Centers = Less Bandwidth Consumption
StackPath also has their own 30+ data centers which offloads even more resources. Cloudflare is enough for most websites, but I would use StackPath for mid to high traffic sites, and you can use KeyCDN’s speed test to see how fast your site loads in different locations. To activate Stackpath or another CDN, use WP Rocket’s CDN tab, or the CDN Enabler plugin.
7. Configure WP Disable
WP Disable lets you disable unnecessary settings in WordPress that consume CPU and slow down your site. It also has options for heartbeat control (if you remember the heartbeat control plugin, you can delete it and use this) and other options that reduce response times.
Tips On Using WP Disable
- The more yellow settings, the better
- You can also offload Google Analytics tracking (item shown in GTmetrix)
- Optimizing fonts can greatly improve load times
- Schedule spam deletion
- Disable emojis, Google Maps, and Gravatars if not needed
- Pingbacks and trackbacks aren’t usually worth the extra resources
- Set post revisions to 3-10 so you have backups, but you don’t need hundreds
They also have an option to offload Google Analytics (an item in GTmetrix)…
8. Clean Your Database
If using WP Rocket, run (and schedule) this in the database settings…
If not using WP Rocket, use the free WP-Optimize plugin…
9. Optimize Images
We’ll use GTmetrix for this. Run your site through GTmetrix and in your report you’ll see images can be optimized 3 ways. GTmetrix only shows unoptimized images for a single page so start by optimizing images that appear on multiple pages (logo, sidebar and footer images), then run your most important pages through GTmetrix and fix individual images on those too.
There are 3 ways to optimize images in GTmetrix:
- Serve scaled images – resize large images to be smaller
- Specify image dimensions – specify a width/height in the image’s HTML or CSS
- Optimize Images – losslessly compress images using Imagify
Serve Scaled Images – GTmetrix tells you which images are too large and the dimensions they need to be resized to. Find the image, crop or resize it, upload it to WordPress, then replace the old image with the new one. Follow your “image containers” and create a cheat sheet (below). You can manually check for large images by right clicking an image → copy image address then go to that URL where you should see if it’s too large. Never use the drag to resize feature in the visual editor since this only resizes the displayed image (not the actual image).
Sample cheat sheet:
- Logo: 150(w) x 37(h)
- Sliders: 1950(w) x 550(h)
- Sidebar Widgets: 319(w)
- Blog content body: 600(w)
- Featured images: 200(w) x 200(h)
- Carousel images: 225(h)
Specify Image Dimensions – refer to your GTmetrix report and expand these items to see which images need this. Locate each one in WordPress, then specify the dimensions (width/height) which GTmetrix will tell you. The visual editor takes cares of this automatically so you usually have to do this with images that are in widgets, page builders, and other places.
Optimize Images – losslessly compress images using Imagify or Kraken (both are free until you reach the monthly limit). While there are other completely free plugins that offer unlimited compressions, do NOT use these since they have bugs, won’t work, or will break your images.
- Install the Imagify Plugin
- You will be prompted with instructions
- Sign up for Imagify and enter your API key
- Set your compression level (normal, aggressive, ultra)… I use aggressive
- Imagif’em all (bulk compresses all images on your site)
- Once your limit is up, buy a plan or wait next month to reset your limit
When you’re done, run your pages through GTmetrix and make sure all 3 items are 100%.
10. Avoid External Requests
If you’re pulling information from external websites (like how Google AdSense does), this can completely ruin your scores in GTmetrix, Pingdom, and Google PageSpeed Insights. That’s because you are relying on external servers to populate data on YOUR website – not good!
11. Why I Use SiteGround
SiteGround is used by Yoast, myself, and recommended by WordPress. They are #1 in nearly every Facebook poll and give most people significant load time improvements especially if they were using poorly rated hosts: Godaddy, Bluehost, HostGator, InMotion, Dreamhost, EIG.
I use their semi-dedicated GoGeek plan which comes with 4x more server resources than shared hosting. Click through my pages to see how fast they load, check out my GTmetrix report, or see people who migrated and posted new load times. They also do free migrations.
DigitalOcean on Cloudways and Kinsta are also good and start at $10/month and $30/month. Cloudways is more for developers who don’t need cPanel, email hosting, or the support you get with SiteGround. Kinsta is basically what WP Engine used to be (pricey, but awesome). My entire blog is basically dedicated to helping people make their website load faster. I refuse to recommend $2/month hosting since it’s most people’s biggest regret when running a website.
SiteGround is recommended by WordPress:
SiteGround has 3 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 their features page:
People usually migrate because their speed technology can cut load times in half:
If you have any questions about your response times or site speed in general, ask me your question in the comments and I’ll help you out.