ExpressionEngine versus WordPress

Which is the best CMS for my needs?

ExpressionEngine and WordPress are both Content Management Systems (CMS), both written in PHP and both run off either mySQL or mariaDB.

So what is the difference? 

First off, it is important to understand what a Content Managment System is.  A content management system is a way to separate the content that you wish to publish on your website from the code that displays that content from you.  Without a CMS, you need to be fluent in writing HTML, CSS (styling) and JavaScript.

With a CMS you can create a structure to hold your content so that it isn't mixed in with all the code in a big mess of complexity.  In brief, you can use a database to store your text, the file system to store your images or documents and a separate place to store all the instructions that pull of of this together and make it easy to find for your visitors.  A good CMS will make creating new pages and content really easy without you needing to know a thing about programming.  In fact, it should separate any configuration from content creation so that you do not accidentally break the site.

Why would you choose one over the other?

 

1.  Who is building the website?

WordPress is a great tool for those who are new to web design and those who wish a DIY approach.  It is ideal for micro businesses and bloggers.

It comes with a plethora of themes which you can install and lets you get started very quickly.  When you install a theme, you will get a range of templates that you can use on your pages and tweak these to suit your brand.  This is particularly helpful if you aren't sure how to design your site and need the guidance of a pre-made set of pages.

ExpressionEngine is built for developers and agencies who need specific granular control.  It enables them to build something bespoke for their clients with functionality and design that is unique to each customer.  There are no pre-built templates or styles, the developer has complete control of the look and behaviour of every page.  It is not suitable for those who are looking for a DIY approach.

2.  Data modelling

ExpressionEngine allows you to define custom field types and database structures from scratch.  The architecture of an ExpressionEngine site is designed to fit the requirements of the organisation.  ExpressionEngine enables developers who demand a high level of control, architectural flexibility so that they can develop truly bespoke, data driven websites.  It uses channel based content so that administrators of the site can easily separate and curate their content into easily identifiable channels according to their own specific requirements.

WordPress was originally designed as a blogging platform and it performs excellently in this regard.  In fact it is amazing how far it has come without changing the underlying structure radically.  For this reason, a WordPress site works the other way round; you need to fit your content into the WordPress architecture.  For simple brochure sites, the WordPress architecture works fine.  In fact if you have no experience with data modelling, the restrictions of WordPress take those concerns away from you so you can just get on with creating content.

 

3. Plug-in/Add-on ecosystem

WordPress calls the extra bits that you can install on top of its core plug-ins and ExpressionEngine calls them Add-ons.  They are essentially just different names for the same concept.

WordPress has a massive plugin library (60,000+) but with variable quality and potential security risks; ExpressionEngine has a smaller, more curated add-on marketplace where extensions tend to be professionally maintained.  Another thing to look out for when there are such a large number of plug-ins available, is compatibility.  You cannot expect a developer of WordPress plug-ins to test their work with all of the other 60K plug-ins, so make sure that you test these yourself.  Pay particular attention when upgrading either the core WordPress or plug-ins as there may be some issues between the versions.

WordPress allow designers to build just about anything with a simple install of a plug-in.  This speeds up development and reduces the cost as you don't have to hire an experienced programmer.  The downside is that sometimes plug-ins are used when a simple couple of lines of code would have done the job much more efficiently causing your site to become bloated with plug-ins that do very little.

Compatibility with Add-ons in ExpressionEngine is more transparent, you can see what add-ons are compatibile with each other and the core system versions.

Because of the flexibility of the ExpressionEngine CMS itself, it makes interaction with other systems much easier.  Developers can create their own structures and add-ons to manage data flow from existing business systems and the website making ExpressionEngine a powerful tool not just a website builder.

4. The Control Panel

Many people like the WordPress control panel (the admin panel) because they have used other WordPress sites.  The control panel remains pretty much the same for every site which makes knowledge transfer easy.  However, the separation of technical configuration and content is less pronounced than the control panel that comes with ExpressionEngine.  This can lead to inadvertent mistakes on your site when an administrator mistakes a system configuration for something with lesser implications.

The ExpressionEngine control panel is highly customisable and the fact that ExpressionEngine uses channels to allow administrators to structure their content means that every control panel is different, different channels, different shortcuts and different permissions.  In fact the granularity of permissions that you can assign to different sections make ExpressionEngine the best tool for websites that are managed by different people with different tasks.

 

5. Security

WordPress is widely used, approximately 40% of sites are built in WordPress, this makes it a common target for hackers and automated attacks.  Because WordPress can be created by beginners without extensive technical experience, some WordPress web designers are unaware of the measures they should take to protect the sites that they have created from attack.

When it comes to security, it is the plug-ins and themes that cause the security issues rather than the core WordPress CMS itself.  But as many sites rely on plug-ins rather than developers to produce them, the amount of plug-ins installed is of a concern (sometimes left on the site after they are no longer required).  Sites built by less technical designers can turn into a mess of plug-ins and misunderstood functionality; again, this is down to who builds the site rather than the choice of CMS itself.

WordPress 2024

Security Week

WP Security Ninja

ExpressionEngine 2024

Bishop Fox

cvedetails.com

6.  Multi-site and multi-lingual

ExpressionEngine allows you to create multiple websites and manage them through one central administrative panel.  This makes it possible to share common data and also makes administration easier.  ExpressionEngine supports multi-lingual sites and is particularly useful in the way that language versions of each entry are linked together so that you can easily.  

WordPress can be configured using WP Multisite but check first if all the plugins you are using are compatible (e.g. your SEO tools).

 

7. Updates

Keeping your software up to date cannot be over emphasised.  It is one of your key tools to keeping your website free from attack and both of these solutions provide very regular updates.

WordPress is so simple to update, you can even set it to update itself! What do I mean by update?  I'm talking about updating the core software of the CMS itself and plug-in updates.  The only problem with the automatic updates is that you may not notice that anything has broken until someone tells you!

ExpressionEngine has come a long way in creating a one-click updater for the core system.  It requires you or your developer to deliberately choose when to update the system.  You might think that this is a drawback but I would say that the opposite is true.  We do all our upgrades on a development machine and test thoroughly before deploying the changes to live so that everything is working smoothly and you don't get any nasty surprises!

8. Licencing

WordPress is free and open source with plug-ins and themes that are either free or at a relatively low cost.  ExpressionEngine is open source for sites with only one member, otherwise there is a licence cost.  Just like WordPress, it has some free and some paid for add-ons.  The cost of the software itself has little impact on the cost of the website build; it's nice to know but makes very little difference to the overall cost.

 

9. Learning Curve

WordPress is meant to work right out of the box.  You can get a site up and running pretty quickly and without previous coding experience.  ExpressionEngine predicates on working knowledge of HTML, CSS, JavaScript and an understanding of relational databases.

If you are not a developer and you are planning to go via the DIY route then WordPress is the one for you.  

If your brand and business depend upon a robust and unique website then you would be best to hire experienced professionals with the technical knowledge to build you the best tool for your requirements and ExpressionEngine will be the choice for you.

In Summary

Overall, ExpressionEngine is a great tool when you need your website to be precise and professional.  WordPress is speedy to produce and could be the best choice for you if you need something quick and cost effective to get started.

If quality is what you are looking for then it is really the designer / developer that you need to look at not the CMS. An experience designer/developer can work with either system and they can also advise you on which one will ultimately be the best choice for your needs.  Sloppy implementation of WordPress sites has given the CMS a bad name, because ExpressionEngine requires professional skills, ExpressioneEngine has eschewed this bad press.

If you need to connect your website with other systems then ExpressionEngine will be the best choice because of its flexibility; your developer won't need to code "round the houses" to get a smooth integration of data.