10 Tips to Speed Up Joomla Performance
Here are the tips the help improve your Joomla site performance. This article is from keycdn.com (posted by Brian Jackson). KeyCDN is a service of proinity LLC. They are a passionate team operating a high-performance content delivery network (CDN). Image courtesy of Chrismp via Bigstockphoto.
Joomla is a free and popular open-source content management system (CMS), built on a MVC framework, and used by at least 2.7% 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 is the second most popular content management systems (CMS), putting itself in between WordPress and Drupal. Here are some reasons why people 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! The Flexible Business Solution — Robert Jacobi, arctg.com
Joomla is currently 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 6.1% market share, putting it as the second most popular CMS, with only WordPress ahead of it. According to BuiltWith, 3% of the top 100,000 websites are using Joomla.
CMS Market share. Source: BuiltWith
Joomla Regional Market share. Source: BuiltWith
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 400ms of improvement.
- Amazon increased revenue by 1% for every 100ms 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.
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.
- Speed Up Joomla Index
- Latest Version
- Content Delivery Network
- Joomla Cache
- Image Optimization
- Joomla Compression
- Optimize CSS & Javascript
- Clean Up Joomla (DB)
- Browser Caching
- Speed Optimization Extensions
- Choose Fast Web Hosting
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 the 25 points of presence (POPs) around the world. All POPs are enabled by default and there’s 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.” Note: It might log you 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 3rd party Joomla caching extensions you might want to try as well.
4. Image Optimization
As we mentioned in a previous post on lossless 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 now 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 & 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 (DB)
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 DB Tables
In PhpMyAdmin simply click on your database, select the tables needing repair, and from the dropdown select “Repair table.”
Optimize MySQL DB Tables
The process for optimizing your MySQL tables is pretty much the same. Click on your database, select your tables, and from the dropdown 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 Digital Ocean,Linode, or Vultr. 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, DB optimization, and choosing a good web host.