A CMS can make or break a website so selecting the right system is a very important decision in any web project. A great CMS should be simple and easy to use, allowing users to easily add and edit content. Base functionality is therefore a good starting point for any decision, but it can be confusing due to the fact that most systems claim to provide everything you need.
There are benefits of choosing an option based on some of the more complex systems out there (Drupal or Typo3 systems for example), in that they offer experts a wide range of functionalities and can be very powerful. A problem often encountered here however is that it is very difficult to reach this expert status especially if you want to have a large number of users accessing and editing the CMS.
A common alternative is to use a system based on PHP which generally offers more flexibility and a more intuitive interface. What’s lost in power, will certainly be made up for in ease of use. Custom built solutions such as this are therefore often best in the long run. A custom made solution allows you to build in the desired the levels of rigidity or flexibility and the process is often helped along by the fact that there are strong open source PHP communities to draw knowledge from.
If this is the path that you choose, you need to make sure that you include the features that you need. Starting with a blank canvas is exciting but equally challenging. Here are some of the features I see as ‘must haves’ for any CMS.
A key feature that you will need to consider is template integration. Larger systems may offer ‘out of the box’ template solutions which allow you to pull a website together fairly easily. A custom made solution may mean that you have to employ the help of a developer to have your designs made, but it provides greater flexibility allowing you to tailor your website to the actual needs of your end user. Once integrated, a modular approach can take this to the next level.
A nice way to maintain an element of flexibility in your CMS is to produce the components as modules. A modular concept is best described as a giant jigsaw that allows you to put modules together to build the pages on your site. Of course it is sensible to have some elements on each template that are static, but flexible side panels or below the fold sections can add real value.
A CMS should offer users a wide range of tools to make the publishing process as simple as possible. It should include content upload, download, editing, copying, live/draft mechanisms, a preview section etc. A nice feature is help messages that display as the user enters content or grey shadow text showing the sort of information the user should be entering. It should also cover multi-media upload and integration. The publishing interface should feature an easy to understand toolbar that users can get to grips with with very little effort.
Rights and roles
It is important to have a permissions dashboard where you can set access levels for different users in each part of the CMS. This can allow users access to sections, languages, different portals and even specific pages. Splitting roles into super users (who can do everything), publishers, editors and reviewers is generally sufficient, but having the capability to be even more specific should it become necessary is worth considering.
As there will be people with different roles working on the content, an approval function will ensure that there aren’t any content mix ups. Particularly important if more junior members of staff are doing the bulk of the content entry. A simple tool allowing editors to push content to publishers is generally all that is needed here.
Equally as valuable as an approval tool is a version control function in case something does go wrong. Some set-ups allow you to roll back pages to a specific date or compare differences between two page versions. A simpler alternative is a setting that allows you to return to the last saved version, the only problem that may be encountered here however is if any changes were made in between.
Content reuse is an absolute must for any CMS. Content needs to be single source so that if it is used in multiple sections of the website, changes to the original will be mirrored in any copies so that duplication is eliminated.
It is important that links are unique throughout the system and possess a unique identifier that ensures that they do not become broken. For this reason it is necessary to have a function that maintains links via a unique ID so that when a link is changed at any point, this change is then automatically made across all locations where this link occurs in the CMS.
Tagging content is essential. It makes it easier for users and search engines to find content across your site and also improves SEO. It can also have huge benefits for the way your site functions. Tags allow you to categorise content which can bring many possibilities to automate content such as topic relevant content and teasers being pulled through to pages based on predefined settings. Done properly, this can save those managing the website a lot of time.
It is important that your CMS has a user friendly dashboard to make administration as easy as possible for the end user. This could include notifications to alert users to any activity such as new content or status changes.
The main interface must be clear in what its shows and the navigation should be structured in a non-complicated way. Depending on the size of the site, this could include a pages/folder structure with a breadcrumb similar to that used on Windows Explorer for larger sites or a straight list format for smaller sites.
Business is global nowadays so the chances are that you will need multi-lingual functionality. A neat and tidy solution in the CMS needs to be created to allow you to do this, whether this be sub-portals for each language or language tabs on each page.
For larger websites complications can occur when you start having different country sites each with their own language specifications. A sensible solution is to offer tabs for each country and then a drop-down allowing the user to switch between languages on each tab. Effective rights and roles settings can make things easier here as controls can be put in place so that users only see tabs relevant to the sites they manage and languages they speak. Usability is the key feature. It is vital that users do not become confused as to which site/language they are editing.
Another feature worth considering is a translations section where you store all of the recurring translations across the site (buttons, links, navigation titles etc.). Translators can access this section to enter translations which are then reflected across all sections of the site.
Full Unicode support (including special characters)
When building an international website, it is important that the site supports all languages it encounters including unique character sets such as Russian, Japanese, Korean, Arabic etc. You also need to think about the implications such languages will have on your design. It is generally accepted that Japanese websites forego the traditional top to bottom Japanese text style in favour of Western left to right, but languages such as Hebrew and Arabic will still need to be displayed right to left. In many cases, the design of your website may need to be altered to accommodate this but as a minimum, the CMS needs to be able to cope with this.
Compatibility and responsiveness
You need to make sure that the CMS works on as many possible machines and devices as possible. Whilst this will generally be easy, you will problem experience some difficulties with your IEs and Blackberries of the world. Compromise is the way to go on this front (although a complete boycott of IE would be lovely).
Another point to bear in mind is that it is not only the end site that should be responsive. The CMS itself should be user friendly and responsive. It is likely that users may want to access from tablets or phones as well as from laptops. A responsive design here can massively boost usability and productivity.
The CMS should have an integrated search function to allow users to quickly identify content in the backend. This could be configured to search page types, page titles, files formats or even the in-page content. Little touches like this can hugely improve usability.
Search Engine Optimisation
Each page should have its own tab for SEO customisation allowing users to enter information such as page titles, tags, metadata, keywords etc. If any of these aspects can be generated automatically based on the content, that is advantageous and will create consistency across the site. Google rewards websites offering good quality content, but SEO is definitely not something that should be ignored.
Social media is massively important nowadays so it is important that your CMS can support multiple platforms and functions. It should be easy to integrate social media sharing and integration buttons. Easy set-up social media integration modules could also be a huge benefit and would provide extra flexibility across the site.
It can also be hugely beneficial to setup social media share settings for each page on your site using APIs such as the Open Graph feature. This means that if your content is shared on Facebook, Twitter, Linkedin etc. then it is automatically formatted with the right headline, photo, CTA therefore avoiding messy links and hopefully driving more traffic to your website.
An area where you can manage digital uploads is highly beneficial. If you can store and manage images, videos, files etc. in one place, it can make it easier to manage them especially when it comes to searching for files which can prove a nightmare in larger sites. The ability to add descriptions to these can make this management even easier. It may also be useful if the CMS is able to provide some editing functions such as cropping or selecting the centre point of an image (i.e. a face or landmark).
A CMS that works well with multiple analytics systems is crucial. It should be able to integrate Google Analytics or similar systems as a minimum. Understanding how users interact with your site will influence your content strategy in the future so reliable analytics is essential.
Even if you are not planning on running simultaneous website, choosing a CMS that allows you to run multiple websites from one platform is sensible. This will allow you to set-up different portals parallel to one another, running on the same infrastructure but with different URLs.
It is important that there is adequate support following Go Live and during the run phase of the project. Training prior to Go Live is also advisable. Whilst a great CMS should be as intuitive as possible, the value of training and support in ensuring smooth implementation should not be forgotten.
It goes without saying that a CMS needs to be secure protecting all data contained within it as well as any APIs in any communication processes. Secure URLs and servers can help here. User passwords should also be configured to incorporate special characters to make the CMS harder to hack. The login process can also feature a lock-up after a specific number of failed login attempts. A forgotten password function whereby users are emailed a replacement password is also sensible.
So these are some of the features I think you should look for in a CMS. Remember that they don’t all have to be created all at once and it is feasible that functions can be added over several project phases. Scalability is key so picking a CMS platform that is customisable and can grow in functionality is properly the best route to take.