« Previous 1 2 3 4
WordPress, Joomla, and Drupal compared
Content World
Conclusions
Each of the three CMSs has its strengths and weaknesses. WordPress is particularly recommended for blogs, news sites, and websites that frequently publish new text. Thanks to the clear-cut user interface, getting started is particularly painless. In return, site operators have to retrofit many functions with the use of extensions.
Joomla is much more universal and offers a wide range of functions. Sophisticated, finely adjustable user management stands out as one of its strengths, which allows the easy implementation of private member areas. This flexibility also dictates a longer learning curve and a somewhat less agile work process. The confusing online documentation also makes training difficult.
In Drupal, site operators decide which content the CMS should store and present and exactly how this will happen. Therefore, authors do not have to somehow squash a recipe (for example) into the format of a post or look for an extension that implements a recipe collection. Drupal is therefore worth a closer look, in particular if the planned content does not consist (only) of simple posts. However, even with Drupal, users cannot avoid long training periods, although the good online documentation helps.
If the items in Table 1 do not address a feature of interest for your website, that does not mean the respective CMSs cannot accommodate it. The number of modules, plugins, and extensions is huge. The function may already be waiting somewhere for you to find it.
If this is not the case, other open source CMS alternatives might offer exactly the capability you are looking for, including TYPO3 [7], the Magento [8] shop system, Contao [9], or the Django [10] framework, to name just a few.
Table 1
CMS Features at a Glance
WordPress | Joomla | Drupal | |
---|---|---|---|
Version Reviewed | 4.9.4 | 3.8.5 | 8.4.5 |
License | GPLv2 | GPLv2 | GPLv2 |
System Requirements | |||
PHP version | 7.2+ | 5.3.10, 5.6, or 7.0+ | 5.5.9+ |
Databases | MySQL 5.6+, MariaDB 10.0+ | MySQL 5.1+, PostgreSQL 8.3.18+, SQL Server 10.50.1600.1+ | MySQL 5.5.3+, MariaDB 5.5.20+, Percona 5.5.8+, PostgreSQL 9.1.2+, SQLite 3.4.2+ |
Web Server | Apache and Nginx recommended | Apache 2.0+, Nginx 1.0+, IIS 7 | Apache 2.0+, Nginx 1.1+, Hiawatha, IIS 5+ |
Support | |||
Graphical Installation Wizard | Yes | Yes | Yes |
User Support | Forum | Forum, Mailing list | Forum, Slack, IRC, Stack Exchange |
Online Documentation | Yes | Yes | Yes |
Back End | |||
Management via Back End/Front End | Yes/Partly | Yes/Partly | No/Yes |
Multilingual Back End | Yes | Yes | Yes (via the front end) |
Back End Suitable for Mobile Use | Yes | Yes | Yes (via the front end) |
Content | |||
Saved Information | Pages and posts (extensions can retrofit further content types) | Posts (extensions can retrofit further content types) | Any (page operators themselves specify content types and thus the structure of the pages) |
WYSIWYG Editor | Yes (TinyMCE) | Yes (TinyMCE, CodeMirror) | Yes (CKEditor) |
Preview | Yes | Yes | Yes |
Drafts | Yes | Yes | Yes |
Unpublished Content (hide from all visitors) | Yes | Yes | Yes |
Time-Controlled Publishing | Yes | Yes | Yes (with modules such as Scheduler [11]) |
Version Management | Yes | Yes | Yes |
Content Editable in the Front End | No | Yes | Yes |
Multilingual Websites | No | Yes | Yes |
Media Management | Yes | Yes | Yes |
Image Processing Functions | Yes (restricted) | No (retrofit via extensions like Media Kits [12]) | Yes (restricted) |
Additional Built-in Functions | |||
Search Function | Yes | Yes | Yes |
Picture Gallery | Yes | No (retrofit with extensions like Phoca Gallery [13]) | No (retrofit with own content type or a module like Juicebox [14], which was beta at the time of writing) |
Comment Function | Yes | No (can be retrofit with extensions like JComments [15] or CComment Pro [16]) | Yes |
Contact Forms | With plugins (e.g., Contact Form 7 [17]) | Yes | Yes |
Advertising Banners | No (retrofit with plugins like AdRotate Banner Manager [18]) | Yes | No (retrofit with modules like Ads System [19] and Advertising Entity [20], both still beta at press time) |
Show/Create Newsfeeds | Yes/Yes | Yes/Yes | Yes/Yes |
Search Engine Optimization | Partial (with extensions like Yoast SEO [21]) | Yes | Partial (further functions can be retrofitted with modules, like Real-time SEO for Drupal [22] or Drupal SEO Checklist [23]) |
Multisite Function (management of several independent websites with one installation) | Yes | No (retrofit with extensions like Multi Sites [24]) | Yes |
Caching | With Plugins (e.g., WP Super Cache [25] or WP Fastest Cache [26]) | Yes | Yes |
Calendar | Implemented with modules [27] [28] | Implemented as a module [29] | Implemented with modules [30] |
Design Templates | |||
Theme/Template Engine | Yes | Yes | Yes |
Template Language | PHP | PHP and XML | PHP |
Design Template Properties Modifiable | Yes (in live preview) | Yes | Yes |
Live Preview | Yes | No | Yes (with fictitious sample page) |
User Management | |||
Groups | Yes (default; user management extendable with numerous plugins, such as Simple Access Control [31], Restrict User Access [32], Profile Builder [33] or User Access Manager [34]) | Yes | Yes (via roles) |
Access Restrictions | Access depends on user group | Access Control Lists (via user groups) | Access Control Lists (via roles) |
Member Areas (individual pages are only visible for certain user groups) | Major limitations (password protection or visibility only for all registered persons) | Yes (via Access Control Lists) | Partial (only for individual blocks, such as a menu, and with modules such as Private [35] or Nodeaccess [36], which was still in beta at press time) |
Force Review (release of newly written text by a moderator) | Yes (depending on user group) | Yes | Yes (corresponding module still tagged as experimental) |
Two-factor authentication | With plugins (like Two Factor Authentication [37], Google Authenticator [38], or Two-Factor [39]) | Yes (Yubikey, Google Authenticator) | No (retrofit with the Two-factor Authentication (TFA) module [40], which was still in alpha at press time) |
Registration by External Services | No (only with plugins like Social Login [41]) | Yes (Gmail account, LDAP) | No (retrofit with corresponding Social Auth module [42]) |
Internal Messaging System | No | Yes | No (retrofit with modules like a suitably configured Message Stack [43] or Privatemsg [44], which was ported to Drupal 8 at press time) |
Extensions | |||
Extensions | Yes | Yes | Yes |
Control with API | RESTful | No (retrofit with extensions, such as cAPI Core REST API [45] or Rest API for Joomla [46]) | RESTful |
Maintenance | |||
Automatic Update | Yes | Semiautomatic | No |
Backup of Website | Data import and export only | No (retrofit with extensions like Akeeba Backup [47]) | No (help with corresponding modules like All In One Backup [48]) |
Infos
- WordPress: https://wordpress.org
- "Popular CMS by Market Share" by Robert Mening: https://websitesetup.org/popular-cms/
- Joomla: https://www.joomla.org
- Drupal: https://www.drupal.org
- Drupal 8.5: https://www.drupal.org/blog/drupal-8-5-0
- Updating Drupal 8: https://www.drupal.org/docs/8/update
- TYPO3: https://typo3.org
- Magento: https://magento.com
- Contao: https://contao.org/
- Django: https://djangoproject.com
- Drupal Scheduler module: https://www.drupal.org/project/scheduler
- Joomla Media Kits: https://extensions.joomla.org/extensions/extension/photos-a-images/images/media-kits/
- Joomla Phoca Gallery extension: https://extensions.joomla.org/extensions/extension/photos-a-images/galleries/phoca-gallery/
- Drupal Juicebox module: https://www.drupal.org/project/juicebox
- Joomla JComments extension: https://extensions.joomla.org/extensions/extension/contacts-and-feedback/articles-comments/jcomments/
- Joomla CComment Pro extension: https://extensions.joomla.org/extensions/extension/contacts-and-feedback/articles-comments/ccomment-pro/
- WordPress Contact Form 7 plugin: https://wordpress.org/plugins/contact-form-7/
- WordPress AdRotate Banner Manager plugin: https://wordpress.org/plugins/adrotate/
- Drupal Ads System module: https://www.drupal.org/project/ads_system
- Drupal Advertising Entity module: https://www.drupal.org/project/ad_entity
- WordPress Yoast SEO plugin: https://wordpress.org/plugins/wordpress-seo/
- Real-time SEO for Drupal: https://www.drupal.org/project/yoast_seo
- Drupal SEO Checklist module: https://www.drupal.org/project/seo_checklist
- Joomla Multi Sites extension: https://extensions.joomla.org/extensions/extension/core-enhancements/multiple-sites/multi-sites/
- WP Super Cache plugin: https://wordpress.org/plugins/wp-super-cache/
- WP Fastest Cache plugin: https://wordpress.org/plugins/wp-fastest-cache/
- WordPress All-In-One Event Calendar plugin: https://wordpress.org/plugins/all-in-one-event-calendar/
- WordPress The Events Calendar plugin: https://wordpress.org/plugins/the-events-calendar/
- Joomla JEvents: https://extensions.joomla.org/extension/jevents/
- Drupal Glazed CMS Events module: https://www.drupal.org/project/cms_events
- WordPress Simple Access Control plugin: https://wordpress.org/plugins/simple-access-control/
- WordPress Restrict User Access plugin: https://wordpress.org/plugins/restrict-user-access/
- WordPress Profile Builder plugin: https://wordpress.org/plugins/profile-builder/
- WordPress User Access Manager plugin: https://wordpress.org/plugins/user-access-manager/
- Drupal Private module: https://www.drupal.org/project/private
- Drupal Nodeaccess module: https://www.drupal.org/project/nodeaccess
- WordPress Two Factor Authentication plugin: https://wordpress.org/plugins/two-factor-authentication/
- Google Authenticator plugin: https://wordpress.org/plugins/miniorange-2-factor-authentication/
- WordPress Two-Factor plugin: https://wordpress.org/plugins/two-factor/
- Drupal Two-factor Authentication plugin: https://www.drupal.org/project/tfa
- WordPress Social Login plugin: https://wordpress.org/plugins/miniorange-login-openid/
- Drupal Social Auth module: https://www.drupal.org/project/social_auth
- Drupal Message Stack module: https://www.drupal.org/node/2180145
- Drupal Privatemsg module: https://www.drupal.org/project/privatemsg
- Joomla cAPI Core REST API: https://extensions.joomla.org/extensions/extension/capi-core-rest-api/
- Rest API for Joomla: https://techjoomla.com/free-downloads/rest-api-for-joomla.html
- Joomla Akeeba Backup extension: https://extensions.joomla.org/extensions/extension/access-a-security/site-security/akeeba-backup/
- Drupal All In One Backup module: https://www.drupal.org/project/allinone_backup
« Previous 1 2 3 4
Buy this article as PDF
(incl. VAT)
Buy ADMIN Magazine
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Most Popular
Support Our Work
ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.