10 Tips to Speed up Joomla Performance
Joomla is a free and popular open source content management system (CMS), built on a MVC framework, and used by at least 2.6% of all the websites on the internet. It is used by corporations, online magazines, government applications, small businesses, and all different types of websites. In this post, we will discuss tips on how to speed up Joomla performance to ensure your website keeps running fast, ensuring a good experience for your visitors.
Joomla was originally released in 2005 and was the second most popular content management systems (CMS), putting itself in between WordPress and Drupal. Especially in the last two years, Shopify, Wix, and Squarespace gained market share and overtook Joomla.
Here are some reasons why people still choose Joomla::
- Community: Creating a community with Joomla is incredibly easy. Out of the box it supports a membership area, newsroom, forums, articles, input from external authors etc
- Multilingual: Unlike WordPress, Joomla comes with built-in capabilities to create a multilingual website. No additional plugins and components need to be installed in order to be able to translate your website.
- Cleaner extension directory: Joomla has a little over 7,000 extensions which in turn results in a much cleaner and organized extension directory than that of the WordPress plugin repository which holds over 40,000 plugins. The WordPress repository is known for having a lot of useless plugins, such as Logout Roulette.
- Built-in caching: Unlike WordPress Joomla comes with built-in caching options as well as additional caching extensions.
- Easy to use: Joomla! does not require a full-time developer on staff to manage it day-to-day.
Joomla is used on many popular sites such as:
- Linux.com
- ITWire.com
- Harvard - GSAS
- The Eiffel Tower
- United Nations Regional Information Centre for Western Europe
- MTV Greece
According to W3Techs, Joomla currently holds a 2.6% market share. According to BuiltWith, 2% of the top 100,000 websites are using Joomla.
And according to the regional data, Joomla is widely more popular in the United States and western European countries, with a strong presence in Germany.
Speed up Joomla
It is very important to keep your Joomla website running fast because speed affects everything from your traffic, conversions, revenue, and even your SEO rankings! Here are stats from a case study Radware did on page load times.
- Shopzilla saw a 12% revenue increase after improving average page load times from 6 seconds to 1.2 seconds.
- Yahoo increased traffic by 9% for every 400 ms of improvement.
- Amazon increased revenue by 1% for every 100 ms of improvement.
- Google says they lose 20% of their traffic for each additional 100 milliseconds it takes a page to load. Speed matters. Google also incorporates your page-load time into your site's search rankings.
How long does your Joomla website take to load? Use our website speed test tool to find that out.
Follow these tips below on how to speed up Joomla and keep it running fast to ensure return visitors. We are using Joomla 3.4.5 in our examples.
1. Latest version
It is very important to always run the latest version of Joomla as it usually contains fixes such as code improvements and speed enhancements. Also, make sure to keep your extensions up to date.
Update Joomla core
To update Joomla to the newest version you can either click on "Update now!" notification which should show up on your dashboard, or you can manually update by navigating to "Components" > "Joomla! Update." Remember to back up your website, especially on major release updates.
Update Joomla extensions
To update your Joomla extensions navigate to "Extensions" > "Manage" > "Update."
2. Content delivery network
Implementing a content delivery network (CDN) with Joomla is an easy way to speed up Joomla and instantly see decreased load times. By doing this, you will ensure you are serving your Joomla assets (product images, JavaScript, CSS) from multiple locations around the globe so they are delivered faster to your visitors.
KeyCDN has a simple 7 step integration with Joomla in which you can follow, utilizing the free extension "CDN for Joomla!". Once the Joomla CDN integration is completed, the static content will be delivered from our global network of points of presence (POPs) around the world. All POPs are enabled by default and there is no extra fee for locations in Asia or Oceania. Traffic spikes can easily be handled by the CDN (instead of the origin server). KeyCDN also supports HTTP/2 for even faster content delivery.
3. Joomla cache
Joomla actually has some pretty powerful caching built-in already which you can enable. Cache is a way of serving pre-generated content to your users. This means that the server does not have to look up all information requested in the database every time a page is requested. There are two steps when it comes to enabling the cache in Joomla.
Step 1 - Enable cache setting in global configuration
To enable the cache setting navigation to "System" > "Global Configuration" > "System." Then enable the Cache option. Make sure to hit "Save." You may be logged out after this.
There are two caching options to choose from:
- Conservative caching: Caches the content for each unique user.
- Progressive caching: Caches and delivers the same cached content to all visitors.
Step 2 - Enable Joomla system cache plugin
Now you need to enable the Joomla page cache plugin. Navigate to "Extensions" > "Plugins." This is a large list so you will need you will probably want to search for the term "cache." Then enable the "System - Page Cache" plugin.
Here are some popular third party Joomla caching extensions you might want to try as well.
4. Image optimization
As we mentioned in a previous post on smart image compression, on average 56 percent of a website's page weight is made up of images. So optimizing images can drastically decrease your page load times and speed up Joomla. Unfortunately in Joomla there is no built-in option for image compression. So you can either compress and resize them beforehand in a tool like PhotoShop (using the "Save for Web" feature) or an online tool, or using a Joomla extension. We highly recommend the EIR - Easy Image Resizer extension. It is developed by Viktor Vogel, a Joomla! specialist at 1&1 Internet SE.
As of version 3.3.0, EIR is integrated with KeyCDN's Optimus image optimizer so that you can take full advantage of our amazing lossless compression in Joomla! Here is an example before Optimus lossless compression in Joomla.
Here is an example after Optimus lossless compression in Joomla.
That is a decrease of 71.72% in image file sizes simply by using the Easy Image Resizer Joomla extension! Here are a few additional extensions that also deal with image optimization:
5. Joomla compression
Joomla has a Gzip compression feature built right in which you can easily enable. Navigate to "System" > "Global Configuration" > "Server." Then enable "Gzip Page compression." Don't forget to hit "Save."
This will allow you to pass the "enable compression" test with PageSpeed Insights.
6. Optimize CSS and JavaScript
By concatenating your CSS and JavaScript files you can improve your frontend performance and download times, as your browser doesn't have to fetch as many files and it reduces the total number of HTTP requests being made. Remember though if you are running over HTTPS and your server supports HTTP/2, this is no longer necessary. If you are unsure of whether your server supports it, you can use KeyCDN's HTTP/2 test tool. Minification is also recommended, which is the process of stripping out whitespace, line breaks, etc.
Unfortunately, this is not built-in to Joomla, but there are some good third party extensions which you can use to enable this features.
- JCH Optimize (see in screenshot above)
- jbetolo
- ScriptMerge
- JCC - JS CSS Control (suppress loading files where not needed)
7. Clean up Joomla database
Sometimes you might have issues where your database tables need to be repaired and optimized. Joomla doesn't have a feature built-in for this but you can easily do it via phpMyAdmin.
Repair MySQL database tables
In phpMyAdmin simply click on your database, select the tables needing repair, and from the drop down select "Repair table."
Optimize MySQL database tables
The process for optimizing your MySQL tables is pretty much the same. Click on your database, select your tables, and from the drop down select "Optimize table."
If you have a lot of third party extensions that you no longer use it is also recommend to delete/drop those tables to ensure your database sizes remains small.
8. Browser caching
You can enable browser caching by editing the page cache plugin. This tells the browser whether they should request a file from the server or grab it from the browser's cache.
To enable navigate to "Extensions" > "Plugins." This is a large list so you will need you will probably want to search for the term "cache." Then click into the "System - Page Cache" plugin. You can then enable "Use Browser Caching." Don't forget to hit "Save."
You can also do this with expires headers.
Apache example
If you are running on Apache you can add the expires directives to your .htaccess
file.
<ifModule mod_expires.c>
ExpiresActive On
############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
ExpiresDefault "access plus 1 year"
</FilesMatch>
</ifModule>
Nginx example
On Nginx the expires directives can be placed inside http {}, server {}, location {}, or an if statement inside a location {} block.
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}
We also recommend reading our article on Cache-Control
.
9. Speed optimization extensions
If you are wanting to take your Joomla site one step further you might want to check out these additional Joomla extensions which offer additional ways to boost your website's performance.
- jQuery Easy (Call jQuery from Google CDN or locally)
- LLFJ - Lazy load your images, prevent additional HTTP requests until the user scrolls down
- JavaScript Async and Defer - Improve your page loading time by allowing JavaScript loading asynchronously
- ScriptsDown - Move your scripts down to the bottom of the page
10. Choose fast web hosting
And of course, last but not least, choosing a reliable and fast web host can be one of the most important decisions you will make when running Joomla. We recommend staying away from cheap shared hosting as they tend to overcrowd their servers and you will end up sharing resources between hundreds of people. We suggest going with a VPS like DigitalOcean or Linode. The reason is because you will be in complete control of your resources. And if you aren't as tech savvy or don't want to manage your servers via CLI, ServerPilot is a great control panel alternative which works with the VPS providers mentioned above.
Summary
As you can see there are many ways you can improve the speed of Joomla, from implementing a CDN, caching, image optimization, compression, concatenation and minification, database optimization, and choosing a good web host.
Do you have another way to speed up Joomla that we missed? We would love to hear about it below in the comments.