Why my Joomla site is this slow?

Joomla generally is running at an acceptable speed -  users aren't seeing differences between an average Joomla site and another CMS'es. But what if they do? What can cause the (sometime unbearable) slowness of some Joomla sites?

Here are couple of possible answers:

  • Joomla is a complex product: Joomla is a very complex product from a software development point of view. This complexity that is necessary to make Joomla one of the most powerful and flexible CMSs out there comes at a price, a relative slowness!
  • Too many loaded extensions: Think about it this way, your Joomla website is like a cart, and every extension is like a box of fruits. The more extensions that you add to your Joomla website (or the more fruit boxes you add to your cart) the slower your website (cart) is. The best thing to do is to disable, or better yet, completely uninstall, unused extensions.
  • Heavy templates: Some Joomla templates are heavier than others. I call this the dumb-boss effect for obvious reasons...Evil One of things you can see on these templates, that they have flashy (sometimes even literally, flash powered) frontpages. If you choose a template that has a lot of non-optimized code and large images, then expect this template to slow down your whole website. You will need to optimize the code and the images in the template in order to reduce the negative impact of the template on the speed of the website. Use the available tools to compress your scripts and CSS files.
  • No caching: The developers who created Joomla are aware of the slowness issues in Joomla and that’s why they have provided built-in caching functionality. If you run Joomla without caching, then it’ll be slower (but beware, when you use caching the changes that you make in your Joomla website won’t show up unless you clear your cache). Bottomline - as you ended the initial development phase Turn caching on, at least on key parts of the site!
  • Slow hosting: Many Joomla website owners are small businesses, and cannot afford to have a dedicated server to host their website, and that’s why they opt with a shared hosting solution that is often slow because of the so-called over-selling. Seek for a host which do not oversell and your website will be always up and ready to serve your visitors.
  • Too much data: The amount of data that you have on your website is inversely proportional to the speed of the website. For example, let’s say that you have only 5 pages on your Joomla website. This means that the Joomla system has to go through only 5 rows in your database to retrieve the main content of the requested page (of course, there are many other requests, but let’s pretend that there’s only one database request for now). Now, in case you have 10,000 pages, then this means that the Joomla system has to go through 10,000 rows in the database (which will take more time). Now imagine how the search works if you have only 5 pages versus if you have 10,000 pages. Note that there are many ways to address this situation, including indexing the database and moving the database to a standalone server.
  • Too many visitors: Again, since Joomla is a heavy CMS, the more visitors you have, the slower your website is. We have seen Joomla websites that literally start crawling when they have a few dozen simultaneous requests. This is the price you will pay for your success. Be prepared for it, choose a scalable hosting plan!
  • Malicious flood of requests: This is essentially the same thing as “too many visitors”, but with a twist. The malicious flood of requests is just fake traffic to your website, e.g. traffic that is not generated by human beings, but rather by bots, either to scrape the content of your website or to intentionally slow it down. The best thing to do in this situation is to block the IP or the range of IPs issuing the malicious requests.