Digital Development
Web Design

Its a great thing when the owner of a website can update their own content. I've recently been asked to manage a project which would benefit greatly from being developed using a content management system (CMS) allowing the client to update content independently. However, before getting started I'd like to make a decision on the best CMS to use.

I'll start by saying that I'll never choose one CMS to use above all others as I don't believe such a CMS exists. While personal preference of the user interface plays a major role in such a choice, each CMS has its own pros and cons, thus, its only natural that the CMS of choice will be determined by the project to be developed and how best this project can take advantage of each CMS.

Content Management

Some key questions on the core functionality of the CMS can help make the choice a simple one. How exactly is the content managed? Are pages managed in a tree-hierarchy? Are posts organized by date or category? How intuitive is the system interface to customize the management of content? Consider the basic functionality you need, at some point you will require the ability to structure and organize pages and if there's a CMS which allows you to perform such tasks in a manner you're comfortable with then your decision is made.

If you're making a blog-style site then Wordpress should be sufficient for this. If you're site is more complex and you require more flexibility, then choose a CMS that provides this flexibility such as Drupal or Expression Engine. My personal preference here is for Expression Engine, as I find its interface more intuitive.

Development Support

You're likely to run into problems no matter what CMS you choose and you'll want to deal with any issues as fast as possible. With Wordpress dominating the market there's almost unlimited resource available from other users and in this sense its definitely a winner. The downside of Expression Engine, my preferred CMS in many other aspects, is that its paid for and as such the community of users is not as vast as for other CMS, however, it does have a strong user community and the benefit of payment is that expert technical support is available from the very people who make the software.

Design Friendly Editors

Most CMS have a WYSIWYG editor, the interface through which content is updated. With some CMS, this editor allows the content provider to apply basic formatting, such as font and color. How much control do you want to give the content provider over the design? Should you choose an editor to mark up headings, lists, links and other elements, without specifying how they should appear?

The WYSIWYG editor provided by Wordpress is very popular among developers and content editors alike and I find it does the job well. What I like is the option of many CMS to support numerous editor plugins which you can choose from according to your preference. If the plugin of your preference is available this aspect shouldn't drive your choice of CMS.

Asset Management

With site accessibility being of high importance you'll want your CMS to ask for attributes on all images. You may also want the system to provide basic image editing options, such as cropping, resizing and rotating. What about other assets? Can PDF files and Word documents be uploaded and, if so, how are they displayed to the user?

In this case Wordpress will do what you need for a simple site or blog, but, again, there are better options out there for increased flexibility or for developing more complex sites. Drupal was not developed with asset management in mind and has no default asset management system (something I find slightly bewildering for a CMS) leaving you to create your own using various plugins. This can be great if you're looking to design your own level of flexibility, however, my preference here, if working on a site than needs more than what Wordpress can offer, is for Expression Engine which provides you with a ready made flexible solution.

Search Engine Optimization (SEO)

The best approach to SEO I find is to do the work yourself and not to depend on the CMS. That said, if you're looking for an easier approach there are some very useful SEO plugins available for some CMS which can have a tremendous impact. The Yoast SEO plugin for Wordpress is one particularly fine example.

In addition to SEO you may also want to consider the functionality of the search function within your site. Does it index the entire content of each page? Can you limit the scope of the search function to a particular section of the website or refine search results once returned? How does the search engine determine the ranking of results? Can you control how results are displayed and customize the design? One straightforward solution to this is to provide a customized Google search engine for your site which can be used independently of the CMS you choose.

User Interaction

If you are planning to post forms and collect responses you will need to see if the CMS provides appropriate solutions. Your CMS should support the processing of forms, who the data is emailed to, if data is output in databases or excel spreadsheets. If you'd like to maintain regular communication with site users you may also look for support in emailing newsletters, news feeds and providing RSS feeds.

Editor Access

If the site will have a number of editors you'll need a CMS that supports user permissions. You may want to provide administrator access to some users and restricted access to others and, thus, will need a CMS that can support these options.

Conclusion

Simply put, your preference should be determined by the project requirements. Put on the spot I'd say Wordpress is a great option for simple websites and if you're looking for something more flexible which can support more complex sites then go for Expression Engine. If you're wondering why I rarely mention Joomla or Drupal in this discussion its because I'm not a fan of Drupal's interface and I find Joomla to be too flexible to the extent that its out of control, control being something which should be key to any CMS.