Skip to main content

Unused modules and menu items cause server load

It is really fascinating to observe how the Joomla content management system handles modules. In an experiment with Joomla version 2.5.4, it was found that the waiting time for the system to load a page is about 240 milliseconds when a whopping 2,048 modules are set to "Unpublished" status. This value is surprisingly identical to the waiting time that occurs when there are no modules on the page at all. Interestingly, when these modules are published and assigned to a specific position, the latency increases dramatically to around 5.08 seconds. However, setting the modules to "Published" without assigning them to a specific module position by selecting "::none" significantly reduces the waiting time to just 451 milliseconds.

These findings come from testing conducted on a fresh installation of Joomla 2.5.4, motivated by the experiences of a customer who was experiencing significant performance issues with their Joomla 1.5 website. This website included a complex structure with 370 module positions, 200 deeply nested menu items in duplicate, and the Joomfish component, which resulted in huge delays in processing.

Based on these observations, it can be concluded that Joomla needs to calculate all published modules, regardless of whether they are assigned to a position or not. This also applies to menu items that were created but not integrated into the website. In another test, 512 menu items were created that were not integrated into the page, which led to an additional waiting time of around 160 milliseconds.

Combining this structure with Joomfish resulted in almost 6 seconds of waiting time for the page to load and, in extreme cases, loading times of up to 17 seconds, on a server normally known for its high performance (df.eu - ManagedHosting with 6- star performance).

So what does this mean in practice? Basically, you would think that keeping a Joomla installation as clean and lean as possible is a given. It is essential to strategically plan in advance how to optimally use Joomla. This includes not placing modules where they are not needed, especially on large websites. Modules that are no longer required should be consistently deleted in order to simplify navigation for users and optimize the performance of the website. A thoughtful use of Joomla resources can significantly increase the speed and efficiency of a website.