Note: It is important to know that your Joomla setup may require any of the plugins disabled below, so it’s a good idea (make that a mandatory idea) to test the whole website during off hours or on a test server each time you disable a plugin.
As a followup to yesterday’s post, which concluded that Joomla 4 has a slight performance edge over Joomla 5, we thought: “What if we disable unnecessary plugins in Joomla 5? Will things get better? And if yes, by how much?”
We thought of a methodology to test, and we quickly came up with one. What if we disable unnecessary plugins one by one and see how much performance gain we get after each “disable”?
We used a test Joomla 5 website (the same test Joomla 5 website from yesterday, where we loaded the sample data), joomla502.com (this is an internal domain only accessibly using a hosts file). We first measured the performance of the website before disabling any plugin using the ab tool in the linux shell…
ab -c 10 -t 10 "http://www.joomla502.com/"
…and we got the following Time per request: 336.035 milliseconds.
We then started disabling plugins one by one. Here are our findings (note that once we disable a plugin we leave it disabled, e.g. we don’t re-enable a plugin and then disable the next one):
-
Disabling all the Fields plugins: This group of plugins consist of the following:
- Content – Fields
- Fields – Calendar
- Fields – Checkboxes
- Fields – Colour
- Fields – Editor
- Fields – Imagelist
- Fields – Integer
- Fields – List
- Fields – Media
- Fields – Radio
- Fields – SQL
- Fields – Subform
- Fields – Text
- Fields – Textarea
- Fields – URL
- Fields – User
- Fields – Usergrouplist
- System – Fields
You may be using the Fields plugins so this step might be moot, but if you’re not, then disabling the plugins is a good step, as the Time per request will drop to 313.774 milliseconds – a considerable improvement over the default load time (6.62%) with just a few clicks!
-
Disabling all the Schema.org plugins: These plugins generate the schema.org HTML tags in the code. They are useful, but if you’re not using them, then you can just disable them (we believe these should be disabled by default, as this is a new Joomla feature). Here are the plugins that should be disabled:
- Schema.org – BlogPosting
- Schema.org – Book
- Schema.org – Event
- Schema.org – Organization
- Schema.org – Person
- Schema.org – Recipe
- Schema.org – JobPosting
- System – Schema.org
Disabling them reduced the Time per request to 304.954 milliseconds (2.81% over the previous step). Not bad!
-
Disabling the System – Passkey (Passwordless) Login plugin: The passwordless login is a practical but seldom used feature that allow users to login without entering a password (using fingerprint, face recognition, dongle, etc…). Disabling this plugin reduced the Time per request to 302.847 milliseconds and we saved the system from loading 16 files!
-
Disabling the System – Guided Tours plugin: If you want to know, this plugin is responsible for the guided tours feature on Joomla, that is mainly available in the backend (the “Take a Tour” button at the top), and that almost nobody uses, and that loads a few unnecessary files on every page on the frontend. Having said that, we think that this is a good feature to have, especially for a custom component where you want to provide an explanation for the end user on how to use the component. The Time per request was reduced to 297.713 milliseconds – a minor but welcome improvement. In addition, we saved 5 files from being loaded.
-
Disabling the Action Log plugins: This set of plugins consist of:
- Action Log – Joomla
- Privacy – Action Logs
- System – User Actions Log
- Task – Delete Action Logs
These plugins are mainly responsible for recording user actions in the backend – so, disabling them not only lessens the number of files loaded and enhances performance, it will also prevent the Joomla website from performing unnecessary writes to the database (mostly during peak hours) which can negatively impact performance. The Time per request shot up slightly to 299.002 millieseconds – still, we believe that on real websites, these should be disabled if the action logs are not monitored by anyone, as those unnecessary database writes will throw additional stress on the server especially during peak hours.
-
Disabling the Behaviour – Backward Compatibility plugin: This plugin is responsible for loading libraries that are used for backward compatibility. Disabling this plugin reduced the Time per request to 286.032 milliseconds – a welcome (4.33%) improvement over the previous step. We also reduced the number of loaded files by 4.
-
Disabling miscellaneous plugins: We then disabled miscellaneous plugins, which are:
- System – Debug
- Content – Email Cloaking (really useless plugin in this day and age)
- System – Task Notification
- System – Joomla Accessibility Checker
Doing the above didn’t result in any improvement, but we are certain that, with enough traffic and content, disabling unnecessary plugins will yield non-negligible positive performance results.
So, how much improvement did we get in total just by “clicking”? Well, let’s see, we started with 336.035 milliseconds and we ended with 286.032 milliseconds, a whopping 14.88% improvement, and this is only with a few minutes of work! But there’s more, much more serious optimization – and if you’re curious, just contact us. You will be amazed at what we can do for a relatively small price!