How I Optimized My Slow WordPress Site To Load In <1s With 100% GTmetrix Scores: 36+ WordPress Speed Optimization Tips For 2020

Home » WordPress Speed Tips & Tricks » How I Optimized My Slow WordPress Site To Load In

Slow WordPress site?

I’ll show you how to take your GTmetrix, Pingdom, and PageSpeed Insights report and use them to make WordPress-specific optimizations that improve grades/load times. I’ve already written popular tutorials for WP Rocket, high CPU plugins to avoid, and image optimization. This guide combines everything I’ve done to get 100% scores on my homepage as well as other pages and posts. Even this post can load in <2s and it has 172 requests, 5.78MB size, and 400 comments.

Table Of Contents


Hosting And Cache Plugin – these are the 2 biggest factors in the WordPress optimization guide. I use SiteGround who is also used by Yoast and rated #1 in multiple Facebook polls. For caching, I use WP Rocket who was also #1 in Facebook polls and comes with more features than other cache plugins (reducing the number of plugins on your site). SiteGround is $3.95 – $11.95/month and WP Rocket is $49/year, but are mostly what I contribute my load times to.

Watch My Video – it’s a 42 minute video, but I cover pretty much everything (timestamps in video description) and you will learn a ton of helpful info on fixing your slow WordPress site:


1. GTmetrix vs. Pingdom vs. Google PageSpeed Insights

GTmetrix has the most robust recommendations, like which images need to be optimized in the Page Speed tab (steps 14-16) and using a CDN in the YSlow tab (step 11). It’s also good for finding slow loading plugins if they take a long time to load in the Waterfall tab, or they appear multiple times in your main report. You can also view your time to first byte in the Timings tab.

My GTmetrix report:


Pingdom is the most accurate tool for measuring load times according to WP Rocket, and load times are the primary metric you should be measuring (not grades), but there is a correlation.

My Pingdom report:


Google PageSpeed Insights is only good for 1 thing – checking server response times which Google recommends should be <200ms. Otherwise it’s pretty useless and there are many articles that explain why. You can improve server response times by upgrading plans with your current host to include more server resources or switch to faster hosting from SiteGround, DigitalOcean on Cloudways, or Kinsta who are generally the best 3 hosts in their class (join the WordPress Hosting Facebook Group to get unbiased opinions or look at the Facebook polls).

Reduce Server Response Time


2. 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.


This is well-known in Facebook Groups.



3. SiteGround (#1 Host In Facebook Polls)

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 mediocre 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.

2019 Hosting Poll


Elementor Hosting Recommendations

July 2019 Hosting Recommendation











WP Friendly Hosting Poll


Favorite Hosting For Elementor

2018 Hosting Recommendations

WordPress Hosting Poll Sept 2018.png










Bluehost vs SiteGround

WordPress Web Host Poll


They’re recommended by WordPress:


What other people are saying:

Godaddy To SiteGround Migration



SiteGround has 3 plans:

SiteGround WordPress Hosting

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:


I like 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 with my affiliate link I will donate a good chunk at no expense to you. Each year I donate $3k 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. I try to make my reviews unbiased and backed by evidence in the form of Facebook polls, tweets, and real conversations. If you don’t want to use it, here’s a non-affiliate link to SiteGround. Either way I truly believe they are a stellar WordPress host and your site will run faster/smoother… do your research on Facebook groups + Twitter and you’ll find most people say the same.

People usually migrate because their speed technology can cut load times in half:

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

Get hosting from SiteGround


4. Upgrade To PHP 7+

Upgrading PHP versions is so easy and can make your site 2-3x faster.

WordPress PHP Benchmarks

So why do most WordPress users run outdated PHP versions?


Because 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:


Some hosts are quick to release new versions (SiteGround, Cloudways, Kinsta), while others don’t make an effort to stay current in technology. Another reason to avoid EIG and GoDaddy.


*Check your website for visible errors since non-maintained plugins may not be compatible. If you do see errors, you can always revert back to an earlier PHP version.


5. Cache Plugin

There are lots of cache plugins out there, but these Facebook polls are accurate. Your cache plugin and hosting are two key factors, so splurge on WP Rocket if you have $49/year (you can get 10% off if you sign up for their email list). Otherwise, WP Fastest Cache and Swift Performance are 2 good free choices. I’ve been using WP Rocket on my site for about 3 years.

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

With most other cache plugins, you would need to install about 7 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.


Cache Plugin Guides

WP Rocket and WP Fastest Cache are simple to setup, while the others a bit more complex.

Some hosts like GoDaddy and WP Engine blacklist cache plugins because they have their own built-in caching system. In this case, use Autoptimize to optimize HTML, CSS, and JavaScript. It also has a CDN option. See my Autoptimize tutorial, otherwise if your host doesn’t blacklist cache plugins, I recommend either WP Rocket or Swift.


6. Clean Database

Deletes your spam and trash folders, trackbacks, pingbacks, database tables, transients, and the potentially thousands of post revisions and post drafts that have accumulated overtime which WordPress stores automatically. These are garbage files and slow down your site. I recommend scheduling WP Rocket or WP Optimize to delete these every week or so. You should be fine, but take a backup of your site if this is your first time cleaning 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:

WP-Optimize Clean Database


7. Heartbeat Control

The WordPress heartbeat API consumes server resources by showing real-time plugin notifications and that other users are editing a post. Since this can generate a request every 15-30 seconds, it’s best you disable this either in WP Rocket, or the Heartbeat Control plugin.

If using WP Rocket, disable this in the Heartbeat settings:


If not using WP Rocket, use the Heartbeat Control plugin:



8. Lazy Load Videos

Delays loading of videos until you scroll down the page and they become visible. I was able to reduce the load time of multiple posts by about 6s just by enabling this (since videos are a heavy element). You can do this with photos too but the constant loading can be annoying so I have it disabled. If you’re not using WP Rocket, the WP YouTube Lyte plugin has great reviews.

If using WP Rocket, enable lazy load in the “Media” settings:


Replace YouTube Iframe With Preview Image – this only loads videos once people click the play button, potentially shaving multiple seconds off content with videos. You can do this WP Rocket, or follow this light YouTube embed tutorial. You will basically paste a code into your web template, paste some more code into your CSS, then embed each video using a “div” code.

See how the video isn’t loaded until you click the play button?


9. Google Fonts

If you’re using Google Fonts, you will probably see these errors in GTmetrix:


This means you need to host your fonts locally using a plugin like OMGF:


Or use the Self-Hosted Google Fonts plugin which automatically downloads all Google Fonts you’re using then adds them to CSS, without having to configure anything… it does it for you.


If you prefer not to use a plugin, download your fonts directly from Google Fonts (only the fonts/weights you need), use Transfonter to convert them to web fonts, then add them to CSS.



10. Google Analytics

If you’re using Google Analytics, you can do the same thing with your tracking code.


If using WP Rocket, the Google Tracking in the Add-Ons tab should fix this:

WP Rocket Local Analytics

Or use the CAOS for Analytics plugin:



11. Cloudflare Setup

Cloudflare is free and improves speed, security, and spam protection. Their CDN hosts your files on 200+ data centers which helps offload resources to their servers (lightening the load on yours). The data centers also reduce the geographic distance for your content to travel to visitors. Cloudflare is easy to setup with WP Rocket (I also listed alternative methods below).

Cloudflare Data Centers

Step 1: Sign up for Cloudflare, add your website, then it will run a scan. You will go through a set of pages until you reach a dashboard with your 2 Cloudflare name servers (which you will change in your hosting account) and your Global API Key to enter into your caching plugin…


Step 2: Change name servers in your domain registrar to the ones Cloudflare assigned you:


Step 3: Enter your Global API Key (found in your Cloudflare profile) into your cache plugin:

Cloudflare Global API Key


Alternative Methods For Setting Up Cloudflare

Some hosts also have an option to activate Cloudflare in their dashboard:


Whitelist Cloudflare IPs In Your Hosting Account – you don’t want your host to block Cloudflare, so make sure they whitelist all Cloudflare IPs (you may need them to make sure).



12. Cloudflare Settings

CLoudflare has a ton of options, but here are the most important things to do.

Speed Settings
Go to your speed settings and copy these. Check your site afterwards for errors. Here’s more information on minification, AMP Real URL, SG Railgun, Brotli, and Rocket Loader if needed.




Scrape Shield
Hotlink protection prevents people from using YOUR images on THEIR website – which sucks up the bandwidth on your hosting plan. Go to Cloudflare’s scrape shield settings and enable it.

Cloudflare Hotlink Protection

Page Rules
Cloudflare says:

“We recommend that you create a Page Rule to exclude the admin section of your website from Cloudflare’s performance features. Features such as Rocket Loader and Auto Minification may inadvertently break backend functions in your admin section.”

Go to Cloudflare’s page rules settings


This page rule disables Cloudflare performance features in the WordPress admin panel, bypasses the cache, and improves it’s security (just as Cloudflare recommended you do).


This page rule will decrease bandwidth of the WP uploads area. Since items in your WordPress uploads file don’t change frequently, you don’t have to cache them as often, saving bandwidth.


Firewall rules can be used to block bad bots (step 24) and is explained there.


13. CDN (Content Delivery Network)

This is recommended in the WordPress optimization guide:


I use StackPath’s CDN, but why use another CDN if you already have Cloudflare? Because…

  • StackPath has 31 additional data centers (more = faster)
  • StackPath uses faster SSD servers with 10GB connections
  • StackPath has dashboards that provide lots of information about your cached files
  • StackPath’s team helped me configure my CDN and improved my GTmetrix YSlow score by 8%, putting the “cherry on the cake” to make my report a perfect 100%
  • StackPath allows you to protect your account using a two-step authentication process; you can whitelist the IP addresses of people who are permitted to access your account


Step 1: Sign up for StackPath (they have a 30-day trial).

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




Step 3: Paste your StackPath CDN URL into WP Rocket, 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.

CDN GTmetrix YSlow

If you expand items in GTmetrix and are related to your CDN, contact StackPath’s support who should be able to help you fix these. They did this for me and have outstanding support.

Cookie Free Domains MaxCDN

GTmetrix YSlow Without StackPath
GTmetrix YSlow Without MaxCDN
GTmetrix YSlow With StackPath
GTmetrix YSlow With MaxCDN


Troubleshooting StackPath

Step 6: Whitelist StackPath’s IPs in your hosting account (you may need to contact your host).



14. Serve Scaled Images

Images can be optimized 20 ways, but these are the main 3. You can run any page through GTmetrix and it will show all unoptimized images for that page. Start with images that appear on multiple pages (logo, widget/footer images) then optimize images on your individual pages.


Serve Scaled Imagesresize large images to be smaller. GTmetrix tells you the correct dimensions. Just click the image in GTmetrix, resize it to the new dimensions, and replace it.

Serve Scaled Images

Create a cheat sheet so you can use the correct dimensions before uploading your images:

  • Slider images: 1903(w) x 400(h)
  • Carousel images: 115(h)
  • Widget images: 414(w)
  • Fullwidth blog post images: 680(w)
  • Featured images: 250(w) x 250(h)

Never use the ‘drag to resize’ feature in the visual editor since this only resizes the displayed image (not the actual image). It’s best to resize to the correct dimensions before uploading it.


15. Specify Image Dimensions

Specify Image Dimensions – means you need to specify a width and height in the image’s HTML or CSS. This usually happens in your widgets, HTML, or CSS sections of your website since the visual editor takes care of this automatically. GTmetrix will again provide you with the correct dimensions, then you need to locate that image and specify the width + height:

Specify Image Dimensions


16. Losslessly Compress Images

Optimize Images – losslessly compress images using Imagify or ShortPixel (both are free until you reach the monthly limit). There are other completely free plugins with unlimited compressions, but do NOT use these since they have bugs, won’t work, or can break images.

  1. Sign up for Imagify
  2. Install the Imagify Plugin
  3. You will be prompted with the instructions below:
  4. Enter your API key from your Imagify account
  5. Set your compression level (normal, aggressive, ultra)
  6. Imagif’em all (photo below) with bulk optimizes all images on your site
  7. Once you’ve reached your limit, pay $4.99 or wait next month to reset your limit


Once signed up, bulk optimize all images on your site.



17. External Resources

External resources are anything from Google Fonts to embedded YouTube videos, social sharing plugins, comment plugins, Gravatars, or anything that pulls information from an external website. These will appear in your GTmetrix report. Sometimes you can optimize them, sometimes you can’t. Here’s few things I learned about optimizing external resources.

Tips For Optimizing External Resources


Prefetch DNS Requests – this helps browsers anticipate external resources so they load faster. See this list of common domains to prefetch which includes Google Maps, Google Analytics, Google Fonts, Gravatars, social sharing plugins, Disqus, social networks, and others. You should also prefetch your CDN URL if you’re using StackPath, KeyCDN, or another CDN.


If using WP Rocket, added these in the Preload settings:


If not using WP Rocket, use the Pre* Party Resource Hints plugin.


18. Remove Bloat

WP Disable lets you disable settings in WordPress that consume CPU and slow down your site. It also has options for heartbeat control (if you remember the actual heartbeat control plugin, you can now delete it and just use this)… as well as a few other options that can speed up your website/admin panel. Go through the settings and simply disable what you don’t use.

Tips On Using 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
  • 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
  • Miscellaneous options in the “request” tab can further your improve load times







19. Minimize Plugins

Have you deleted the Hello Dolly plugin and WordPress Importer? How about replacing that Twitter plugin with a Twitter widget or that Facebook plugin with a Facebook widget? Instead of using a Google Analytics plugin why not insert the tracking code directly in the footer (or even better, host it locally)? Yoast generates an XML sitemap for you so the Google XML Sitemaps plugin isn’t necessary. Go through your plugins and deactivate/delete the ones you don’t need. You should also avoid using 2 separate plugins if they have duplicate functionality.

Delete all plugins you don’t need, and unused themes under Appearance > Themes:

Delete Unused WordPress Themes


20. High CPU Plugins

Most slow WordPress plugins include social sharing, statistic (analytics), sliders, portfolios, page builders, calendars, chat, contact forms, related post, sitemap, Wordfence, WPML, WooCommerce, and any plugin that runs ongoing scans or processes. These can be identified using Query Monitor or GTmetrix Waterfall.

  1. AddThis
  2. AdSense Click Fraud Monitoring
  3. All-In-One Event Calendar
  4. Backup Buddy
  5. Beaver Builder
  6. Better WordPress Google XML Sitemaps
  7. Broken Link checker (use Dr. Link Check)
  8. Constant Contact for WordPress
  9. Contact Form 7
  10. Contextual Related Posts
  11. Digi Auto Links
  12. Disqus Comment System
  13. Divi Builder
  14. Essential Grid
  15. View Full List Of 65 Slow Plugins

You can also use the GTmetrix waterfall tab to see your slowest plugins:

Slow WordPress Plugin

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…



  • Wordfence’s live traffic reports
  • Broken Link Checker’s ongoing scans
  • Chat and calendar plugins that run constantly
  • Statistical plugins that constantly collect data
  • Related post and popular post plugins that store tons of data
  • Disable ALL settings you don’t use since many will consume CPU


21. Lightweight Plugins

Social Sharing – WP Rocket’s test showed Social Media Feather, MonarchSimple Shared Buttons Adder, and MashShare had the least amount of requests and fastest load times.


SlidersSoliloquy, LayerSlider, or Meteor Sliders.

CommentsDisqus Conditional Load.

PortfolioEnvira Gallery, FooGallery, or The Grid.

Analytics – Google Analytics and Search Console should be plenty. Just make sure you’re hosting Google Analytics locally (using WP Rocket or WP Disable).

Page BuildersWordPress 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.

StudioPress Plugins – lightweight plugins for the Genesis Framework.


22. Selectively Disable Plugins

Asset Cleanup is great for disabling plugins you don’t use on specific pages/posts. Especially if you’re running a lot of plugins, or just a couple resource-intensive plugins, only loading them on the content they’re used on means your overall WordPress website can load much faster.


  • Disabling your slider plugin on pages that don’t use sliders
  • Disabling your rich snippets plugin on pages that don’t use rich snippets
  • Disabling your contact form plugin on pages that don’t have a contact form
  • Disabling your affiliate link management plugin on pages that don’t use aff links
  • Disabling your social sharing plugin on all pages (since it’s usually for blog posts)

Similar Plugins


23. Block Bad Bots

Search engines and bots usually consume the most CPU/bandwidth:


Wordfence has crawl rate limiting rules that block fake Google crawlers, limits crawler page views, limits human’s page views, and other rules that limit CPU usage and blocks spammers.


Googlebot is usually the most resource-hungry bot. In the site settings of Google Search Console you can limit the crawl rate but this is only recommended if it’s causing high CPU.


You can do the same thing in the crawl control settings of Bing Webmaster Tools


This next section shows you how to use Wordfence to find and block spammy bots that hit your site too much (which may consume CPU and put stress on your server.

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 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 ** it means any hostnames containing (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.


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.



24. Avoid AMP

AMP is a Google project that makes mobile pages load faster while adding an “AMP” stamp to mobile snippets. While it does improve performance, it also changes the design of your mobile site which can decrease conversions. Kinsta did a case study where mobile leads dropped 59% when they added AMP, so they disabled it (and after reading that article, I disabled mine too).


Caution: AMP can drop your mobile conversions – use carefully!


Cloudflare Accelerated Mobile Links

A common issue is featured images appearing on the top of posts when you might not want them too. There is a work around for this, but it’s not perfect. You can either have no featured image, or you can set a default featured in Yoast under SEO → AMP → Design → Default Image. That default image will show if NO featured image is set, but if one is, that is what will show on the top of the post. You can read Yoast’s AMP guide but I basically just summed it up.


25. Gravatars

Gravatars take a LONG time to load especially if you have lots of blog comments (try running a post with comments through GTmetrix and you’ll see how bad it gets). You have a few options:

  • Host Gravatars locally using WP User Avatar
  • Disable Gravatars completely
  • Set your default Gravatar to blank
  • Delete comments that don’t add value
  • Set your default Gravatar to a custom image on your server
  • Restrict your Gravatar images to smaller dimensions (e.g. 32px)
  • Paginate comments in WP Disable to only show 20 comments at a time
  • Try caching Gravatars using the FVHarrys, or Optimum Gravatar Cache


26. WooCommerce

WooCommerce sites run extra scripts, styles, cart fragments, and they usually require more plugins. That’s why when choosing a hosting plan, you should usually buy one tier up of what you actually need to accomodate for the extra resources often required for WooCommerce.

WooCommerce Cart Fragments

WooCommerce styles in query monitor

WooCommerce Optimization Tips

  • Disable cart fragments using this Github code
  • Disable WooCommerce scripts using this Github code
  • Disable WooCommerce styles using WooCommerce’s tutorial
  • Clear customer sessions and remove transients occasionally
  • WooCommerce sites require more resources, so choose your hosting plan accordingly

But the easiest way to optimize WooCommerce is using the Perfmatters plugin by Kinsta:

perfmatters woocommerce optimization


27. Add SSL

There’s no reason not to use SSL when Let’s Encrypt SSL offers it for free in most hosting accounts. I was reluctant to change and feared a drop in traffic, but my traffic stayed the exact same. Really Simple SSL also makes configuring it very easy. If you haven’t done it, I would do it.



28. Limit Post Revisions

Add this to your wp-config file before where it says “That’s all, stop editing! Happy blogging.” Perfmatters also lets you limit post revisions which accumulate over time in your database.

define('WP_POST_REVISIONS', 3);


29. Disable Pingbacks + Trackbacks

These aren’t necessary, so turn them off in Settings > Discussion.

WordPress Trackbacks Pingbacks


30. Check AWStats For High CPU

AWStats is a tool built-in to some hosting cPanels that provides statistics on CPU usage. It tells you whether certain bots, images, downloaded files, and even IP addresses are consuming a lot of CPU. You can also use the WP Server Stats plugin but I think AWStats does an awesome job.

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)



31. Defer Parsing Of JavaScript

Backup your functions.php file then add this code to it – then you’re done. Double check your site to make sure everything looks/functions properly. If this still doesn’t fix the item in Pingdom, try the Scripts To Footer Plugin. This step can require testing and using different code variations but I borrowed the code from this article if you want more clarification.

if (!(is_admin() )) {
function defer_parsing_of_js ( $url ) {
if ( FALSE === strpos( $url, '.js' ) ) return $url;
if ( strpos( $url, 'jquery.js' ) ) return $url;
// return "$url' defer ";
return "$url' defer onload='";
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );


32. Add Expires Headers

Most cache plugins should take care of this automatically when you enable browser caching (like WP Rocket and W3 Total Cache). But if ‘add expires headers’ still appears in your Pingdom report under the YSlow tab, add this code to the top of your .htaccess…

<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType text/css "access plus 60 days"
ExpiresByType text/javascript "access plus 60 days"
ExpiresByType image/ico "access plus 60 days"
ExpiresByType image/jpg "access plus 60 days"
ExpiresByType image/jpeg "access plus 60 days"
ExpiresByType image/gif "access plus 60 days"
ExpiresByType image/png "access plus 60 days"
ExpiresByType text/css "access plus 60 days"
ExpiresByType text/html "access plus 60 days"


33. Remove Query Strings

This item has been a pain in the ass for a lot of people (including me). Thankfully, a few recent updates have been made by the most popular cache plugins that allow you to easily fix the ‘remove query strings from static resources‘ item in your GTmetrix and other speed reports. However, most query strings are generated by plugins (which you can see in your GTmetrix report), so it is absolutely critical to only use lightweight plugins and to test them immediately.

WP Rocket has an option in the “file optimization” tab:


W3 Total Cache has an option for this under Performance → Browser Cache:

Remove Query Strings From Static Resources

WP Disable has an option in the “requests” tab:


Remove Query Strings From Static Resources Plugin – you can also try this free plugin.


34. Minimize Redirects

Usually means you changed the www or http version of your website but didn’t change your links/images to reflect this. Try using the Better Search & Replace plugin to fix them in bulk.

minimize redirects


35. Lightweight Theme

If your WordPress site has been slow since the beginning, it’s probably either your hosting or theme. I remember developing a website using the Law Business theme and it was SO SLOW I had to scratch the entire website and start over using the Executive Pro theme by StudioPress. This is due to poor coding by the theme developer or too many unnecessary built-in features.

StudioPress themes are lightweight (they load fast), responsive, HTML5, secure, and reliable (they won’t crap out or get discontinued like some ThemeForest themes). They are used by over 200,000 people, their themes are built in the Genesis Framework (recommended by Yoast and WordPress founder Matt Mullenweg), plus they have lightweight Genesis plugins.

I know you don’t want to change your theme. But if your design sucks anyway, a StudioPress theme can be a game changer. I wrote a review on StudioPress if decide to look into them.



36. Monitor Server Resources

You only have a limited amount of server resources on your hosting account. Hosting too many websites on one account, resource-hungry plugins, and many other factors can slow down your server. Make sure your plan has enough resources to properly accommodate your needs.


If you’re getting bandwidth/CPU overages, you need to fix it (this guide should have helped) or upgrade your plan to include more resources. On many cloud plans, you can add resources as needed to make sure you’re not coming close to exceeding them, which stresses on the server.



37. Update WordPress

Update WordPress core, theme, plugins, and framework if you use one (eg. Genesis).

WordPress Updates

Check your hosting cPanel to see if there’s an option for automatic updates:

SiteGround WordPress Autoupdates

Genesis Framework also has an option for this:

Genesis Automatic Updates


38. Find Slowest Pages

You can use Google Analytics to find the load times (and recommendations) for your top viewed pages and slowest loading pages. Login to Google Analytics and on the left, go to Behavior → Site Speed → Speed Suggestions. Click the ‘Page Speed Suggestions’ to see recommendations, though I would say GTmetrix recommendations are usually better.



39. Cloudways Hosting

If you’re looking for something faster than shared hosting, most people are jumping to Cloudways. They are cloud hosting (not shared) and are even faster than SiteGround. The tradeoff is their support isn’t as good as SiteGround, it’s a little more tedious to manage, and they don’t provide email hosting. But if you’re looking for pure speed, they were also rated #1 in many Facebook polls. Most people use their DigitalOcean plan which starts at $10/month.

For shared hosting, SiteGround is great. But their cloud hosting is quite expensive at $80/month when for the same price at Cloudways, you get almost double the CPU + RAM.

You also pay monthly instead of yearly, which is nice.


People who migrated to Cloudways (or one of their cloud providers):

Cloudways Response Times

WP Engine To Cloudways

DigitalOcean Pingdom Report

Cloudways Server Response Times

Godaddy to DigitalOcean Migration

Cloudways Load Time Improvement

Cloudways vs WP Engine


Cloudways Pingdom Load Times

Cloudways Pingdom Report

Namecheap To Cloudways Migration

Vultr Migration

Cloudways WooCommerce Migration

Cloudways AWS Migration

Also #1 in many Facebook polls:

Hosting Recommendations Facebook

VPS Cloud Hosting WooCommerce Poll

Elementor Hosting Recommendations


VPS Cloud Hosting Poll

WordPress Hosting Suggestions

Favorite Hosting For Elementor


You can save 25% for the first 2 months with Cloudways by using this promo code: OMM25.


40. Hire My WordPress Speed Optimizer

Still need help with your GTmetrix/Pingdom report? I’ve been working with Usama (i333) since 2005. He helped me optimize my own site and plenty of clients sites. You can hire him by creating a profile on (I would appreciate you using that aff link) and finding his profile. He’s $60/hour from Pakistan (so there is a time change) but he has a 459 reviews with a perfect 5 star. Serious inquiries only, and please don’t expect 100% scores if you’re using slow hosting, a bloated theme, and heavy plugins. Follow this WordPress speed guide first.

i333 WordPress Speed Optimization Expert


Frequently Asked Questions

🚀 What are the most important speed factors?

Hosting, cache plugin, image optimization, plugin optimization, and whether you're using external scripts are usually the top 5 factors of website speed.

🚀 Which cache plugin should you use?

WP Rocket is usually rated the top cache plugin in Facebook polls since it has built-in features most cache plugins don't. These extra optimizations should yield better scores and load times in GTmetrix, but it is a premium plugin. The top free cache plugins are Swift Performance, W3 Total Cache, and WP Fastest Cache.

🚀 Which WordPress hosting should you use?

The best hosting is highly debatable, but SiteGround and Cloudways are generally the 2 top-rated WordPress hosts in over 30+ Facebook polls. SiteGround is good for shared hosting, and Cloudways for cloud hosting.

🚀 Which speed testing tool should you use?

GTmetrix has the most robust recommendations especially when it comes to optimizing images, finding slow plugins in the Waterfall tab, and measuring time to first byte. Pingdom doesn't have as many recommendations, and Google PageSpeed Insights doesn't even measure load times.

🚀 How do you optimize images?

You can optimize images using a plugin like ShortPixel or Smush to compress images and strip EXIF data. Make sure you're resizing images to the correct dimensions, and ideally serve them from a CDN. Lazy loading images and videos will also make the page faster.

🚀 Should you use AMP?

Generally, you should avoid AMP (accelerated mobile pages) since the design changes can lower conversions. Kinsta's conversions dropped 59% after adding AMP and they decided to remove them.

🚀 How do you optimize plugins?

Find high CPU plugins using Query Monitor which usually include portfolios, statistics, sliders, and plugins that run ongoing processes. Next, replace them with lightweight plugins that consume minimal resources. Delete all plugins you're not using, and disable unnecessary plugin settings that consume resources. Finally, selectively disable plugins from loading on certain content using a plugin like Asset Manager or Perfmatters.

🚀 How do you optimize external scripts?

It's best to avoid external scripts all together, such as Google AdSense, Facebook widgets, and plugins that create external requests. Some plugins such as Disques let you load it conditionally. If the page contains JavaScript, try the Async JavaScript plugin. Finally, prefetch all external URLs that are loading on the page.

Hope this helped! Drop your new GTmetrix scores + load times in the comments :-)


View More Tutorials

Notify of
Oldest Most Voted
Inline Feedbacks
View all comments
James A.
Soneye Saheed

Thank you very much Tom. I was really able to increase my site speed A LOT after following this guide (and many other guides that I have read on your blog related to speed and perform). I am really grateful. I just have one question though. I try as much as possible to optimize my images before upload to my blog (width=604px). Then, I also compress it with SMUSH plugin. However, no matter what, GTMetrix always has a better optimized image they think I should have used. Now, I have to manually download those optimized images from their recommendation and… Read more »


Hi Tom!

Brilliant! Thank you for this great tutorial!

SiteGround has its own caching tool. Do you recommend NOT using it? Just use WP Rocket?


Hi Tom! So I am proud to say that I USED to have a 14 second page load time ( I know, pathetic) and now I am down to 1.5 seconds. I am so grateful! Thank you for your tips!!! While running my site through GTM I keep getting these error messages: GRADE SUGGESTION F0 Make fewer HTTP requests F0 Compress components with gzip F0 Use cookie-free domains F12 Add Expires headers I use Cloudflare and WP Fastest Cache. I’m not sure if the WPFC plugin is working in regards to the gzip. Any recommendations for any of the F… Read more »

Dimple Soni

You have explained all the aspect amazingly. Images plays an important role in webstie speed. Thanks for sharing this informative blog.


Hi Tom

Thanks for this excellent tutorial.

If using either Clearfy, Perfmatters or Asset Cleanup do they have to remain active after they have disabled unnecessary functions?

What plan are you on with StackPath CDN?


rpl sample australia

I am also using WordPress site nd also face this type of problem. now understand many more things. so I am glad to see your blog. that is amazing post that you shared with us. great share.


Hi Tom, So glad I found this article! I wish I had found it sooner before I tested a lot of things that didn’t work. I love the step by step guide to follow. Its long but so helpful. I was already with Siteground and cloudfare CDN, the only other thing I’ve done so far is change my cache plugin and it has solved so many of the issues that were showing up. I have already gone from 69% performance to 93% and 3.9s load time to 1.3s in gtmetrix! Still have to work through the other things but I’m… Read more »

Kamesh Rajak

Thanks for your help man, No I have PageSpeed Score
(98%) and YSlow Score (97%)


complete guide.I will implement this in my work.


Hi Tom, thank you so much for this helpful post.
I have a website’s relativly slow (2.4s). My website’s hosting is HostGator.
I should transfer the hosting to SiteGround?
Thank’s to check my website and tell me your opinion.


Hi Tom,

Your article contains amazing points to optimize the slow WordPress websites.

I have been working on various speed optimization strategies on my WordPress website. And I did 3 things which you said in your article:

1. Changed my hosting to SiteGround
2. Installed ClouldFlare CDN
3. Minimized Plugins installed on my site.

After doing the above 3 things, my website loading speed got a tremendous boost. Now it loads in under 1.5 seconds time.

My site is here:

I am looking forward to work on remaining optimization points, and let’s see what happens.



The WP Disable plugin hasn’t been updated in almost a year. Is there an up-to-date replacement you recommend?


Oh sorry. I read you’re using semi-dedicated GoGeek plan. What does it mean “semi-dedicated”? Is it different from the shared hosting? Comparing to Amazon ec2, which one is better you think? :)

Thank you for your great tips :)


Hi, Tom. Are you using Siteground? What plan are you using now?


thank you so much for this amazing post… you should get an award for this!

Just one question WP Disable has not been updated for almost a year… Will it be a problem to use?


Tom, Hey came across your website and info and have finally found a good resource out here that explains everything. Question for you. I’m currently using a avada and have realized it is slow and want to make a switch. I’m using woocommerce and its loading in 7sec which is crazy slow. I’ve looked at studio press and am most likely going to go with them but have also read a few negative things about them. I want something that is super fast like all of us!!!! I’m just not sold on the way you have to design the site.… Read more »


Hi Tom, Firstly, thank you so much for taking the time to write these fantastic articles – they are a brilliant resource for beginners like me (and, no doubt, for some more experienced users). I’ve been working my way through the various speed tips (having shot myself in the foot by signing up for BlueHost before I found your site!) and have made great progress, especially after using Swift Performance Lite. I recently got to the stage where the GTMetrix scores were 100%/95% and the page load time was 1.1s. (That said, this is very early days and there isn’t… Read more »

Reply to  Tom Dupuis

Hi Tom,

Thanks for the speedy response.

OK, I note the point about the fluctuating times – I’ll try at various times to see how things change. With regard to the Google Fonts point – what do I do? I’ve already installed CAOS for Google Fonts – have I used it incorrectly?

Reply to  Richie

Hi Tom,

Fixed it! :-)

I’d attempted to use CAOS for Google Fonts and delete them with Autoptimize but must have done something wrong. I’ve now deleted CAOS and gone with the ‘Combine and link in head’ option in Autoptimize (which, to be fair, is what you’d recommended in your post about using this plugin!).

GTMetrix now shows 100%/98% (no big change here) but now only 5 requests and a load time of … 0.5secs!!!

Thank you once again for your excellent articles – they really do make a huge difference. Keep up the good work.



how can i reduce the excessive dom element size in wordpress website

Sachin Prajapati

Hi Tom,

Can you please let me know, which are the top 3 fastest hosting providers? Also, what is your view on WPX hosting? And which hosting should I buy?



Great post! really appreciate the thorough research, it helps a lot!

Something I’m curious about: you recommend Siteground as preferred hosting while stressing the importance of TTFB in load times.

I’ve been with Siteground for years on their Grow Big plan and can’t get my server response time under 1.4 seconds.

Obviously this is a far cry from the recommended 200ms.

I’ve contacted their tech support multiple times with this issue and have yet to receive a satisfactory response.

Any tips you can share on how you got your server response time down using Siteground???

Thanks : )


Tom, Thank you so much for these great posts! I’ve looked into and tried to do as much as I can comprehend of what you recommend, (except I’m still with bluehost… but looking into siteground. I’m nervous to move because last move from wordpress to bluehost cost me a huge mess in the transfer… lost pics etc.) So besides that, when I run the GTMetrix I have numerous super slow issues with google analytics, google ads and skimlinks. Any ideas on how to speed those up? I’m not sure if I don’t have them applied in my site correctly or… Read more »

Saif Ziya

After reading this…
Man, I’ve been missing out on almost everything!


Hi! I got my sites faster, but Pingdom still says I must add expire headers, gzip compression… I already had them, tried some different versions including the ones here, but it still says the same…


Great write up Tom. My site is a grade “B” and “C” for YSlow. I have Cloudflare CDN enabled and host my site on and have it enabled. I have not enabled the “Yoast Option – Analyze entire site” because I’m still building POST content. I’ve tried to reach out to “Pronaya” via 4 days ago and the project actually cancelled because he did not respond to the request and Freelancer auto closed the project I posted for SEO Optimization. Do you have anyone else that you recommend? Maybe he is on holiday. Not sure. Thanks, Nathan

Jerry Peres

Choosing a best web hosting is a little bit tuff work for beginners. If you want to become a good web hoster, then follow the rules or tips that are given in this blog. It can be very helpful for you in future. Thanks

Anthony Ang

Hi Tom,

What’s your latest recommendation for using SG Optimizer and WP Rocket?

You had commented on 17 Jan 2019 at that you love the changes in SG Optimizer and you can stop paying for WP Rocket when certain features are available.

Will it be best to uninstall SG Optimizer as you say in this post? Or turn off certain options in SG Optimizer?



Thanks for the information; really good stuff! I implemented your suggestions (used an affiliate link to!) and happy to say the results are super impressive. Before I get to the results I just want to say I appreciate the fact that you focus on things the average person can do rather than only focusing on advanced techniques to go from 20k visitors a month to 40k visitors per month. I know there is a lot of us out there that are not even trying to get to 20k per month (and don’t need to) but we do want to put… Read more »

genaro martinez

Hi! great article

I have a question…

Does it work for woocommerce stores? or just for wordpress blogs

Young and the Invested

Tom, this compendium of tips to improve site speed has been incredibly helpful for my site. Before implementing any of these suggestions, my site speed clocked in at a miserable 9.65s. Terrible, and my Google love (or lack thereof) shows it. After working through almost all of these steps, I registered multiple page speeds of 2.50-3.00s. Talk about a marked improvement. I have a few outstanding issues I hoped to inquire about because you mention them in your tutorial above but I don’t feel I had success. Using my GTMetrix read out (, I still have five primary areas of… Read more »


I dont get you about Gzip compression. You said that WP Rocket plugin is full and include more features than other plugins. As I understand the main idea of this post was “install one powerfull plugin instead of several”. And then you said: “gzip compression is done by W3 Total Cache under Performance –> Browser Cache -> Enable HTTP (gzip) compression.” So I’ve bought WP Rocket and installed it. But it doesn’t have Gzip compression as I can see. So what to do now if I want to get Gzip compression function. Should I install W3 Total Cache (only for… Read more »

Reply to  Tom Dupuis

I spent so much time reading your post and installing WP Rocket with all its settings. But unfortunately my GTmetrix results are not good (72%, 76%) after all.
I’ll send you my report. Please look at it. Maybe you know how to fix my three big problems and give me some recomendations:
– Minimize redirects
– Enable gzip compression
– Add Expires headers
Check your email please.

Evelina Karlsson

Hi! Your tutorials have helped me so much. I am using pagespeed insight and I have managed to get all of the Lab Data to green except for the speed index wich is still suped red and 6.1 secs. I believe I have done EVERYTHING in your guides. Do you have any idea why it’s not changing?

David K

Hey Tom, thanks again for your great resources here! I used your affiliate link to sign up for SiteGround’s GrowBig hosting plan a few minutes ago. I trust you got a nice notification on your smartphone! :-) Keep up the good work…

Yansen Alexander

Wow.. this what i need for. Optimize blog as faster before….Thxs mate

Robert Hickman

200ms is not fast, a custom built PHP application, without excessive abstractions can easily get around 20ms to 30ms, even doing dumb stuff like queries in a loop. WordPress is poorly designed and the data model is a disaster. I don’t think any recent systems are any better due to the OOP ‘obsessive abstraction’ fad.


hi.nicepost.thanks for sharing this.


– How to fix the “Specify image dimensions” setting from GTMetrix?

Thanks – amazing job you are doing with this blog ;)


Hi Tom

Great article!!!

Thanks a lot.

Ed K.

Hey Tom,

Great article! I did have a question about how the SG Optimizer (v5) plays into all this. It appears it has a lot more functionality now and does some the work WP Rocket and other plugins offer. Just looking for the best combination….



I don’t know much about servers and find PageSpeed to be a daunting task. With a new site redesign I knew I had to do something about the slow speed. Finding this article was a life saver. Your hosting suggestion of SiteGround has turned out very well and following your insight on plugins my PageSpeed went from 24 to 87. I then hired your WP Optimizer guy to look at what I had done and make tweaks. My new PageSpeed varies between 99 and 100. That is crazy! Thanks for this robust and easy to follow article… I have shared… Read more »

Steve G

Hi Tom,

Before I tag your freelancer ( even if just for my own education ) – let me ask you this.

I have embedded the iFrame for Google Calendar – what a complete hog of resources!

Is there another way / speedier way of handling Google Calendar / iFrame?

I came across GoogleWidgetMaps – that was a performance godsend for me re: Google Maps!


Great article. I moved a WordPress site from Godaddy to Inmotion Hosting a couple of months ago and have a really strange performance problem which the hosting company cannot seem to help me with. If I use GTMetrix I get a ‘Fully Loaded Time’ of between 1.5 and 2.5 secs, but that’s not what I am seeing in real life. When I load the site it takes around 8 secs, sometimes longer. Interestingly when I use Pingdom I am getting the 8 secs times, i.e. more like I am seeing in real life. I have narrowed the problem down to… Read more »

Ronald Segura

Hi Tom,

I recently moved my site to Siteground and I also installed Cloudflare via their Cpanel in order to get more optimization benefits, however, I’m having an issue when trying to use Let’s Encrypt SSL along with Cloudflare.

I see you are already doing that on your site. Can you please help me out somehow?


Mathukutty P. V

Is it a magic happened? I read this post and updated couldflare, removed jetpack, sumome, wpsitemap, w3total cache. Added wpfastest cache, wp disable, sassy social media (Mr Tom suggested through email), updated yoast settings etc and the gtmetrix result as of now is below
PageSpeed Score
YSlow Score
Page Details
Fully Loaded Time
Total Page Size

Mathukutty P. V

Very long post with everything included. It took more than an hour to read and update settings. Thanks.


Thanks so much for this! I have gotten my blog post pages from 9 seconds to under 2 seconds! Woohoo! :)

The only thing I couldn’t do was all the steps relating to MaxCDN- I tried to create a pull account and spoke with one of their representatives- apparently StackPath bought out MaxCDN so the whole process is completely different.

Would you suggest going with StackPath, or is there another alternative that is better?


Hey Tom, Thanks a lot for all your amazing work ! I’m actually trying to deal with cloudflare directly from Siteground. I have a message saying that my domain has to start by “www” in order to allow Cloudflare to work correctly. It happens when I want to enable Cloudflare in Siteground settings. If I ignore the message, Cloudflare is still on, but I don’t know if it’s working well. I see that you have a naked domain like me and you recommand Cloudflare. So, is there any tips you could provide me to use cloudflare without a www domain… Read more »

Maxwell Anderson

I believe you meant to say Siteground Cloud hosting is $80/month, not per year :)


Some great tips and recommendations. Thanks. :)

Do you have any thoughts on “Hyper Cache Extended” caching plugin?



Thank you so much for this awesome article!

What do you have, lazy load for videos or are you using the method with the coding?

Which one do you personally recommend?

Mircea G.

Amazing article, applied few tips from this list and now my speed improved.

Jerry Peres

The given tips to optimize the WordPress site is very helpful for me, because I have a WordPress website and want to optimize my site. Thanks for sharing.

kimberly suzzane

inspiring technique of optimization indeed


Your guide is awesome
I want to Host Google Analytics Locally as you suggested through wp-disable plugin
can you tell me how i can remove the GA tracking already in the site


Thank you! One of the best articles I found on speed of wordpress sites.

When analyzing my blog in gtmetrix I discovered this problem:

The following resources have identical contents, but are served from different URLs. Serve these resources from a consistent URL to save 1 request(s) and 109B.

https ://
https ://

I’ve been searching for hours and I have not found anything that could help me with this. Could you advise me if there is any solution to this problem?


In my site I use Codeigniter framework. can i use these steps for develop speed load?

Akshata Malhotra

I have been practicing with CloudFlare for a while now, and essentially the goal was to improve my sites performance. The extra security is an extended bonus for me. About my opinion, it helps me a lot. I am fortunate that I chose to use their settings and now that they have added more free tools, it delivers it all high. I have discovered though that there are several matters as far as analytics and SEO are concerned. For better SEO, I have not observed any difference, but for statistics, it made some positive changes from improving the bounce rate… Read more »


It is really helpful post. I visit your site to lean optimization. Great work man.


Jerry Peres

I am also very impressed when I see your website speed. Really good work. Thanks for sharing.

Steve Wiebe

I have woocommerce on a new website. What do you recommend for a fast easy to use free ecommerce solution for wordpress. Thanks.

Sasa Rebic

Hi Tom,
thx for a great tutorial for wp rocket, can you send me export settings for your WP rocket on email. I have cloud flare and maxcdn. I dont have e commerce.


applied few tips from this list and now its scoring 91 and 85 on gtmetrix .

Thanks a lot



Can you confirm that Cloudflare alone is not enough and we need another CDN ?

In Cloudflare we can CACHE ALL pages included static html but we need to exclude any dynamic page. Do you know what pages to exclude on Woocommerce shops ?

Thank you so much for the greatest post in history to optimize woocommerce.


Thank you so much for this guide! Using your tips I actually managed to cut the load time of my blog in half!!!
Will read more of your stuff to learn more. Keep up the good work


Hi Tom,

You have provided very valuable tips for speedup WordPress website. Please let me know if I install WP Rocket plugin then do I need to install WP Disable plugin?

Also, it will be great if you can let me know if I install WP Rocket then which plugins are not necessary to install?

David James

I am really impressed when I see your website and its speed. Really awesome work!

Anne G

Hey Tom, awesome tutorial. Thank you so much.
Our website is and we got a 95 in Pingdom thanks to you. We have some room for improvement in the mobile version and we will start working on it. GTmetrix is also a work in progress (B83% and C73%).
Have a great one! Annie


whats your view and opinion on Swift Performance plugin ?

WordPress is based on LAMP stack. Obviously can’t answer this really without really monitoring your performance (try NewRelic or something similar) but my guesses would be:

mySQL – your database performance is slow, could be machine size, disk performance, …
Apache – your apache web server runs on a slow machine
Network – your server network is slow / shared
Plugins – some of the plugins that you’ve installed are not really written well for performance and are slowing down your system

You Have Covered Every Detail! I Thanks For Sharing this guide public!


I moved to siteground. My loading time got worst. Now my TTFB is 1.7s. My previous host has total loading time around 1.5s. Supercacher is already configured. Any idea?
SiteGround says that it is normal to high TTFB because of the security featured they have used. But this is a utter failure for me.


Hey, again Tom. Couldn’t hit reply as it doesn’t work so I will reply here. I changed to siteground, and it’s worth all the money. Their ticket-system and help are invaluable. I had some small issues I couldn’t fix on my own, and when I submitted my ticket they replied within 5 minutes, the issues (and a few others not related to siteground or migration) was resolved in 15 mins. That’s so fast! I am soon done going through your guide optimizing my site. Simply just love it. Pingdomscore of 98 with Avadas Theme on the front page. And 99… Read more »

wonderful article, all the speeding options available in a single page! i’m going to start with a CDN to save bandwidth as I have many images and then check all the other options.
About image compression i’m using shortpixel that works well with both lossy and lossless, lossy save 50% or more and you can’t even notice any difference.


Thanks a lot for this! I even used your page speed freelancer and am super happy about the outcome.

I am still looking for someone to take on onpage SEO work. Do you have another freelancer specialised on tech SEO that you can recommend?




First and foremost, kudos to the effort you’ve put to bring us this valuable content. However, As of March 14th, your pagespeed score is 61/100 mobile and 84/100 desktop. Care to explain how it is not 100/100?

Thank you

Perfect tutorial, thanks so much bro!


Hello my friend my problem that i can’t use affiliate link and there is no way to use google adsense so how can we optimize my website beside google adsense

Nice article
Keep it up


Hey man.
Thanks for a super informative blog post. I am still working my way through your guides.
I have been pondering about changing server company. However, I recently just paid for them and moving on to siteground is doubling my expenses, and I really want some CDN services too. I can’t have both.

If you were to choose, considering my GTMetrics score and Pingdom score, would you invest in better servers or a CDN?

Thanks a lot.

Did your speed optimizer/freelancer change? I thought it was a guy from Bangladesh.

my site is too slow and wants a perfect solution, this article is perfect for me, thanks

thanks dear. i increase one of my wp site speed after raeding this post. now my gtmetrix performene sore is 98

Hey Tom, Somehow I am not able to reply to your response. So posting my reply as a separate comment here. I have pasted your previous response at the end of the message. Plugins I am using – AccessPress Instagram Feed, Akismet, AMP, Cloudflare, Glue for Yoast SEO & AMP, Google Authenticator, MetaSlider (need this for in-post photos), No Self Pings, PB SEO Friendly Images, PushEngage, Shareaholic, Smooth Scroll Up, UpdraftPlus, W3 Total Cache, Wordfence Security, WP Smush, WP-Optimize, Yoast SEO, YourChannel (for YouTube feed). I know that’s a long list. Do you feel I should remove some of them… Read more »

Hey Tom, Thanks for posting this really good stuff. My website is Among important things to mention here, I am using Bluehost, Cloudflare, Themify Ultra. GTMetrix scores: PageSpeed C (76%) and YSlow C(72%); Fully loaded time: 9.4s Total page size: 3.41 MB and 170 Requests. How do I remove redirects using Better Search & Replace? What do I replace them with? Some of them start with “https” as well. Some of them are like these: In Leverage Browser Caching tab, couple of issues are like these: ?ch=1&rn=3.046642432087989 In YSlow, following are issues: 1. Use a CDN F… Read more »

suhail malik abbas

nice post i have so many websites on WordPress but i look choose better hosting is best way to increase wp speed


Hi Tom,

I am ranking bad at “Serve scaled images” because I upload my images with twice the resolution and shrink them with css. I do this because of the quality for retina displays. Should i just ignore that ranking or is there an other option to get a crisp picture for high resolution displays?

Thanks in advance

great artical
i have a site with – 6000 posts
after i added the posts (with php script) it became very slow
when i delete them it return to be fast again
what is the reason ? worpress reading wp_posts when it loads the homepage ?
if i will get more cpu from my host , this will solve the issue ?


Hi Tom,
Amazing article, I have been making optimization for days but not great results. Based on your article I have finally achieved significant results.

Big thank you!

Hello Tom, Really, really thank you for all these tips! 2 Things I would like to have your opinion about if you can spare the time ;-) I am happily hosted with Siteground(fantastic fast 24/7 support!) but have not yet activated Cloudflare with then. This is because I noticed that “WP-Disable” plugin claims it will also announce a CDN solution soon. What is your suggestion in this matter? Wait or integrate Cloudflare? My customers are 99% localised in Netherlands. Meantime my Pingdomscore is 95% thanks to your tips. However loading speed is still above 2 secs. Any suggestions are welcome… Read more »

I already had some plug ins installed on my wordpress site cache enabler, autoptimize and optimus and I’ve been following your guide but I still can’t get it to a A it’s just a B. Any tips? Thanks for any info.


Nice tutorial, I have probem with my website

Score is 92 / 75
TTFB = 480 ms
Total Load 6 secon

The problem with loading time in post juragan
it shows 3,6 second

How to optimize, I can not found that in your tutorial

You have covered everything. Thanks


Excellent comprehensive guide.

Thanks, Tom for this great tutorial :)
I have tried too much, but my site still scoring 10.9s and more! :(

I tried using WP Rocket and I’m getting the opposite. A slow down in my page speed.
When the plugin is OFF I get 1.58 sec / Performance grade 84
When it’s ON i get 8.38 s / Performance grade 97

So I currently have it turned OFF.
There’s some sort of conflict going on. How do I begin to identity it?

Hey Tom (I can’t reply to your response, I click reply and it goes nowhere),

Anyways, thanks for the response! I actually deactivated *all* the optimization plugins (just to be safe): Autoptimize, W3 Total Cache, WP-Optimize, and WP Smush. And I even disconnected Cloudflare from my account. Some CSS is back but not all :T

Any more thoughts please?

Reply to  Tina

Ok it’s back to normal now. Guess it needed some time? So confused..

But it’s working so I’ll start adding the plugins one by one and see how that goes.

Hi, so I was following this tutorial and changed all my W3Total settings to match yours, added the free version of Cloudfare and downloaded WP-Optimize and now most (all? not sure yet) my CSS is missing from the site. I restored the site with a backup from yesterday and deactivated the above plugins but the CSS is still missing. Any thoughts?

One thing though is I forgot I already had AutoOptimize (another optimization plugin) and downloaded and activated WP- Optimize, could this have anything to do with my issue?

Any tips/advice much appreciated!! Thanks in advance!!

i used w3 total cache bot didnt do any thing for my website
( i cant change my theme is there any way to be better more than now ? )

Great Article Tom. Your method has helped me a lot to overcome the speed issue on my blog. By lowering less usable and high CPU plugin, I have increased my speed. I have tested in gtmetrix today and get the score was near 1.3 sec. It is quite good without WP Rocket or MaxCDN. Thank you so much for this article.


re-test and your website loads in 4 seconds and has no 100% score,