joomla_cms

I did optimize a bit my Joomla! homepage in the last few days. This has been achieved with

  • Enabling Joomla module caching in all 3rd party module where it was missing/ not implemented at all,
  • Starting to offload some assets (JavaScript) to faster hosting,

Click read more to apply the same for your internet site.

Use Joomla Module caching

Not all 3rd party Joomla modules are using caching. This means that in worst case, some Joomla! modules may create way too much SQL queries. A way to reduce the load is to activate module caching. You’ll have to go through all 3rd party modules and check that they have in their administrator panel a setting to enable/disable cache.

jooomla.enable.caching

You’ll see that 90% of all modules (except official Joomla! modules which are able to deal with caching) are NOT supporting caching. We will change that now:

For every module without cache, open the xml file at /modules/mod_xxxxxxx/mod_xxxxxxx.xml and add between <params> .. </params>

<param name="cache" type="radio" default="0" label="Enable Cache" 
       description="Select whether to cache the content of this module">
 <option value="0">No</option>
 <option value="1">Yes</option>
</param>

Note that if <params> .. </params> do not exist, just add it like below

<params>
 <param name="cache" type="radio" default="0" label="Enable Cache" 
       description="Select whether to cache the content of this module">
  <option value="0">No</option>
  <option value="1">Yes</option>
 </param>
</params>

Visit or reload the admin panel of that module and set the Enable Cache to Yes. Click Save/Apply at least once.

Now the output of this module will be saved in /cache and only refresh when global Joomla cache timeout (900 seconds as default). Consider also contacting the author of the module so he can patch his code.

Offload assets

Offloading assets (JavaScript, static images, static files) can bring tremendous speed gains, at the cost of resolving more DNS name. Using this technique will help your Apache concentrate on php instead of streaming static data.

Offload JavaScript

When you look at Joomla! frontend source code, you will see that the JavaScript library mootols.js is 74kb big. Google is offering to host all major AJAX  libraries free of charge at http://code.google.com/apis/ajaxlibs/documentation/ so why not profiting of their datacenter speed/bandwidth/response time?

Now the dirty part, You can’t tell Joomla! not to include the mootols.js from /media/system/js/mootools.js at rendering time. We will have to patch the code of Joomla!

open /libraries/joomla/html/html/behavior.php and search for

if ($debug || $konkcheck) {
  JHTML::script('mootools-uncompressed.js', 'media/system/js/', false);
} else {
 //JHTML::script('mootools.js', 'media/system/js/', false); // old Joomla code
 JHTML::script('mootools-yui-compressed.js', 'http://ajax.googleapis.com/ajax/libs/mootools/1.11/', false);
}

Joomla use mootools.js in version 1.11, don’t use the latest version (1.2.3) as most Joomla! plugin wont work (but your mileage may vary).

To be continued

You might like also

Alternate method to install Joomla/Drupal on Synology NAS
If you want more control, want to install Joomla yourself or want to install any other CMS, you may also want to try this method. It require some basic knowledge about SSH / file transfer through. Main differences compare to the other method You won’t have any icons into the packages manager, You wont be able to stop this services, More prone to errors How to Install In the Control Panel of your Synology DSM NAS, go to “Web Services” …
2926 Days ago
Running Joomla! on Synology NAS
From small-and-medium business to individual users, Synology products offer a full range of choices to fulfill different needs, while sharing some similar characteristics- eco-friendly, quiet, and versatile. Pre requisites Download the Synology package #Joomla-1.7.2.spk In the Control Panel of your Synology DSM NAS, go to “Web Services” and activate Enable Web Station Enable MySQL …
2926 Days ago
How to Solve a Problem with Joomla! jos_session
I was not seeing this error since at least 3 years: DB function failed with error number 1016 Can't open file: 'jos_session.MYI' (errno: 145) SQL=INSERT INTO `jos_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` ) VALUES ( '4bc998b10d92bf4107976d0edacdbb26','1246725653','','0','1','0' ) It happen sometimes and cause are unknown. While it is quite disturbing to have no more access to #Joomla! frontend or backend, the fix is quite easy. You must repair this table jos_session, If you have access to PhpMyAdmin Require an access to the Plesk/CPA panel. …
3596 Days ago
Digital watermarking with PHP and GD2
Digital watermarking is the process of possibly irreversibly embedding information into a digital signal. The signal may be audio, pictures or video, for example. If the signal is copied, then the information is also carried in the copy. In visible watermarking, the information is visible in the picture or video. Typically, the information is text or a logo which identifies the owner of the media. [Wikipedia] If you decide to go with an online watermarking, you can let watermark picture …
3670 Days ago
Watermarking your images with ImageMagick
Digital watermarking is the process of possibly irreversibly embedding information into a digital signal. The signal may be audio, pictures or video, for example. If the signal is copied, then the information is also carried in the copy. In visible watermarking, the information is visible in the picture or video. Typically, the information is text or a logo which identifies the owner of the media. [Wikipedia]   I decide to go with an offline watermarking first, but you can let …
3685 Days ago
Joomlacomment 4.0 jQuery optimization
I did install yesterday evening the latest version of !JoomlaComment !JoomlaComment is one of the first extensions for #Joomla,that let you comment under articles. The !JoomlaComment system can be installed on any joomla website within seconds! Make your website more interactive! Main Features: ajax-based captcha protection akismet support ubb code support threathed/nested comments multilanguage support mail, website input See more features here Joomla support templates, depending on which templates you use MTdefault-emotop, these templates MTxxxx use mootols 1.11 JQdefaut-emotop, these …
3695 Days ago
Joomla! php, FastCGI, blank page and duplicate header 'Status'
Since months, now I (understand also YOU) receive some blank page when browsing my Internet homepage. This strange behavior seems to occur only when having PHP running as FastCGI FastCGI is a protocol for interfacing interactive programs with a web server. FastCGI is a variation on the earlier Common Gateway Interface (CGI); FastCGI's main aim is to reduce the overhead associated with interfacing the web server and CGI programs, allowing a server to handle more web page requests at once. …
3919 Days ago
Skype me button for Joomla!
Thanks to Skype web integration, making a button to show your online status has never been so easier. Attention, you will also Somehow loose some privacy as anybody will be able to call you/chat with you Need to change your Skype privacy settings to show your status online learn more Create your html code Snippet by going to     Note: the online generator always create call URL, if you want to allow only chat, just alter slightly the URL, …
3925 Days ago
Joomla Components troubleshootings, support, help
Golden Rules Do not contact me first directly, these components are used worldwide (in the million range for some of them) and I can not help personally all people, even if I try... Use Google first Do yourself a favor, use Google, you'll get a response (nearly) at the speed of light, try to copy your error message or summarize your issue in keyword and append (or not) the name of the component like for example SecurityImages + require GD2 …
4073 Days ago
Install subversion on windows
In order to better develop for #Joomla by having your own subversion local repositories. My second objective is to version different version of #Joomla!/my components so I can run a continuous build strategy with XINC...but more on that later when I will have enough regression tests :-) Download the Subversion distribution for you operating system at: http://subversion.tigris.org/getting.html Subversion Binary Packages AIX openCollabNet Debian Debian Project apt-get install subversion HP-UX HP Porting Centre Fedora Fedora Project yum install subversion Mac OS …
4121 Days ago