WordPress v Joomla! - The Final Battle
The eternal question - which is better, WordPress or Joomla? I have been working on both since 2006, and 10 years later, I think I have enough sites under my belt to give a true developers' point of view, that will try to separate fact from fiction, without hyperbole or bias. I'll compare the basics you probably already know, then dive into code changes, plugin support & customization and user ease-of-use, environment & security and other factors you don't see elsewhere; and don't find out about until it's too late.
On the surface, Joomla! and WordPress appear to be equal, but on closer inspection, you start to see subtle differences that may or may not matter to your particular needs; but if you are a web developer, which platform do you want to dedicate your company to? The answer is both of course, and to choose the right CMS for your customer's needs.
Joomla! - Great for Blogs, Social Networking & Forums, E-Commerce & Complex Sites
Joomla!'s strength lies in its core design, using an 'Articles - Components - Modules - Plugins' layout that is easy for end users to understand, compared to WordPress's 'Plugins - Posts - Widgets - Pages' setup. In Joomla!, content pages are Articles, contained inside Article Categories you setup. Categories can have unlimited sub-categories, so you can create a hierarchy of Articles in your site, and assign members' Access Levels to specific Categories with ease. Menu items can be easily created to display individual Articles as Content Pages, or entire Categories in various formats for blog or news layouts; and creating sub-menu items is a breeze.
Components are installed like WordPress plugins, either installed from the back-end list, uploaded as a zip file or remote URL. Components display their content in the same area as Articles, in the center of the page. There are thousands of Components for Joomla! that do a wide array of things, from simple forms to complex Social Network Communities, there is a Component for Joomla! to fit just about any website's needs.
Tip - The first component you want to install is JCE Editor (free) and make it the default Editor in your Joomla! Configuration. In my opinion, the editor included with Joomla! is sub-standard.
Modules are the outside areas of the Main Content, with the standard positions of Header, Logo, Top, Bottom, Right, Left and so on. Many newer Joomla! themes have an incredible amount of positions, to make customizing the site fun and satisfying. Modules can be simple HTML, images or content, or areas that display Component data such as Event Calendars, Galleries, Slideshows, Maps, User Welcome, Social Media, News, Latest Articles, Contacts and much more. Many modules are stand-alone programs that perform a dizzying array of tasks, so whatever your website needs to display, there is a way to do it in Joomla! fairly easily.
Plugins are programs that run in the background or have specific functions, such as external User Login Authentication, SEO, and thousands more. Most are included and activated in a default Joomla! setup, but others can be searched for and installed easily with the back-end interface.
E-Commerce and Joomla! go together like peanut butter and jelly, with the e-commerce Component installed on top of it, not integrated or dependent on it. You can add e-commerce to any existing Joomla! site easily, and build one from a Site-Shaper for new sites that have all the bells and whistles with the least amount of programming. I prefer Virtuemart, as it is stable and works well, even though it does have some quirks and needs some CSS work to display the way I like. Many of you may like it out of the box, and that's fine too. Virtuemart has dozens of payment and shipping options, discounts, multiple pricing, attributes and more, with hundreds of really good add-ons to make it do anything you want. Editing the template files is pretty easy and straight-forward, or you can buy an advanced theme from many sources online.
SEO is a big concern, and a lot of work has been done to make both CMS giants search-engine-friendly. Joomla! has some URL re-writing built in, and can add .html extensions to all your pages (or not), but you will need an SEO plugin to populate META tags on all pages. I use a combination of SH404SEF component to make the Search Engine Friendly URLs and Home Page META, and SEOSimple plugin to auto-generate META descriptions and keywords on all the content pages. Sh404SEF is better than the core Joomla! URL rewrite system, placing URLs into Category hierarchies instead of menus. If you want the advanced features of Sh404SEF and want the menu hierarchy, you can set that in it's options; which by the way, give you much more control over your SEO that any WordPress plugin I've seen. Overall, I would have to give Joomla! the edge in SEO, mainly due to the ease of which you can get every page optimized with no duplicate META in a few minutes, while doing the same with Yoast for WordPress can take hours, with much of it being done manually.
Server Environment and Plugin Compatibility - Joomla! can work on any server platform, but I have found it works best on a Linux / Apache server, much like WordPress. If you are running Joomla! on a private network or Intranet like the US Military does, you can run it on any kind of server. In a Linux environment, you will have to check a few things to make sure your Joomla! site behaves like it should, and plays well with Extensions you install. If you are building a site from the ground up and have your own server, Joomla! 3 now runs on PHP 7, but many Components may have an issue with anything above PHP 5.4, so keep that in mind. They are working to make some of the tried-and-true Extensions to work with 7, so I would start with PHP7 and if you have any issues, put a statement in your .htaccess to use PHP5.4 to see if it solves them. If so, Extension authors will usually work with you to solve issues.
In my experience, WordPress has a lot less issues with the environment, and usually doesn't have trouble with PHP versions. I have had JavaScript conflicts I was able to solve with a plugin or two, nothing as serious as the grief Joomla! Components have given me over the years. After looking at code and functionality of both sides, I think this is due to WP doing a lot less than J! in the background, which is not a compliment to J!. In the words of one of my developers, "Joomla! is truly in love with itself, they can't help but over-do the programming". WP is more simplified, but makes it limited for some advanced functions my clients have required and WP couldn't deliver as well as J!.
Extensions and Themes using JavaScript may have some conflicts that could cause strange problems with slideshows and other animated features, both in WP and J. Joomla! has a plugin called 'JavaScript No Conflict' (free) that will take care of 90% of these. WordPress just tells you to run JQuery in 'no conflict mode', which can be hit-or-miss compared to the Joomla! plugin, which has many options to fit all situations.
Themes - There are thousands of free and licensed themes out there for Joomla!, out of all of them I prefer YooTheme (now for WP too), Shape5 (WP too), and RocketTheme (distant third).
One of the main reasons to love these Theme Companies is that they offer Site Shapers, complete WP and J! sites with their theme, modules, styles and widgets already built in and configured for your customization. This saves hundreds of hours of work developing sites, and allows the programmer to focus on the function of the site, as the form is already in place. All of these themes have unlimited color schemes, and the sheer number of module positions gives you the freedom to put anything you want just about anywhere. Many theme companies now offer WP Site Shapers as well as J!. In the case of YooTheme, their WP Themes also include advanced interfaces and widget controls, to take advantage of the versatility offered by Joomla that WordPress lacks.
WordPress - Great for Simple Sites, Blogs and Static Websites
If you need a nice website that doesn't change much except for your News and Blog, WordPress will work just fine for you. You will need to do some extra work on the SEO aspect, but most of what you need is already in the core WP CMS.
Tip - first thing to install is Yoast SEO plugin and WP Editor, it will save you a lot of time.
WordPress is first and foremost a Blog. The admin layout is more confusing than Joomla!, especially for end-users, and has a left-side menu that you should go through one at a time to understand what they do. You can create Categories for your Posts much like Joomla, but there are also Pages you can create for static content like About Us, Contact, etc. Posts are where end-users create new content for existing Categories, which populate much like Joomla! Blog-Layout pages. Once a Page is created, a menu item can be created to link to it, while Posts populate automatically on existing Category menu links, such as Blog or News.
Widgets - These are akin to Modules in Joomla, with some major differences that can make it hard to populate in a website without a paid Theme to help out. Developers will of course have more experience in this, but for end users, this requires a lot more training and research to accomplish. I like to prepare a number of Widgets that are inactive to end-users can activate them in the future easily, luckily many Site-Shapers already have these setup fr easy customization.
Plugins - These are akin to Joomla! Extensions, some that change WordPress functions, let you build forms, forums, e-commerce and much more. There are more plugins for WP than J!, but in my experience, have less functionality and are harder to customize than J!. There are some really great WP plugins out there, so don't think I am being completely biased; I have created some very successful WP sites with YooTheme themes that greatly expand the customization of the theme, and provide some Joomla!-like functionality I found humorous to be included in a WP plugin.
Security - This is a big one, take it from someone who has had client's websites hacked right under his nose. In the past 5 years, I have learned more about website security and hacking techniques than I ever wanted to know. I won't get into details, because that is a whole other story, but here are a few things you need to know about securing either your WP or J! site.
First some general things to check for any hosting server. Your .htaccess file is your first line of defense, and there are a few basic things you can write in it to beef up security, and make your site faster. Google is your friend here, as all you need to do is search ".htaccess security", ".htaccess block bad bots" and ".htaccess caching" to find lots of instruction for your particular CMS. There are plugins for WP and J! that will allow you to edit your .htaccess file in your admin, avoiding the need for an editor and uploading to your root folder. Make sure you test the site after each change, to make sure your server supports the command.
For some reason, Joomla! is attacked more than WP, but is more secure than WP. After analyzing thousands of attacks on mine and my client's websites, I have determined that this may be due to a couple of factors, number one that many people use the default 'admin' username for Joomla! which is of course what hacker bots use to try hundreds of password possibilities. Many of these bots are successful in guessing the password, because they no longer just try a-z, they use commonly used passwords like 'Pa55word', or 'God' or even simply 'password'. There is a list of the commonly used passwords you can Google yourself, see if your password is in that list...
To avoid being hacked in WP, keep up with your updates. You can also install plugins like Wordfence Security or Firewall, just for an extra layer. The same applies to Joomla!, but the Component I recommend is Admin Tools by Akeeba. This 'Swiss army knife' of site security has a Firewall, Geo-IP filtering of Countries and individual IPs, tracking and reporting of attacks, and auto-IP blocking of attackers after 3 attacks, or whatever you set it for in the config. The PHP file change tracker is also a delightful tool if you suspect someone managed to upload or modify your files, and will even give you a threat assessment of edited files. Many other features, I don't want to drone on. Check it out, it is well worth the price.
So, the final verdict is the same as the verdict before it, and the one before that; both CMS systems have merits depending on application and need, but my overall 'feeling' at the end of the day is that Joomla! is far superior to WordPress in many ways, and the cost of that superiority is more code writing and customization to make it work exactly the way you want. You developers out there know what I mean, it looks great on paper when you get one of these Components for J! and then you find out the CSS or JS conflicts with your theme or another plugin, requiring a code adjustment or another plugin to make them play nice together. This makes J! more complicated, but that allows for more advanced Extensions and functions.
Bottom line, if you want a small static website (or even one with 500 posts & pages), WP is ok for you. If you want an Auction system, advanced Gallery, Community Builder, JomSocial, Advanced E-Commerce, Document Manager, Member Subscriptions, CRM, or other complex system, Joomla! is definitely the way to go.
What do you think? Leave your comments below!