Support

Admin Tools

#41832 Obsolete or unused Extensions and Plugins

Posted in ‘Admin Tools for Joomla! 4 & 5’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

Joomla! version
5.2.6
PHP version
8.2.12
Admin Tools version
Latest

Latest post by nicholas on Monday, 14 April 2025 02:10 CDT

marcw

Hello,
I was wondering if you have or know of a product that can detect obsolete or unused Extensions and Plugins.  I have been a bad boy and not religiously turned off and removed extensions and plugins that I have not been using.

I did a lot of housecleaning with the Joomla 3 to 4 migration but still have a lot of code I am unsure what to do with.  Some extensions come with multiple plugins that are optional to turn on; should they be removed?  It seems there are no tools to help identify what is unnecessary and could be removed.

It seems all I can do is turn plugins off and then test every menu item and combination.  Is there any known testing code that could "work" the site to help identify what could be removed?

I need to solve this because Google Pagespeed keeps saying our load time is too slow. At first, I thought it was due to our 1000+ images, so I compressed everything with compression that exceeded almost every other I tested, using JPEG, PNG, and WebP. Unfortunately, we still score low. We have a VPN, although shared, and use caching and CloudFlare, but the problem persists.

I figure if anyone knows of a solution or time-saving process to remove unnecessary code, it would be you. If you don't have a product now or in the works, maybe there is some AI beta testing software or Joomla-aware software.

Thank you so much for your time regarding this matter,
Marc

nicholas
Akeeba Staff
Manager

There is no such thing because "used" is a very relative, tenuous, if not outright nebulous term.

Here's a few example off the top of my head.

Let's say you have enabled the System - Backup on Update plugin we ship with Akeeba Backup. Is it used? If you do updates from Joomla's backend it does show you the option to take a backup before update, but if you don't choose to do that, or if you update via another method (third party service, CLI, upload 7 update, manual update, deploying an updated version of the site) are you using it? By one definition you do – it showing a message on the update page if you access it is the plugin being used. By a different definition, since you practically never use it, it's not used.

Is an installed module used? You could have published module instances but they might be published in unused module positions, or restricted to pages which are deleted, unpublished, or nobody visits. By one definition, the module is used – there are published module instances for it. By another definition, these module instances are never shown, so it's not used.

Is a plugin, or module included in a package but not used on your site truly "unused" when uninstalling it will break the package?

All these and many, many more questions cannot be answered with anything other than "it depends" and "you need to ask the site owner". But if that's the case, how can you possibly automate any of that?! You can't. The site owner needs to go through the installed extensions and decide if they have a purpose.

Besides, your problem is neither the page generation time (I am across the world from you, i.e. huge lag due to distance, and I still get the full HTML page downloaded in 0.6 sec), nor the speed of delivering the actual image files (though it can be improved with HTTP/2 preloading).

I strongly recommend reading my Joomla Community Magazine article series from a couple years ago on Joomla performance tuning:

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

marcw

I see your point(s), and only trial by fire could really tell what extensions/plug-ins are needed or would break the site.  I was surprised to see "I am across the world from you, i.e. huge lag due to distance, and I still get the full HTML page downloaded in 0.6 sec" in that Google's PageSpeed scores us at: Performance = 69

  FCP (First Contentful Paint) 3,826 ms   27 10%
  SI (Speed Index) 3,826 ms   84 10%
  LCP (Largest Contentful Paint) 6,212 ms   12 25%
  TBT (Total Blocking Time) 42 ms   100 30%
  CLS (Cumulative Layout Shift) 0.00   100 25%
69FCP+3SI+8LCP   Unfortunately, I have to please them somehow, so my research continues.  Or should I call it good, hoping the numbers you are seeing are real-life performances and that they won't hide us from the community based on their matrix?   As always, you provide the very best support, going above and beyond the call (I will read all the articles you provided) and offering the best advice.   Thank you again, Nicholas!

nicholas
Akeeba Staff
Manager

Your installed extensions may increase the time it takes to generate the HTML page of your site, i.e. increase the response time. That's 0.6 seconds. Culling out the extensions will save you maybe 0.1 to 0.2 seconds at best. However, as you said yourself, this is not where your problem lies. Your problem lies with the client-side rendering. This depends on your HTML structure, your CSS, the number and size of your media files, how you load these etc.

You really need to read the links I sent you. That's what I am talking about in there.

The cookie banner is destroying both your FCP and your LCP. That's true for all floating, Javascript-based cookie banners. Get rid of anything that requires cookies to then get rid of the cookie banner, drastically improving your site's performance. This is where the bulk of improvements lies.

You have a bunch of CSS and JS that's being loaded on every page. Use HTTP/2 preload to hint the server to send them along with the main body response, saving you a whole second to second and a half of round-trip time in requests. I use that extensively on my sites. The downside is that it requires changing the PHP code of the template.

Replace the images in menu items with icons using a custom icon font (which should be preloaded with HTTP/2 preload) to avoid another 8 HTTP requests.

Change your site's header from a huge image to a smaller image and font text effects (or, better yet, switch to a more simplified version rendered with an SVG) to save a lot of loading and rendering time.

The carousel images are too big. You should use a third party extension to serve appropriately sized, auto-scaled WEBP images using a PICTURE element.

Images should be loaded deferred where possible to prevent render blocking in off-screen images. Do note that this will require a bit of testing across screen sizes as it can cause layout shifts on tall displays, like big (24" and higher) desktop screens, and some phones/tablets –especially some Android phones with ridiculously tall 24:10 screens– in portrait orientation.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

Support Information

Easter vacation: We will be closed from 17 April 2025 16:00 UTC to 21 April 2025 06:00 UTC due to observing the Christian Easter holiday. Support will be closed during that time for both new tickets, and replies to existing tickets.

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!