Joomla Optimization Steps

NOTE: Before you begin optimizing your Joomla, please review our general Performance Optimization Tips article

Please follow the steps below in order to optimize your Joomla application and improve your speed:

  1. Enable Cache setting in Global configuration.

Please navigate to: System → Global Configuration then open the System tab where you can find the Cache Settings, select the Conservative caching or Progressive caching.

- Conservative caching - caches the content for each unique visitor.
- Progressive caching - delivers the same cached content to all visitors.

  1. Enable Joomla System Cache Plugin.

Please go to: Extensions → Plugin Manager then search for System Cache Plugin, enable it.

  1. Enable Joomla Compression - Gzip Compression.

To enable the option, please go to System → Global configuration → Server → Server Settings, find the option GZIP Page Compression then enable it.

  1. Compressing CSS and JavaScript.

In the General setting of the framework, enable CSS and JS Optimization, you can exclude files for optimization then Save the setting, that’s it.

Here is what you will get:

5. Setup a robots.txt file which will help you reduce your load from web crawlers. Please, follow this guide:

Using robots.txt in order to optimize your site performance and reduce your website load

Advanced users: using optimization rules in .htaccess file.

The .htaccess file handles the way your web servers process your site with a lot of rules to improve your site speed, here is a sample .htaccess file with rules enabled:

  1. ########## Begin - ETag Optimization
  2. This rule will create an ETag for files based only on the modification

  3. timestamp and their size.

  4. Note: It may cause problems on your server and you may need to remove it

  5. FileETag MTime Size
  6. AddOutputFilterByType is now deprecated by Apache. Use mod\_filter in the future.

  7. AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript
  8. Enable expiration control

  9. ExpiresActive On
  10. Default expiration: 1 hour after request

  11. ExpiresDefault "now plus 1 hour"
  12. CSS and JS expiration: 1 week after request

  13. ExpiresByType text/css "now plus 1 week"
  14. ExpiresByType application/javascript "now plus 1 week"
  15. ExpiresByType application/x-javascript "now plus 1 week"
  16. Image files expiration: 1 month after request

  17. ExpiresByType image/bmp "now plus 1 month"
  18. ExpiresByType image/gif "now plus 1 month"
  19. ExpiresByType image/jpeg "now plus 1 month"
  20. ExpiresByType image/jp2 "now plus 1 month"
  21. ExpiresByType image/pipeg "now plus 1 month"
  22. ExpiresByType image/png "now plus 1 month"
  23. ExpiresByType image/svg+xml "now plus 1 month"
  24. ExpiresByType image/tiff "now plus 1 month"
  25. ExpiresByType image/ "now plus 1 month"
  26. ExpiresByType image/x-icon "now plus 1 month"
  27. ExpiresByType image/ico "now plus 1 month"
  28. ExpiresByType image/icon "now plus 1 month"
  29. ExpiresByType text/ico "now plus 1 month"
  30. ExpiresByType application/ico "now plus 1 month"
  31. ExpiresByType image/vnd.wap.wbmp "now plus 1 month"
  32. ExpiresByType application/vnd.wap.wbxml "now plus 1 month"
  33. ExpiresByType application/smil "now plus 1 month"
  34. Audio files expiration: 1 month after request

  35. ExpiresByType audio/basic "now plus 1 month"
  36. ExpiresByType audio/mid "now plus 1 month"
  37. ExpiresByType audio/midi "now plus 1 month"
  38. ExpiresByType audio/mpeg "now plus 1 month"
  39. ExpiresByType audio/x-aiff "now plus 1 month"
  40. ExpiresByType audio/x-mpegurl "now plus 1 month"
  41. ExpiresByType audio/x-pn-realaudio "now plus 1 month"
  42. ExpiresByType audio/x-wav "now plus 1 month"
  43. Movie files expiration: 1 month after request

  44. ExpiresByType application/x-shockwave-flash "now plus 1 month"
  45. ExpiresByType x-world/x-vrml "now plus 1 month"
  46. ExpiresByType video/x-msvideo "now plus 1 month"
  47. ExpiresByType video/mpeg "now plus 1 month"
  48. ExpiresByType video/mp4 "now plus 1 month"
  49. ExpiresByType video/quicktime "now plus 1 month"
  50. ExpiresByType video/x-la-asf "now plus 1 month"
  51. ExpiresByType video/x-ms-asf "now plus 1 month"