Joomla is a popular web content management system used for various types of websites, from small homepages to medium size corporate pages. Joomla is a free open-source script based on PHP language. This means that there are no static HTML pages, each page has to be rendered from the data in the MySQL database, template and various extensions. This makes it very flexible.
However, this approach has one big drawback. The rendering takes tame. Every time the page is requested, Joomla has to create it from scratch. For each request there are a lot of database queries, file reads and scripts processed. Depending on server load the page creation process can slow down loading in browser which can lead to bad user experience. Pages that load slowly are not visited frequently. As soon as the page does not load in expected time, users navigate to the next website.
The simplest way to speed up Joomla websites is to use caching. This is a process for creating created pages to files which are loaded on next requests for the same page. Caching significantly reduces time to load pages. There are two settings for caching in Joomla. One in global configuration and one as a cache plugin.
The main cache setting is on the global configuration page. Here you can enable it and set cache time. This time is important because it also defines the time after which users will get new content if it has changed since their last visit. This setting affects caching of individual modules and component views. Each time part of the website is rendered it is also saved to a file for later reuse. This file is kept for the time specified in cache settings, default value is 15 minutes. For each module you have also individual setting regarding caching. You can either use the global website setting or switch off caching of particular module. Polls, rotating banners and highly dynamic content should not be cached.
The second setting is a system cache plugin. If enabled, this plugin caches whole pages. Here you can also define the time after which cached pages will expire. This setting can significantly increase website performance since each page will be rendered only once during the lifetime of the cache file. However, if the content of your pages is dynamic and changes from one visitor to another, then you will probably have to disable this type of caching.
There is also an additional global setting for faster data transfer: GZIP page compression. If enabled, each page is compressed before it is sent to the browser. This is an additional improvement for faster loading.
Joomla provides many nice and fancy features. Unfortunately, each additional element increases page creation time. Joomla caching options can significantly reduce page loading times and contribute to better user experience.