Joomla vs. Drupal — A Comprehensive Comparison - Site Performance Tuning and Deployement

By Justin Kerr
March 15, 2014

Table of Contents

Performance Tuning and Testing

All websites benefit from good performance, which encompasses fast generation of dynamic web pages, efficient HTML, CSS and media assets, and quick delivery to the Web browser. Although performance tuning is essential for large, customer-facing sites, it can be a major boon to any size of website.

Both Drupal and Joomla contain a number of built-in features to aid website performance. However, for general web page efficiency, much depends on outside factors such as the HTML/CSS design of the respective Joomla Template or Drupal Theme. Likewise, the web server and database setup can have a big effect on site performance, especially for large or busy sites with high performance requirements and specialized deployment schema. Proper CMS system architecture can also be important: If too many system elements (e.g. Drupal Modules, Joomla Plugins) are used to build a page, all of the database connections can bog down the server. Finally, integrating a site’s resources with a Content Delivery Network (or CDN) will dramatically improve site performance for any platform.

Drupal iconDrupal

Drupal contains some core, system-wide caching settings and controls, including the ability to enable site-wide caching, dump the site-wide cache, and aggregate CSS and Javascript files to result in fewer server calls. Additional site-wide caching capabilities come through the implementation of contributed Modules designed to aid site caching and expand caching features.

Drupal also contains caching controls that permeate throughout the Drupal system. By adjusting cache settings on Drupal Blocks, Modules, Panels and other areas, a Drupal developer can implement extremely granular caching mechanisms that operate under specific rules and conditions (for example, caching based on user activity, in addition to traditional time-based caching schema). Some specialized Modules can also hand off Drupal’s caching capabilities to other, server-based caching solutions, like APC and Varnish.

Although Drupal’s top-level caching controls are pretty easy to use, implementing granular caching features raises a lot of complex issues that require proper planning and approach in order to engineer a working solution. Drupal can support some extremely sophisticated caching behaviors, but this requires an expert level of knowledge to implement effectively.

Drupal sites can easily integrate with a CDN through a contributed Module and other tools.

Joomla iconJoomla

Joomla provides some easy-to-use, site-wide caching controls accessible through its back-end control panel. Global Configuration settings allow administrators to turn caching on or off, set the general caching profile (“Conservative” or “Progressive”), and the amount of time until cached files are refreshed. Admins can also use control panels to selectively clear cached content and delete older cached files from the server. Many core and third-party Joomla Modules enable time-based caching for that Module’s content.

Third-party Joomla extensions provide additional site performance enhancements, from CSS and Javascript aggregators (and minifiers) to finer-grained caching controls to selective loading of media elements. CDN integration is straightforward and quick through third-party Joomla extensions.

Dollar sign iconCost Conclusions

Joomla’s site-wide caching controls are well-balanced, easy to implement and effective: In general, it takes less time to configure site-wide caching for Joomla than it does for Drupal, although these costs are still nominal. Also, due to how third-party extensions install into Joomla as control panels, it’s generally easier to implement additional capabilities for page-specific caching, code aggregation and CDN integration by using Joomla extensions as compared to configuring similar Drupal Modules.

Drupal is able to offer a much more precise level of control over caching behavior than Joomla. While all of Joomla’s available caching options are time-based, Drupal provides a framework for activity-based caching, in addition to granular caching controls spread throughout Drupal’s functional areas. However, sophisticated caching setups in Drupal come at a high cost in time and expertise.

Website Deployment

Launching a new website is fairly easy: Just move files and the database from the development server to the live, production web server location. However, once a website is up and running, implementing updates can get quite a bit more complex. Both Drupal and Joomla (and indeed many other platforms) face the same challenge of updating data between production and development databases, as discrepancies between the two can sow chaos throughout the CMS deployment.

Generally, sites are taken offline in the middle of the night while admins furiously conduct site updates and transfers, then turn on the live site and conduct testing to make sure everything’s working correctly. (Naturally, incremental backups are essential throughout this process.) More experienced administrators may selectively update data between the development and the live production server, but this is a nerve-wracking process fraught with danger, even for veteran admins. For large and complex sites that can’t suffer through downtime, updating site software is going to be one of the most difficult tasks facing both Drupal and Joomla sites.

Drupal iconDrupal

Drupal provides a “Maintenance Mode” setting that allows administrators to temporarily take a site offline and display a custom message to site visitors. When in Maintenance Mode, only the top-level superadministrator account has login access to the Drupal site in order to conduct updates and make other changes.

Note that the pending Drupal 8 release plans to include site staging functionality.

Joomla iconJoomla

Joomla offers control panel settings to let administrators take a site offline, display a custom or default site offline message, and set an image for the site offline page that appears to users. While a site is offline, any user Group with appropriate permissions can log in to view and interact with site content.

Some third-party extensions provide help with site deployment, in particular those that bundle an entire Joomla site and database into a single archive file that can be easily transferred between locations and unpacked/reinstalled via a related PHP script file.

Dollar sign iconCost Conclusions

Both Drupal and Joomla sites follow the same process and have the same general costs for launching a website. Both also offer similar features for taking a site offline while updates are implemented, although Joomla lets multiple authorized users log in while a site is in offline mode, whereas Drupal limits this to the superadministrator. Finally, both face the same extreme challenges of updating live sites that can’t have downtime. Website deployment costs are essentially the same between the two, although Joomla may be more approachable for less experienced administrators.