Slow WordPress dashboard?
It could also be your server – run your site through PageSpeed Insights to see if reduce server response time is in your report. Google recommends <200ms. If it’s not, consider SiteGround’s hosting who is used by Yoast, recommended by WordPress, and was #1 in 20+ Facebook polls. I’m on their semi-dedicated plan and have 100% GTmetrix scores with 200ms response times.
This tutorial shows you how to speed up both your website and WordPress admin panel. It should also improve load times/grades in GTmetrix/Pingdom. My WordPress speed guide has additional tips and 400 comments like “My page speed score on gtmetrix went from 69 to 93.”
1. Avoid High CPU Plugins
Thank you Ivica from the WordPress Speed Up Facebook Group for contributing to this list (and ps. that’s an amazingly helpful group if you need tips on WordPress speed). The most common slow plugins are related post, statistic, sitemap, chat, calendar, page builders, and plugins that run ongoing scans/processes – or appear multiple times in your GTmetrix report.
Use Query Monitor to find your slowest loading plugins:
Or use GTmetrix Waterfall:
Alternative Lightweight Plugins:
Backup – UpdraftPlus.
Analytics – Google Analytics and Search Console should be plenty, or Clicky.
Page Builders – WordPress Page Builder by MotoPress, but no page builder runs faster than the native WordPress Editor. Combine this with the Duplicator plugin and you shouldn’t need a page builder (including page builders built-in to WordPress themes). Unless your team absolutely refuses to learn a little HTML (the easiest coding language), avoid page builders.
Comments – Disqus Conditional Load.
StudioPress Plugins – lightweight plugins for the Genesis Framework.
2. Disable “Object Cache” In W3 Total Cache
If you’re using W3 Total Cache go to the General Settings and disable object cache. See my W3 Total Cache settings to make sure everything is configured properly since Cloudflare and StackPath may also be the culprit – plus most people don’t have the ‘performance tabs’ setup correctly. That tutorial has been used by over 150,000 people with like… a million comments.
However W3 Total Cache has bugs and the plugin developer doesn’t go a great job updating it – so do yourself a favor and switch to WP Rocket if you have $49 (they’re almost always rated the #1 cache plugin in Facebook polls) or WP Fastest Cache which is free and usually rated #2.
3. Upgrade To PHP 7+
Upgrading PHP versions can easily make your site 2-3x faster…
Even though most hosts support it…
Your hosting company will NOT automatically upgrade you to the latest version of PHP since your theme/plugins may not be compatible (and they don’t want to break your site). This means you need to do it yourself or request help from your host). It also means if you’ve been on the same host for many years and have never done it, you’re probably still running PHP 5.
Step 1: Install the Display PHP Version plugin to check your current version.
Step 2: Run the PHP Compatibility Checker to make sure your theme/plugins are compatible.
Step 3: Upgrade to PHP 7+ by looking for a “PHP Version Manager” in your hosting account…
4. Check Server Response Times
You can also check TTFB in the GTmetrix Timings tab…
5. Avoid 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 I would avoid using these companies at all costs.
Read this about EIG:
6. Switch To SiteGround
Hosting is the #1 factor of site speed and affects both your website and admin panel.
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.
They’re 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:
7. Optimize Cache Plugin Settings
WP Rocket is $49 but was rated the #1 cache plugin in multiple Facebook polls (using my aff link is appreciated). It comes with many speed features most cache plugins don’t (see below) which makes your site load even faster. It’s always updated with new features and is one of the easiest cache plugins to configure (see my tutorial) with extensive documentation. Support is great, unlike most cache plugins, and it doesn’t have bugs which is what most complaints about W3TC are about. Caching is a key factor in the WordPress optimization guide and it’s worth having a fast, reliable, easy cache plugin that will speed up both your website and admin panel.
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)
8. Schedule Database Cleanups
This deletes your spam folder, trash folder, transients, and the potentially thousands of post revisions stored in your database. You don’t need these, so delete them and schedule a cleanup to run every week (or at least every month) which can be scheduled using one of these plugins.
If using WP Rocket, do this in the database settings:
If not using WP Rocket, use the WP-Optimize plugin:
9. Offload Resources To Cloudflare
Cloudflare and StackPath are CDNs which host your website files on multiple data centers around the world (I use both since more data centers = faster content delivery). This delivers content from the closest data center to your visitor while offloading resources (reducing bandwidth consumption). This is a recommendation in the WordPress optimization guide.
Cloudflare helps offload bandwidth consumption:
I have a full tutorial on how to configure Cloudflare’s settings but will include parts in this tutorial that are related to reducing bandwidth and making your WordPress admin load faster.
10. Offload Resources To StackPath
StackPath is another CDN which offloads even more bandwidth to their 31 data centers. They are heavily located in the United States which is where most of my visitors are from, so it makes sense for me. They are $10/month with a free 30-day trial if you want to try them out.
StackPath vs. Cloudflare – Cloudflare is free and has 150+ data centers. It helps with both speed/security but they don’t provide support for the free plan. StackPath has 31 data centers and is $10/month with a free 30 day trial. One of the most valuable things about StackPath is their support team who helped configure it… they got my GTmetrix YSlow score to 100%.
Step 1: Sign up for StackPath’s free 30-day trial.
Step 2: In the dashboard, click the CDN tab, then create a StackPath CDN Site:
Step 3: Copy StackPath’s CDN URL and paste it into your cache plugin (or use CDN Enabler):
Step 4: In StackPath go to CDN → Cache Settings, then click Purge Everything…
Step 5: Run your site in GTmetrix and “content delivery network” should be green in YSlow.
11. Add Cloudflare Page Rules
Go to your page rules settings…
Page Rule 1: Optimizing And Protecting WP Admin – you usually don’t want your cache your admin section, performance features should be disabled (like Cloudflare recommends), and set the security level to high. The asterisk makes the rule apply to all URLs containing wp-admin.
Page Rule 2: Prevent Cloudflare From Frequently Refreshing The Cache On Stale Pages – since items in your WordPress uploads file do not change frequently, you don’t have to cache them as much, which saves bandwidth since Cloudflare won’t have to go back to your server to pull a fresh copy of the cache as much. Learn what sections of your website aren’t updated frequently, then create page rules that increase the Browser Cache TTL and Edge Cache TTL.
Page Rule 3: Aggressively Cache Everything – aggressively caches your website.
12. Configure Cloudflare’s Speed Settings
Go to your Cloudflare speed settings. Minifying files, optimizing images, brotli (similar to gzip compression), and SG Railgun + Rocket Loader should make your website and admin panel load faster, as they also put less stress on your server. If minify + gzip compression are enabled in your cache plugin, you should disable them in Cloudflare (avoid duplicate functionality).
You should also enable hotlink protection in Cloudflare’s scrape shield settings which prevents people from pasting YOUR images on THEIR website when the image is still hosted by you, which means even though the image is on their site, you are consuming the bandwidth.
13. Configure WP Disable
WP Disable and Clearfy let you disable 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 now delete it and just use this)… as well as a few other options that can speed up your admin panel/website. Go through the settings and select the ones you want.
Tips On WP Disable
- Disable EVERYTHING you don’t use
- Scheduling spam deletion is a good idea
- Emojis, Google Maps, and Gravatars take a long time to load
- Disable everything in the “tags” tab since they’re all unnecessary
- Pingbacks and trackbacks aren’t usually worth the extra resources
- Set post revisions to 3-5 so you have backups, but you don’t need hundreds
- Host your Google Analytics tracking code locally in the right side of settings
14. Block Bad Bots (With Wordfence)
Within minutes of configuring Wordfence’s blocking and rate limiting, I was able to block over 1,000 spammy bot requests within the first 5 minutes of configuring it (and I’m super happy about it). I will show you how to check what bots are hitting your site, and how to block them.
Step 1: Install Wordfence.
Step 2: View your live traffic report (under Wordfence’s Tools settings) which shows you all bots hitting your site in real-time. Googlebot is obviously OK, but when I did this, I saw compute.amazonaws.com making a ridiculous amount of requests every couple seconds. I Googled it and sure enough, this was a bot known for sucking up bandwidth. View your report for a minute or two and see if bots with sketchy names are constantly hitting your site. If you have doubts, Google their hostnames and see if other people are having issues with that bot.
Step 3: Go to Wordfence’s Blocking settings and add the spam bots you wish to block. Asterisks serve as wildcards, so if I block *amazonaws.com* it means any hostnames containing amazonaws.com (whether it has characters before or after it) would be blocked. I have saved thousands of requests/bandwidth just by blocking these two spammy hostnames:
Step 4: Go to your Blocking log and enjoy watching those spam bots get blocked.
Step 5: Configure Wordfence’s rating limiting. This limits/blocks crawlers (and humans) from making excessive requests, blocks fake Google crawlers, and improves security on 404 pages. The settings below are the same ones recommended by Wordfence on their rate limiting page.
Tweak the Wordfence settings to limit bandwidth consumed by this plugin:
- Do not “enable automatic scheduled scans”
- Do not “enable email summary”
- Enable “use low resource scanning”
- Do not store lots of live traffic data for long periods of time
- Decrease “limit the number of issues sent in the scan results email” to 500
- Do not enable “updates needed (plugin, theme, or core)”
- Increase “update interval in seconds (2 is default)” to 10-15 seconds
- Decrease “how much memory should Wordfence request when scanning” to 100MB
- Enable “delete Wordfence tables and data on deactivation”
- View the Wordfence options page for more recommendations
The Block Bad Queries plugin also protects your site against known bad bots. It’s a “one click and done” plugin with a perfect 5 star review – an easy way to reduce CPU from spammy bots.
15. Disable Unused Plugin Settings
Go through each of your plugins and decide which settings you can turn off (this will lower CPU). For example, in Yoast under Settings > General > Features I disabled the following…
Disable plugin settings that:
- Provide statistics
- Run ongoing scans
- Send admin or email notifications
- Broken Link Checker’s ongoing scans
- Yoast’s settings under Dashboard > Features
- Chat and calendar plugins that run constantly
- Statistical plugins that constantly collect data
- Related post and popular post plugins that store tons of data
16. Delete Unused Plugins/Themes
Unused themes store preconfigured settings in your WordPress database (similar to plugins). First go to your plugins menu and deactivate/delete ALL plugins you’re not currently using…
Now go to Appearance > Themes and delete all themes you’re not using…
17. Identify The Source (Using AWstats)
AWStats helps you find:
- High bandwidth crawlers
- High bandwidth IP addresses
- High bandwidth download files
- High bandwidth files (eg. images)
- Total bandwidth usage (for monitoring)
Images usually consume lots of bandwidth…
There are over 20 ways to optimize images (which aside from plugins, are one of the heaviest elements on many websites). That tutorial shows you how to fix all the GTmetrix items below.
See Also: How I Got 100% Scores In GTmetirx
Did it work? Let me know in the comments.
Still slow? Send me your GTmetrix report – glad to take a look :-)