Share
Explore

icon picker
Speed Optimization

Have a slow WordPress site?
This tutorial has been a work in progress for years.
It covers core web vitals and fixing specific items in the new (PSI) using things like defer/async, delaying JS, and font optimization.
It also covers new optimizations found in Elementor, Divi, Cloudflare, LiteSpeed, SiteGround Optimizer, FlyingPress, WP Hive, and other tools.
You name it, it’s here. If it’s not, drop me a comment with your suggestion.

Testing Tools

Tools to learn what’s slowing down your website.

Google Page Speed Test

– Since Google PageSpeed Insights have more accurate metrics that measure load times, this is the primary tool you should use. If your scores are lower on mobile than on desktop, it’s partly because PSI uses 3G.

Mobile Page Speed Test

Think With Google uses a 4G connection to test mobile load times and is an excellent way to test load times. (PSI uses 3G).

Google Search Console Core Web Vitals

Although the core web vitals report shows core vitals for your entire site. It does not give specific recommendations.

GTmetrix

The GTmetrix Waterfall chart can be used to identify specific elements that need to be optimized like CSS, JS, fonts, images. Similar suggestions from Page Speed Insights.

KeyCDN Performance Test

The KeyCDN Performance Test can be used to measure the time it takes to access the internet in many global testing locations. If your hosting is slow, this is a good indicator.

Query Monitor

Slow plugins, queries, and other things that slow down your site can be identified with the Query Monitor plugin.

Page Speed Test Localhost

Open up Chrome > Right Click > Inspect > Lighthouse

Chrome Dev Tools

Find your largest CSS/JS files under Sources → Coverage, third-party domains (Sources → Page), and other performance issues like when fonts are preloaded but aren’t being used (learn how to open Chrome Dev Tools).

CLS Debugger

View a GIF of your site’s layout shifts (CLS) on mobile/desktop.

Wordfence Live Traffic Report

View bots hitting your website in real-time (great for checking whether bad bots are hitting your website and consuming CPU). Uninstall Wordfence when you’re done since the plugin increases CPU.

WP-Optimize

Clean your database of unused tables left behind by old plugins you uninstalled. Some plugins/modules add bloat especially when they have to process data () which you’ll see in .

WP Hive

Deep dive into WordPress plugins, discover the best plugins. Convenient, insightful analytics on your WordPress plugins.
Reviewing plugins is a very time-consuming task. It is essential to have a guideline to follow to ensure all plugins are tested in the same way.
WP Hive has developed a framework to review plugins, ensuring all plugins are evaluated in the same way.
This will allow you to compare plugins against each other, moreover will enable you to compare which Plugins are suitable for your website.
WP Hive is a must-have tool for every WordPress user.
WP Hive shows a plugin’s impact on memory usage + PageSpeed Insights:
Download the chrome extension here

Core Web Vitals

There are 3 main parts to core web vitals: LCP, TBT, and CLS.

Largest Contentful Paint

Find your largest contentful paint element in PageSpeed Insights and optimize it. This is usually a background image showing across your website. Just like you would optimize any image, you would make sure it’s compressed, has proper dimensions, uses WebP, served from a CDN, preloaded, and excluded from lazy load since it loads above the fold.
Largest contentful paint wordpress element - background image

Total Blocking Time

View files causing blocking time in your “avoid long main-thread tasks” and “reduce impact of third-party code” report. This is often caused by JavaScript either on your website or from third-party code. Hosting third-party code locally (fonts, analytics, etc) and deferring + delaying JavaScript should help. You can also try reducing JavaScript with minification, asset unloading plugins like Perfmatters, and avoiding JavaScript-heavy plugins.
Main-thread blocking time

Cumulative Layout Shift

Use to view a GIF of shifting elements on your website. It’s usually caused by fonts, animations, CSS, images and iframes without specified dimensions, or not reserving space for dynamic content (i.e. advertisements).
CSS – most cache plugins have a setting for asynchronous CSS (optimize CSS delivery in WP Rocket or load CSS asynchronously in LiteSpeed Cache). Try disabling it completely, making sure , or set a fallback critical CSS using a .
Fonts – if PSI recommends “ensure text remains visible during webfont load” in your report, it’s probably from FOIT (flash of invisible text). To fix this, host fonts locally, edit your font’s stylesheet, then add the . Many plugins and page builders have a font-display: swap setting (Elementor, WP Rocket, LiteSpeed Cache, etc).
Images/iframes – specify dimensions (WP Rocket + LiteSpeed have a setting to add missing image dimensions) or manually view your image’s HTML and add a width/height.
Animations – if using animations, use the CSS transform + translate properties to use animations without causing layout shifts, but I don’t recommend them in the first place.
Ads + dynamic content – reserve space for ads and other dynamic content by specifying dimensions using . Otherwise, they can cause other content to move around.

Hosting

Hosting is the , but everyone’s an affiliate (including me) and there are shady things happening in Facebook Groups.
Many Groups like WordPress Hosting and WordPress Speed Up are moderated by several SiteGround employees and affiliates who remove negative posts about SiteGround and ban those people.
Other Groups like WP Beginner are only interested in affiliate commissions and recommend crap hosts. is one of the only Facebook Groups not controlled by the same group of people and is the one I recommend joining to get truly unbiased feedback.

SiteGround

Slow TTFB reported by and treats customers unfairly by banning accounts, limiting the number of websites on each plan (they reversed this), increasing prices twice, reducing/hiding support, enforcing CPU limits that force you to upgrade, and replacing cPanel with Site Tools weeks after cPanel increased prices. They’ve sacrificed quality for profits ( as well). The community manager (Hristo) is an admin for the WordPress Speed Up Facebook Group and their (sec. #9) forbids you from using SiteGround’s trademark in bad reviews. Unethical, not fast, and many documented issues which are supposedly not their fault.

Hostinger

They only include 2 CPU cores on their WordPress hosting plans with . They also write fake reviews which was admitted to by Hostinger’s CEO, Arnas Stuopelis. Their employees were banned from the WordPress Hosting Facebook Group after voting for themselves in multiple Facebook polls. Up until about 2018, Hostinger employees would monitor Facebook Groups, Twitter, and other social networks, then trick people into buying Hostinger by posing as customers whenever people asked for hosting recommendations (without disclosing they’re an employee).

A2 Hosting

Other than , A2 is alright. The reason I don’t recommend them is because they only use LiteSpeed on higher plans and include less CPU cores/RAM than NameHero. So unless you need a data center in Asia (A2 has one but NameHero doesn’t), there’s no reason to use A2 over NameHero.

Newfold Digital Brands

Bluehost, HostGator, and are controlled by the same parent company. It was EIG but now they’ve transitioned into Newfold Digital who also has ties to WP Engine, GoDaddy, Yoast, and StudioPress. EIG and Newfold Digital’s acquisitions have a long history of running brands into the ground. It’s widely known they offer low quality hosting with overcrowded servers.

Shared Hosting

Any shared hosting will result in a slower TTFB/website because it lacks since you’re sharing servers with hundreds of other websites. Cheap hosting typically uses cheap hardware which will also result in a slower TTFB.

Vultr High Frequency

One of the most popular cloud hosts in Facebook groups and who I use. Vultr HF has fast CPU clock speeds + compared to shared hosting with slower SSDs. You can get Vultr HF through Cloudways or buy it and connect it to a control panel like RunCloud or CyberPanel. If using Cloudways, I recommend FlyingPress / WP Rocket over their Breeze plugin and Cloudflare / BunnyCDN over CloudwaysCDN. They also use Object Cache Pro/Redis, monthly pricing (no high renewals), scale as you wish, and a .

LiteSpeed

Fast/efficient server which uses the LiteSpeed Cache plugin + QUIC. includes more CPU cores/RAM for cheaper compared to /
. They use NVMe on higher plans (unlike Hostinger) and LiteSpeed on all plans (unlike A2). They have better uptimes/support if you look at their and TrustPilot reviews as well as standard cPanel. I’m not sure why people use Hostinger over NameHero when NameHero gives you more server resources, better uptimes + support, and you don’t have to sign up for a 4 year price trap like you do on Hostinger. Maybe because they only have data centers in the US + Netherlands. If you have the budget,
and JohnnyVPS (by WP Johnny) also use LiteSpeed and are solid picks.

Google Cloud C2

Kinsta and WP Engine are the only mainstream hosts that use which are faster than SiteGround’s Google Cloud N2 machines. Of course, Kinsta is the better choice, but you need to be careful with PHP worker limits.

DNS

GoDaddy and NameCheap have a slow DNS (check ).
If you bought your domain through them, your DNS will also be hosted there. Both offer a premium DNS (because they know their free DNS is slow and causes latency).
Instead, just use Cloudflare for your DNS which is free and much faster with lower latency.
Even if you don’t use Cloudflare for your CDN, their DNS is faster than the slow DNS from GoDaddy + NameCheap.
To switch your DNS to Cloudflare, sign up for a free account, add your website, and Cloudflare will scan DNS records then provide you which you’ll change in GoDaddy or NameCheap.
That’s it! Cloudflare has other performance features covered in the .
Cloudflare dns records
Change nameservers to Cloudflare, scan DNS, and use “Proxied” to activate the CDN

Removing Bloat

Suppose you haven’t heard of it yet. In that case, bloat is the act of loading your WordPress site with unnecessary features and functionality. This can lead to your site taking too long to load, storing unnecessary data, and in extreme cases, crashing your site.
WordPress bloat is becoming more and more of an issue:
Plugin developers try to cram more and more features into a single plugin and often at times you can end up with multiple plugins that do the same thing. I believe plugin developers should stick to one core feature and build it really well instead of trying to value add more features. Make them lightweight and keep them simple, without trying to add all the pretty UX/UI designs and trying to re-style the admin area also.
Is WordPress Core bloated?
Generally, speaking the WordPress Core itself isn’t bloated, the code is well written, and the developers are doing a great job keeping it up to date. Bloat often comes down to the plugin and themes you install, mismanaged content and settings.
How do I reduce WordPress bloat?
Removing bloat can free up server resources and CPU usage.
It’s best to go through your settings and disable all functionality not being used in your :
Theme settings
Plugin settings
Hosting settings
Also, any background processes that consume high CPU.
You can also do this by using and adding manual code snippets or installing plugins like Perfmatters and Asset CleanUp to assist.
Example settings and suggestions:
Disable heartbeat
Avoid bloating (themes & page builders) and replace them with lightweight ones like GeneratePress.
Delete unused media files.
Delete unused themes and plugins. (Including the default themes)
Disable tracking in plugins.
Disable any modules you’re not using within plugins, themes and page builders.
Replace the WP cron with real cron jobs.
Limit post revisions to 3-10max.
Regularly clean your database and perform deep cleans with plugins such as WP-Optimize.
Disable or restrict comments and protect your blog/forms from comment spam.
Remove jQuery Migrate if your plugins don’t depend on it.
Disable other unused items. (CSS, JS, HTML, Tracking, Chat widgets) Perfmatters or Asset CleanUp do a great job at this.
Disable unused features in your hosting account. (E-mail, DNS, FTP, etc)

[You can download our complete checklist here]
Bloat is anything on your website you don’t need.
This can be admin notifications, old post revisions, unnecessary tasks running in the background, database bloat, or heartbeat, autosaves, and cron jobs running too frequently.
Removing bloat is good because it usually reduces CPU usage and frees up server resources.
Most “bloat” can be disabled using Perfmatters, Asset CleanUp, or dedicated bloat removal plugins like Disable WooCommerce Bloat, Widget Disable, and Unbloater.
Controlling the Heartbeat API and limiting post revisions can be done with a simple line of code.
You should also go through your theme/plugin/hosting settings and disable all functionality you don’t need.
Avoid bloated themes.
Delete unused media files.
Delete unused themes/plugins.
Disable usage tracking in plugins.
Disable unused features in plugins.
Replace WP cron with real cron jobs.
Limit post revisions (5-10 is sufficient).
Deep clean your database with WP-Optimize.
Protect your blog/forms from comment spam.
Remove jQuery Migrate if your plugins don’t use it.
Heartbeat control (120s frontend, 0s backend, 60s editor is fine).
Disable unused features in your hosting account: email, DNS, FTP, etc.
Perfmatters-features

Content Delivery Network (CDN)

A Content Delivery Network helps speed up your website by storing your assets and code on multiple edge servers in different parts of the globe. The cache (Your website) on the edge server is delivered closest to the user visiting your website.
We have always seen a significant increase in website speeds using CDN.
There are a couple of different approaches we recommend:

Automatic Platform Optimisation (APO)

This is a service provided by companies like Cloudflare and is definitely worth spending an additional $5/month for their . This approach is used to cache images, web content meaning you have a full-page cache delivered from their edge server.

Traditional CDN

Cloudflare
Is fine for most sites but... if you are serious about improving speed paying a little extra for a traditional CDN such as KeyCDN or Bunny CDN is a better option.
Typically you will also be able to set a custom subdomain like or this will also help with SEO and give you more control.
Bunny CDN
This is a turn-key, ultra-fast content delivery network that puts you in control of your site performance.
They handle the heavy lifting so you can focus on making visitors happy and moving products.
KeyCDN
This is the fastest and straightforward way to deliver content to your users.
There are no long term contracts, no setup fees, or any other hidden costs. It only takes a few minutes to get up and running with KeyCDN!
Cloudflare for most sites, or Cloudfront for a more consistently performant CDN, or QUIC.cloud CDN on LiteSpeed.
Google Cloud CDN is good but only available if you’re using Google Cloud hosting (i.e. Closte).
I don’t recommend StackPath (it’s used by RocketCDN, CloudwaysCDN, and quite a few others) because it’s usually not as fast as other CDNs.
If you check , most CDNs are close in speed, but StackPath has had some awful months.

CDN
Price
PoPs
Rating
2
$.01/GB - $.06/GB
3
Free on LiteSpeed
4
Varies where purchased
N/A
5
Free 50GB/yr
6
$.01/GB - $.11/GB
7
Varies where purchased
8
Hosting CDN
N/A
N/A
N/A
9
Free
Multi-CDN
10
$9.99/mo
11
Free
Unknown
There are no rows in this table
Best cdn poll
Source: WP Speed Matters Facebook Group
Best cdn for wordpress
Source: WP Speed Matters Facebook Group
Cloudflare – Cloudflare offers a free DNS, CDN, and other free/paid optimizations in their dashboard. Some hosts have an option to activate Cloudflare in the cPanel/dashboard, but you should login to your actual Cloudflare dashboard and take advantage of the features in there.
DNS – change nameservers and use instead of GoDaddy/NameCheap’s DNS (step 3).
CDN – fine for most sites but try other CDNs and test results against Cloudflare. Enable Cloudflare CDN by changing domain name from DNS only to Proxied in the DNS settings.
Minify – minifying with your CDN is faster than cache plugins (it’s closer to end users).
HTTP/3 – enables HTTP/3 if your host supports it (test this using an ).
Bot fight mode – block bad bots from hitting your site which can help reduce CPU.
Brotli – faster than GZIP and provides lossless text compression when it’s supported.
APO – dynamic full page caching without having to rely on page rules which can sometimes be buggy. WP Rocket and most speed plugins aren’t compatible with APO yet.
Page rules – popular pages rules are a cache everything rule, then optimizing the wp-admin by disabling cache/performance features while setting the security level to high.
Hotlink Protection – saves bandwidth by stopping people from copying images on your website and pasting it on theirs (most hosts/cPanel have an option to disable hotlinking).
Firewall – great for blocking specific bots, countries, and Amazon network IPs if you’re running AdSense and have experienced ad limit issues, since Amazon bots can click ads.
Argo – use Cloudflare’s real-time network intelligence to route your traffic across the fastest, most reliable paths from the origin to Cloudflare’s data centers (see ).
Workers – write code and deploy it on Cloudflare’s edge servers (you can try workers using their ). Workers are serverless with automatic scaling + load balancing.
Image resizing + polish – most image optimization plugins already take care of image resizing, compression, and WebP, but will you have better control of it with Cloudflare.
Crawler Hints – allows crawlers to time crawling and avoid wasteful crawls.
Early Hints – caches link headers using preload/preconnect and uses 103 early hints.
Railgun – speeds up dynamic content for visitors far away from your origin server.
Rocket Loader – loads JavaScript (including third-party JavaScript) asynchronously to make them non-render blocking, but it can also break your website, so test it carefully.

BunnyCDN – paid CDN (same one I and WPCrafter use) and highly recommended in Facebook Groups. Fast, affordable, and consistently performant. You only pay for the zones you use. It’s a push only CDN so visitors won’t experience slow pulls. Their are easy: sign up, create a pull zone, select your zones, and you’ll be provided with a CDN URL. Add the CDN URL to both the and your cache plugin (i.e. WP Rocket → CDN → CNAME field) which is recommended by BunnyCDN’s support team to serve more assets from the CDN.
QUIC.cloud – CDN built specifically to work with LiteSpeed. In the LiteSpeed Cache plugin, request a domain key, activate QUIC.cloud, and use this by NameHero to set it up.
Summary
If visitors are local only, you don’t need a CDN.
Choose a fast CDN (Bunny, QUIC, Cloudfront).
CDNs offload resources to data centers and reduce CPU.
To activate Cloudflare’s CDN, change DNS only to Proxied.
Take advantage of other speed features when using Cloudflare.
Be careful with Cloudflare Rocket Loader (it can break your site).
If using Cloudflare + WP Rocket, configure the Cloudflare tab for compatibility.
If using a CDN URL, view your source code to make sure assets are served from it.
It’s faster to minify HTML/CSS/JS in your CDN, then disable these in cache plugins.
Check cdnperf.com to see performance, uptimes, and other reports of popular CDNs.
Some image optimization plugins (i.e. Flying Images) serve images from a CDN for free.

Fonts

Web-Fonts: We explain why you should go easy on them and Don’t Use Too Many. , about 80% of mobile and desktop sites use web fonts, showing their popularity.
Yet, their performance aspects are often overlooked.
Why Should You Care About Font Performance?
Webfonts can be a great way to add style to your site without loading an additional font file. But if you’re not careful with which ones you choose, it could slow down page loading times or even cause problems for users who don’t have access to those particular fonts.
Optimising fonts isn’t as simple as clicking on an option in your cache plugin.
How Web Fonts Impact Page Performance.
On mobile, web fonts make up a sixth of the page’s weight. They affect how long you have to wait for your page to load, and many websites use more than they need.
You can see how long it takes to load, the number of requests, and whether or not they’re being served from an external source using GTmetrix.
35.8 kB
Page with Web Font Loading…
Quick tips on fixing font performance
Avoid .ttf and use WOFF/2 instead, which is supported by 99% of all browsers and faster.
Don’t Use Too Many Web Fonts – Pick a few weight variations, normal, bold, etc.
Avoid plugins that add extra fonts
Host web fonts on your server or
Preload your fonts ()
Check Waterfall > Fonts to see font files/sources/load times.
24.6 kB
Page with System Font Loading…
What are the default fonts?
Web-Safe Fonts (aka System Fonts) are already installed on most devices and load faster than Web fonts due to the widespread availability on all devices.
However, you do make a sacrifice on visual appearance with and are limited in variety compared to Web Fonts.
Sans-serif
Serif
Monospaced
Fantasy
Script

What is a Web Font?
Web fonts are fonts that are typically served from a 3rd party server and not a users local machine. You may also know them as “custom fonts”.
Common Web fonts hosted by a third-party service are:
.
Which font is best for WordPress?
For a Blog, we would recommend using “” and utilise the fonts on your computer. Instead of fetching a web font.
System fonts have become more visually appealing over the years and are the easiest for most people to ready.
System fonts are used by big names like:
Medium
GitHub
Ghost
The WordPress Admin.

When it comes to finding the best font for a WordPress website, you may want to add a little more class. So in this case, it would be recommended you either self-host Google Font or serve it from a CDN.
Your GTmetrix Waterfall chart shows your font load times, number of requests, and whether they’re being served locally or from an external source. Start by hosting fonts locally to prevent third-party requests from fonts.gstatic.com (self-hosted fonts are faster and easier to optimize).
Host fonts locally (use
or ).
Elementor also has an option to host fonts locally.
Divi has a few font optimizations in the performance settings.
.woff is faster than .ttf. (.woff2 isn’t supported by all browsers).
Be minimal with the number of font families, weights, and icons.
If fonts are served from third-party domains, preconnect the domain.
System fonts are the fastest font types if it’s supported by your theme.
Serve fonts from your CDN (you can also try using ).
Check your Chrome Dev Tools report for any errors with preloaded fonts.
PageSpeed Insights tells you which fonts to preload in “preload key requests.”
Use font-display: swap to fix “ensure text remains visible during webfont load.”
Avoid plugins that add extra fonts (serve them from your theme, not with plugins).
Local fonts

Videos

Embedded videos are usually the heaviest element on a page. Just by lazy loading them and replacing iframes with preview images, you can easily shave a couple seconds off it’s load time.
Lazy load videos – done through cache plugins, Perfmatters, or WP YouTube Lyte.
Replace YouTube iframes with preview images – the iframe (which is the heaviest element of the video) is only loaded once your visitors actually click the play button.
Preconnect – you could theoretically preconnect to youtube.com, i.ytimg.com (thumbnail), and Roboto which is currently used as the font in the YouTube player. But test your results and make sure the preconnect doesn’t have a negative impact on speed.
Offload media files to third-party services – if you’re using self-hosted videos, use a third-party service to offload them to something like Amazon S3 or DigitalOcean Spaces.

Images

There are many ways to optimize images.
Images have a major impact on page load speed which is apparent in GTmetrix and PSI such as (properly size images, defer offscreen images, efficiently encode images, and WebP).
Keep in mind – there is a difference between caching plugins and image optimization.
Properly size images – Try resize and upload to correct image size to begin with. Resize large images to suit the width of your blog main container size. There are plugins to correct oversized images and resize them automatically but it’s best to stick to doing this before uploading.
Lazy load images – WordPress 5.5 has lazy load built-in and there are many other speed plugins that also offer this. 3rd party plugins should deactivate the WordPress native lazy loading feature. For best results you should exclude above the fold images from lazy load. These images are critical and will actually seem slower to visitors when lazy loaded. This is called “defer offscreen images” in Page Speed Insights.
WebP – use a WebP plugin (or your image optimization plugin if supported) to convert images to WebP which is suppose to be faster and better quality then JPEG/PNG. Enable WebP Cache if you use WP Rocket. This is called “serve images in next-gen format” in PSI.
Losslessly compress images – ShortPixel, Smush, TinyPNG, and Photoshop are popular methods. The compression level really depends on what you’re willing to tradeoff in terms of quality vs. speed (Lighthouse uses 85%). This is called “efficiently encode images” in PSI.
Combine Images Using CSS Sprites – a CSS sprite combines multiple small images into 1 single image so it creates 1 request instead of multiple (using a CSS sprite generator). This is good when showing multiple logos (“clients logos” or “featured on”). Only do this with small, decorate images since it can impact SEO if you do it with regular images.
Serve images through your CDN URL – CDN URLs can be used to serve images. Cloudflare doesn’t use a CDN URL. If you’re using a CDN URL but images aren’t being served, enable the CDN Rewrite option if using Perfmatters.
Serve images with correct dimensions – add a width/height attribute to the image’s HTML. WP Rocket has an option to add missing image dimensions which should fix this.
Adaptive Images – Shortpixel adaptive images plugin to serve smaller images to mobiles.
Disable Hotlinking – stops people from embedding your images on their website consuming your bandwidth and costs you money. Prevent this with Cloudflare’s hotlink protection, WP Rocket’s disable embed setting, or some hosts have a disable hotlink option. Adding your watermark logo to images can also discourage people from hotlinking.
Remove EXIF data from images – removes unnecessary data such as date, time, location and camera settings when taking pictures.
Downgrade Quality For Slower Connections

Plugins

Some plugins negatively impact PageSpeed by adding CSS/JavaScript/fonts to the frontend, while other plugins increase memory usage by running resource-intensive background tasks. Even certain plugin features can add database bloat which can be measured in WP-Optimize. View this list of 75+ slow plugins and use tools like , , and .
Find slow plugins in Query Monitor.
Avoid jQuery-heavy plugins when possible.
Use WP-Optimize to remove unused tables from old plugins.
Use plugins with modular design and disable unused features.
Use WP Hive to see whether a plugin is slow before installing it.
Avoid plugins that run heavy background processes or add third-party code.
Do things manually without plugins (creating headers, adding JavaScript, etc).
Slow wordpress plugins list
Lightweight Alternatives
Backups – UpdraftPlus.
Social Sharing – Grow Social.
SEO – Rank Math or SEOPress.
Sliders – Soliloquy or MetaSlider.
Comments – native comments in CSS.
Gallery – Gutenberg Gallery or Meow Gallery.
Translate – MultilingualPress, Polylang (not WPML).
Analytics – Google Analytics and Search Console (no plugins if possible).
Security – no security plugin (Cloudflare, your hosting firewall, limit login attempts, strong password, latest PHP version, disable XML-RPC, rename your wp-login page).

Query Monitor – most popular way to find your slowest plugins. Install it, view any page on your website, then go to Queries → Queries By Component to view all your slowest plugins.
WP Hive – Chrome Extension that lets you browse the WordPress plugin repository and see whether plugins will impact memory usage and PageSpeed scores. However, the extension doesn’t always take into account when plugins are loaded on the frontend. So even if it says Elementor doesn’t impact PageSpeed, when you actually build pages using Elementor, it does.
Wp-hive
WP-Optimize – find specific plugins and plugin features/modules that cause database bloat. Very common with plugins that have to collect data and run intensive background processes.

Caching

What cache plugins you use and how you set their configuration options are highly influential factors.
WP Rocket and LiteSpeed are currently the most popular caching plugins (or SG Optimizer if using SiteGround).
WP Rocket has such high ratings because it comes with features like Speed Optimizations, making them faster than most other caching plugins.
Suppose you don’t know whether your cache plugin comes with any specific optimizations. In that case, you’ll probably need one or more alternatives to get the same performance as WP Rocket and LightSpeed.
Here are some recommended plugins for WordPress:
Which cache plugin you use and how you configure the settings are high impact.
Premium cache plugins are usually maintained better and have been updated for core web vitals, while free plugins (W3TC WPFC, WPSC) can lack features.
If you’re using a free cache plugin, you will need to learn which features your cache plugin doesn’t come with, then install extra plugins.
For example, you may need to install Flying Scripts to delay JavaScript, CAOS Analytics to host GA locally, WP YouTube Lyte to optimize videos, and WP-Optimize to clean your database.
These features are already built-in to most premium cache plugins which means more optimizations to your site (and usually better results), yet less plugins you need to install.
WP Rocket is the gold standard unless you’re using a LiteSpeed server (then use LiteSpeed Cache) or SiteGround (then use SG Optimizer). FlyingPress by Gijo Varghese is solid but is in the early phases.
NitroPack is because it moves elements off the main-thread, giving you better PageSpeed scores, but not improving load times as much as the scores say they do.
Cache Plugins
0
Cache Plugin
Rating
Active Installs
Server Caching
CWV
Difficulty
Price
1
4.8/5
2M
Average
Free on LiteSpeed
2
1.9M
x
Easy
$49/year
3
N/A
N/A
x
Easy
$60/year
4
4.4/5
1M
Easy
Free on SiteGround
5
4.4/5
1M
x
x
Hard
Free
6
4.9/5
1M
x
x
Easy
Freemium
7
4.3/5
2M
x
x
Easy
Free
8
3.8/5
100K
x
Easy
Free on Cloudways
9
3.8/5
20K
x
x
Average
Freemium
10
4.2/5
90K
x
x
Easy
$17.50/mo
There are no rows in this table
Best cache plugin wordpress
Source: WordPress Speed Up Facebook Group
Best cache plugin wordpress oxygen
Source: Oxygen User Group
Use Multiple Caching Layers
There are many . Cache plugins support browser cache, then you have object cache (Redis/memcached), and some plugins (like LiteSpeed Cache and SG Optimizer) use server-level caching which is faster than the file-based caching done by most cache plugins. Your host/CDN likely has other layers as well (Varnish)… cache plugins are just one part of it.
Opcode cache – usually done by your host.
Browser cache – usually done by your cache plugin.
HTTP accelerators – done by your host (Varnish/FastCGI).
Object cache – memcached for small websites, Redis for large/WooCommerce sites. See your host’s instructions for using Redis (you may need the Redis Object Cache plugin). In cPanel, you would activate memcached or Redis under Select PHP Version → Extensions, then many cache plugins like LiteSpeed + W3TC have an option to use memcached/Redis.
Cloudflare full page cache – caches full pages instead of only static files. Can be used with a cache everything page rule, WP Cloudflare Super Page Cache plugin, or in SG Optimizer.
Hosting-application-services
Summary
Use WP Rocket, LiteSpeed Cache, FlyingPress, or SG Optimizer.
LiteSpeed Cache + SiteGround Optimizer use server-level caching.
Use my tutorials on WP Rocket, LiteSpeed Cache, SiteGround Optimizer.
Memcached is usually for smaller sites, Redis is better for larger websites.
Some hosts/CDN have a setting to set the cache expiration which you can try setting to 180 days to “serve static assets with an efficient cache policy” to fix this PageSpeed item.

Slow Plugins


Speed Plugins

A list of recommended . You don’t need all these since many cache/optimization plugins already include some of these features. Otherwise, you might consider a few of these.
Table 3
0
Asset CleanUp
CSS/JS
4.9/5
Freemium
Price
1
CSS/JS
Free
2
CSS/JS
Free
3
Block Bots
Free
4
CDN
Paid
5
Cache
Paid
6
Security
Free
7
Bloat Removal
Free
8
Resource Hints
Free
9
CSS/JS
Free
10
Cache
N/A
Paid
11
Bloat Removal
Free
12
Block Bots
Free
13
Cache
Free
14
Fonts
Free
15
Images
Free
16
CSS/JS
N/A
Paid
17
Resource Hints
Free
18
Tools
Free
20
Cache
Free
21
Images
Freemium
25
Bloat Removal
Free
27
Cron Job
Free
28
Database
Free
29
Cache
Paid
30
Video
Free
31
Block Bots
Free
32
Bloat Removal
Free
There are no rows in this table

Optimization Plugins

ShortPixel is a one-stop image optimizer that decreases image sizes and dramatically enhances page load speed. Converting your existing images will automatically generate WebP images from them, and your site will be faster, more lightweight.
ShortPixel Free & Paid image optimisation service not only make your images load faster and save bandwidth. It uses its super-fast CDN to serve your images from a location closest to your site visitor, and it compresses your images using the latest techniques.
Ideal Plugin Settings
Note: These are just our recommended settings, which should suit most general use cases, but everyone has different sites, hosting and plugins installed. Remember always backup, test and check before making significant changes to your site. Ideally using a staging site where possible.
Share
 
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.