All WordPress speed optimization tutorials advise to reduce the number of plugins for improving website performance. It is logical step for reducing code size and processing time for any website.
How do I reduce the number of installed WordPress plugins?
In this tutorial I will show you how to reduce plugins on the WordPress website. I am not talking about removing unused plugins. Instead I will uninstall used plugins by supplementing their features with other existing plugins or WordPress core functionality.
You will learn 5 different ways to reduce the number of plugins in WordPress. Each way is used on the current website veppa.com so you will learn exactly how I applied this strategy.
Before starting, let’s see what is achieved by reducing the number of plugins on the WordPress website.
Table of Contents
Removed 5 plugins and improved WordPress performance by 61%
Here are numbers for the performance improvement after removing 5 plugins from my WordPress website. Total number of plugins reduced from 16 to 11.
- 61% reduced memory usage
- 45% speed up page generation time
- 34% less PHP code used
Those are great results for removing plugins by replacing their features by WordPress core or other active plugin.
Here is a list of all plugins with resource usage data like number of PHP code lines, memory usage and their effect on page generation time. More code increases CPU and memory usage as well as page generation time.
Red lines are plugins that will be removed. I explain how features of each removed plugin are supplemented without much of their functionality.
After removing plugins we reduced plugin memory usage by 61% from 6.8 MB to 2.7MB. This is memory usage by plugins only without counting memory consumption of WordPress core.
For comparison WordPress 6.2.2 without any plugin uses 3.38MB system memory and pages generated in 0.4 seconds.
Memory usage and effect of page generation time for each plugin is taken from https://testplugins.com website. Those numbers are for freshly activated plugins without adding any records to them or even without completing initial plugin setup.
For example, the Rank Math SEO plugin requires initial setup after activating. Measuring performance of bbPress plugin is not accurate if you have not created any Forums, Topics and Replies in the forum. So those memory and time numbers are considered as minimal for each plugin.
Page generation also may differ depending on your web hosting. For example on shared WordPress hosting providers, plugins will load much slower compared to managed WordPress hosting solutions that use more resources like multi CPU servers.
Let’s see how we can reduce WordPress plugins.
5 ways to reduce WordPress plugins
We listed multiple ways to reduce plugin usage on WordPress website with our use case. You will learn how we used each strategy and how many plugins with how much code were removed from our website. You will find some creative ways of using features of core WordPress and other plugins.
Use external service instead of plugins
External web services have plugins to connect with WordPress websites. Some of those services can be used stand alone without any plugins.
We can safely remove those plugins connecting external web services if they are not directly modifying content or being controlled through your website.
Remember that external services are always fast especially when they are not connected to your WordPress website. Because they use their own servers for processing and presenting your data.
We have 2 plugins that use external web services. Let’s see whether they can be removed or not.
- Site Kit by Google → remove (use Google Search Console)
- Super Page Cache for Cloudflare → keep
Site Kit by Google — We removed plugins to improve WordPress performance. It does not rely on WordPress and can be removed safely.
Analytics and Adsense code were added to our website by other plugins even before using Site Kit. We were using the reporting feature of Site Kit to see a summary of SEO performance reports. It is also good to see ranking keywords for each blog post.
Plugin uses our WordPress server resources for retrieving reports from Google Search console, Analytics, Adsense and PageSpeed.
After removal of Site Kit plugin we use web services by google on their own website. This way we access all necessary SEO performance information directly on Google Search Console as we were using before installing the plugin to our WordPress website.
Super Page Cache for Cloudflare – is not removed because we cannot use the caching features of Cloudflare CDN for dynamic WordPress websites without this plugin. Plugin controls which pages to cache and when to bypass cache for logged in users.
Removing Site Kit by Google plugin slimmed down our website by more than 17k lines of PHP code.
Switch from multiple similar plugins to single plugin
Features of multiple plugins can intersect. Instead of using features from multiple different plugins we can choose one main plugin and remove others. First determine the main plugin that covers functionality of other plugins. Then migrate data to main plugin and remove unused plugins.
This is fun because we need to think a little out of the box. We have 3 different plugins for different purposes that can be switched to a single plugin.
Let’s see what each plugin does and how to determine the main plugin.
- Redirection – monitors 404 errors and provides page redirection features. (301, 302, 307 etc.) Counts and logs number of redirects and 404 errors.
- Pretty Links – allows to create pretty (readable and rememberable) links for long affiliate links. Counts and redirects pretty links to websites with long affiliate URLs.
- Download Monitor – Allows to create custom links for file (zip, pdf) downloads and counts how many times each file downloaded. Custom link is used to count downloads and redirect to actual file for downloading. (Check EKTS software download page for example)
All 3 plugins have a similar feature of creating custom links, redirecting and counting each time a redirect happens. Main plugin here is the Redirection plugin for WordPress. It has additional feature 404 page monitoring which is not present on other 2 plugins.
Our custom links on Pretty Links are prefixed with
/go/ and on Download Monitor with
We moved/migrated all records keeping the same URLs. Less than 20 URLs in total. Then safely deactivated and uninstalled those plugins.
In case you want to prevent hotlinks for software downloads then the Redirection plugin has a feature to check referrer. Users will download only if the download link is clicked from your website. When a download link is clicked from another website, the plugin will redirect it to the Software page on your blog.
You can configure it by selecting Match URL and Referrer option for redirects.
Removing the Pretty Links plugin slimmed down our website by more than 7k lines of PHP code.
Removing the Download Monitor plugin slimmed down our website by more than 21k lines of PHP code.
We kept the Redirection plugin which has 8k lines of PHP code. Apart from its main purpose we used the Redirection plugin for WordPress to manage and count both affiliate links and software download links on our website.
78% reduction in code achieved after switching to a single plugin for use in different purposes.
Use plain HTML widget instead of plugins
When there is a simple solution that can replace complex plugin code, use it. Any HTML code can be used in a widget and will be always faster than using WordPress plugin.
Important site functionality like adding analytics or sharing widget can be achieved using HTML widget built into WordPress core. We are using an HTML widget to add a sharing button to WordPress without a plugin.
HTML widget will always be fast because it is static which does not require any computational power of your web hosting. Prefer using static widgets instead of separate plugins for WordPress.
We stopped using sharing plugins a long time ago. Removing any sharing plugin will slim down your website on average 20k lines of PHP code.
Use WordPress core feature instead of plugins
WordPress has plenty of core features that can be used instead of complex plugins. When we think about reducing plugin usage on WordPress the first thing to look at should be core functionality. WordPress core is always a fast, updated and secure solution for a website.
Most websites need a contact form for getting feedback from clients. While there are plenty of plugins for adding various forms including contact forms it may be overkill for small sites that require only simple contact form. You do not need features like payment, additional inputs, radio, checkbox, dropdown, file uploads for a regular contact form.
There is core functionality of WordPress known as comments form for every page and post. We use a regular contact form on our contact us page. All comments are held for moderation. When some client uses a comment form we get email notification. Then we can continue regular communication using our email account. This is exact functionality for regular contact form that many plugins offer.
We removed the Ninja Forms plugin and switched to a regular comment form for contacting us.
Removing the Ninja Forms plugin slimmed down our website by more than 24k lines of PHP code and reduced memory usage by 1.2 Mb.
Use custom snippets instead of plugins
Some WordPress plugins tend to be big and complex in order to cover as many use cases as possible. Having multiple features when providing solutions for particular needs is necessary for some plugins. In most cases users only use a couple features of a plugin leaving 90% of features unused.
Custom code snippets can be used to add only required functionality to your WordPress. This will eliminate use of more complex and massive plugins with unused features of 90% or more.
We use Google Adsense ads for blog monetization on some of our pages and Call to Action box on all pages to promote our content and software. This functionality was provided by “Ad Inserter” plugin.
The Ad Inserter plugin has many more features that can add advertisements to any location on the page including after certain paragraphs inside posts, on category pages, search pages etc.
Features that we use are adding advertisements with shortcode and after post. These features can be achieved with small snippets without needing a separate plugin.
We use the “Code Snippets” plugin to add custom snippets. Code snippets can be used to remove multiple plugins and replace their functionality with simple snippets.
Custom code snippets for creating custom shortcodes, adding code to header/footer, adding content after blog post can be found by googling.
We removed the Ad Inserter plugin after supplementing its functionality with custom code snippets. For comparison code snippets are in the range of 10-20 lines of code. Where the Ad Inserter is 42k lines of code.
Removing the Ad Inserter plugin slimmed down our website by more than 42k lines of PHP code and reduced memory usage by 1.5 Mb.
Why reduce the number of plugins in WordPress?
Plugins are without doubt the best feature of WordPress. Plugins allow us to add extra functionality to our website and convert it from simple blog to ecommerce, social network, job application website, business site, directory listing etc.
Plugins also adds extra features like security, SEO, performance, caching, input forms, content sharing, paid memberships, email marketing etc.
While adding all those functionalities and benefits plugins use our server resources. So having too many plugins will dramatically slow down our website.
From this case study you can see that WordPress without plugins uses 3.38Mb. 16 plugins uses additional 6.9Mb. In total WordPress with 16 plugins uses 10.28MB. Which is 3 times more than WordPress without any plugins.
Reducing number of plugins in WordPress will speed up our website in following ways:
- Reduce total WordPress memory usage. Less memory means faster page generation and more pages can be generated at the same time.
- Reduce total page generation time. Fast pages mean great user experience, lower bounce rate, better SEO.
- Smaller and faster database. Some plugins heavily use databases to store lots of additional data in the database.
- Less risk of security, bugs, conflicts with other plugins. Any of those can slow down or even break your website.
- Removes page requests added by those plugins.
Reducing number of active plugins is also one of the last solutions before switching to more expensive WordPress hosting provider with more server resources.
How to find plugins for reduction?
Look for which plugins can be replaced by WordPress core functionality, widgets, custom snippets, separate web service or other plugin which is also used on your website.
What is the optimal number of plugins for a WordPress site?
Best number of plugins is always 0. But we all know that we cannot live without plugins so try to not use more than 20 plugins in your WordPress website. Having more than 20 may slow down your website dramatically.
Do more plugins slow down WordPress?
Yes, every plugin means additional code to be executed on every page load. Plugin will use additional system memory and reduce page generation time. Which is also measured by TTFB (Time To First Byte) in most external speed measurement tools.
Do inactive plugins slow down WordPress?
Inactive plugins are not loaded with every page so they will not slow down your website. But inactive plugins can impose security risks in future. Regular update and translation checks are performed for inactive plugins as well so they still use some server resources indirectly.
Should I reduce plugins if I have super fast WordPress hosting?
With super fast WordPress hosting you may not notice much slow down when using too many plugins. This does not mean that you should not optimize your website for speed. Reducing plugins will help to reduce stress for your website and allow you to serve many more pages simultaneously. Answer is yes you should reduce plugins for any WordPress website regardless of your server speed and resources.
Also some functions like remote HTTP requests depend on remote server speed instead of your own server. So plugins with regular remove requests will always be slow regardless of server speed.
I have written an HTTP Requests Manager plugin to log all remote requests initiated by WordPress including active plugins and themes. Check it to see which plugins on your website make remote requests.
What to do if I want to reduce plugin usage without removing them?
Alternative ways to reduce plugin load is to restrict plugin execution depending on post type, URL, page type etc. Restricting plugin execution is done with Must Use (MU) plugins before loading any regular plugin within WordPress page processes. Popular plugin load managers are: Plugin Organizer , Freesoul Deactivate Plugins , Plugin Load Filter, Plugin Logic.
What is average memory usage for WordPress without any plugin?
WordPress without any plugins uses on average 3.38mb of server memory on each page load. Test done with WordPress version 6.2.2 on several pages from admin and frontend.
With a minimal number of active plugins memory usage of WordPress will quickly rise to more than 10Mb.
We reduced plugin usage on our WordPress website and removed 5 plugins. When we say reduce plugin usage it is not only removing unused plugins but also finding ways to substitute functionality of heavy plugins and then remove them.
Functionality of those removed plugins compensated in 5 different ways which are explained with examples in the current article.
- Site Kit by Google → Web service Google Search Console
- Redirections + Pretty Links + Download Monitor → Redirections plugin
- Social Share plugin → Sharing widget
- Ninja Forms → WordPress core comments
- Ad Inserter → Code snippets
At the end we were able to reduce memory usage of plugins by 61%. And what is more important after removing those plugins our website feels a lot more responsive and fast in the front end and in the admin area (backend).