Dos and Don’t s of CMS Implementation

Updated: March 31, 2011

1. Understanding website CMS - Know your contents.

The very first step to built a CMS is to understand the content. Though it sounds self evident, content is key and that's why they call it the 'Content Management System'. Start by asking yourself, a few basic questions: What parts of the theoretical content you will be managing? Who is the audience for this content and where does the content fits in the CMS? Which section of content is required to be editable, and how frequently does it change? What is the lifespan of your content, and what will be the production process? Find the answers to these questions, to determine what your true requirements are. While you might love a particular CMS and think it's the best thing, your clients might find it confusing, hard to use, and extremely complicated. Don't select a system until you know your content completely, and the process used to create it. The key part is to understand the contents, list down the assumptions and share it with your client, and get it approved before starting any further progress.

2. Choose the right CMS - One Size does not fit.

There are many open source CMS targeted at different markets, a few examples being WordPress, Drupal, Joomla, Silverstripe, etc. These CMS systems have huge variations in cost, technology, and complexity. A CMS that works perfectly for one client, may be a total disaster with another client. The goal is to find a system that meets your specific website content, client usability and project cost. Look out for extra functionality requirements in your website, and check for CMS feasibility. Find the best CMS that fits for your client's business needs, and make calculated changes to the site. If you are in doubt about a CMS, then leave it out of you list. Chosen CMS should have extensive user manuals and frequently visited support forums. The documentations should provide information from basic use of the CMS to customizations and advanced functionality.

3. Build your CMS taking care of usability and accessibility.

Do remember that this is the most important point. Each section of the CMS should be developed, with your end customer in mind. Usability testing can help improve the odds that your users' needs are met when your new site launches. Any change done by the CMS editor, should not break the website. The coding style and site structure should be very user safe. WYSIWYG editors make life easier for your clients, and though they may not know html, they may want to be able to use bold or italic text or use header tags to create sections within their pages. They may also want to add an image or change existing one. A WYSIWYG editor makes that all possible for non-tech savvy users. A good CMS based websites should have always a search option to enable visitors to search for any specific contents. Admin search provides quick access to the contents, that your client is looking to update. So while it's tempting to focus on "the system" you should never underestimate the importance of user-centered design.

4. Tighten your contents - Make your CMS sturdy

When implementing CMS, take ultimate care to make sure contents on website are non breakable. Use custom fields and widgets wherever required. Divide your page into smaller bits and assign them to each custom field, only wherever required. Make sure the name of custom fields matches the content and the clients can easily understand and edit them. A good CMS should have a standardized and consistent format for each section of the back-end. If one section uses a drop- down menu for selection, then all of the other sections should not have radio buttons or some other selector, unless required. The sections in the CMS should be properly named or referred, similar to the sections on the website. This will help your clients easily find and edit them. If something is called a 'testimonials' in one place and a 'clients speak' in another, that's going to get confusing. Same goes with names like 'sidebar', 'second column' etc, as this will surely confuse your average user. Do not use any programming code embedded the editor area, or custom fields.

5. Do utilize the template tags as much as possible

Do not make users rely on numerous plugins for your theme to work. In CMS like WordPress, understand the WordPress template tags and then utilize them in your code. By using template tags, you're will be able to ensure that your themes don't break or cause errors when the end user sets it on another server, and the CMS you built will be cross server compatible. If your themes has more than 6 needed plugins, it will cause people to be frustrated, when downloading and setting up the website on their production servers.

6. Do not hard code full URL's into your themes

When you're building your CMS themes, there may be times where images are used, for social media icons or RSS feed icons, and during these points in your coding, you may want to code the full url out (ie: /wp-content/themes/your-theme-name/images/image.jpg) but this will cause errors in the website whenever the person using your theme changes their theme folder name. So the proper codes to use in order to pull the full URL's dynamically are below. <?php bloginfo('stylesheet_directory'); ?>/images/image.jpg. Apart from this, make a clear distinction between images that are part of the design and images that form the dummy content i.e. the contents that is placed in the editor. Place these two type of images in separate folders, and use the dynamic urls to pull these images.

7. Do not make excessive use of custom fields

Clients would prefer filling lesser custom fields basically not more than 2 for each post. So, inorder to make things easier for them, minimize use of custom fields. If you're going to show an image from the home page posts for your theme, write codes in your functions.php file, to automatically show the posts first image, without the need of a custom field. Use custom fields only where there is consistency in requirements.

8. Do make use of the widgets where ever possible

For CMS, the widgets should be used wherever required, by properly naming them and structuring it for easy use. Use them especially where the clients do not have to change much and the contents are less likely to change. Do not expect your clients to know programing code or even html. Use them for your sidebars and various other places. For eg if you have a four column footer, then widgetize it. It's one of the easiest things to do to your themes, and will benefit your theme's users a lot.

9. Getting your coding right

All areas in your CMS, where contents changes frequently or are exposed to clients, should never have your programming codes embedded into it to prevent CMS failure. A few point should be noted, while working on css and Javascript files. Do not use inlines css and use the following coding conventions for your website CMS indent property-value pairs using double spaces, and place place property-value pairs on their own in separate lines. Use a consistent property order; use shorthand for font, border, padding, margin and background properties if possible. Always use full six digit hex codes for colors. The core content and functionality of the website must be available to users with Javascript disabled. Put js files at the end of the body, just before the tag. JQuery is preferred framework due to its excellent usability. Avoid inline js, and merge & minify the use of js files. The elements that require js functions should be included on the page by js. Clients should be able to control the contact forms. It is a good practice to create roles and privileges for the admin users. Once final CMS system is created, make a new editor access, and request your clients to use it. The client's access should only have the sections that he needs to view or edit. Keep your code well commented, clean and avoid any programming hard-coding and keep backups of your code regularly.

10. Do not clutter your CMS with extra not-used components/plugins/widgets

Keep your CMS clean and clear by sanitizing it. Do not keep adding tons of advanced functionality, if it is not required on the website. Always use a CMS that does the one thing you want to do really well and forget about the other features. Make sure to check all the installed plugins, modules, components, widgets, etc for their actual use on the website. If they are not required, remove them. This will shield the clients from the complexity of the CMS, and make it simpler for them to understand.

11. Do make your CMS SEO friendly

The best way to ensure your theme is as search engine optimization (SEO) ready as possible is to remove the default tag found in your themes <em>header.php</em> file. Install <em>SEO plugins</em> that allows URL rewriting and allows different <em>metatags</em> on different pages.. This will help the SEO efforts that your clients will want to put into practice - all without requiring them to touch a thing. The same thing has to be applied to all your meta tags to get good SEO. Add tracking codes on all pages to measure your website's analytic. Create a well formatted XML sitemaps for the website. In most cases, the chosen CMS creates them automatically, or you may have to install a particular plugins.</p> <p> </p> <p><strong>12. Documenting the CMS</strong></p> <p>Custom user manual for your CMS is very valuable. It should provide information on everything from basic use of the CMS to do changes on each and every site structure. All the sections need to be clearly explained to the client. You may also use the existing CMS standard manual as base guidelines. Prepare an assumptions area and add all related points there to keep transparency. You may also additionally help your clients by providing the urls and other details they need to look for when working at the site back-end. In addition to being complete, your user manual should also be easy to understand and accurate. </p> <div class="clear"></div> </div> <!-- right column --> <div class="col-sm-3"> <div id="module478" class="panel panel-primary"><div class="panel-heading">Featured Research</div><div class="panel-body"><ul class="list"><li><div class="item list-thumb-sum"> <div class="title"><a href="/resources/item/adobe-acrobat-sign-means-business">Adobe Acrobat Sign means business.</a></div> <a href="/resources/item/adobe-acrobat-sign-means-business" class="thumb"><img src="https://wh-images-cache.s3.amazonaws.com/assets/1906232209544a4ebd3769946391318c/1906232209544a4ebd3769946391318c-60-42-q65-webp" title="Adobe Acrobat Sign means business." alt="Adobe Acrobat Sign means business."/></a> <div class="summary"> <p> <span class="more"><a href="/resources/item/adobe-acrobat-sign-means-business">more</a></span></p> </div> <div class="clear"></div> </div></li> <li><div class="item list-thumb-sum"> <div class="title"><a href="/resources/item/tapping-into-advanced-workflows-to-grow-and-energize-your-business">Tapping Into Advanced Workflows to Grow and Energize Your Business</a></div> <a href="/resources/item/tapping-into-advanced-workflows-to-grow-and-energize-your-business" class="thumb"><img src="https://wh-images-cache.s3.amazonaws.com/assets/2971256b417040678c4f50185bdd7638/2971256b417040678c4f50185bdd7638-43-60-q65-webp" title="Tapping Into Advanced Workflows to Grow and Energize Your Business" alt="Tapping Into Advanced Workflows to Grow and Energize Your Business"/></a> <div class="summary"> <p> <span class="more"><a href="/resources/item/tapping-into-advanced-workflows-to-grow-and-energize-your-business">more</a></span></p> </div> <div class="clear"></div> </div></li> <li><div class="item list-thumb-sum"> <div class="title"><a href="/resources/item/2023-password-management-software-buyers-guide">2023 Password Management Software Buyer’s Guide</a></div> <a href="/resources/item/2023-password-management-software-buyers-guide" class="thumb"><img src="https://wh-images-cache.s3.amazonaws.com/assets/0e034f6f415143819267b5326763a3c2/0e034f6f415143819267b5326763a3c2-60-37-q65-webp" title="2023 Password Management Software Buyer’s Guide" alt="2023 Password Management Software Buyer’s Guide"/></a> <div class="summary"> <p> <span class="more"><a href="/resources/item/2023-password-management-software-buyers-guide">more</a></span></p> </div> <div class="clear"></div> </div></li> <li><div class="item list-thumb-sum"> <div class="title"><a href="/resources/item/2023-expense-management-buyers-guide">2023 Expense Management Buyer's Guide</a></div> <a href="/resources/item/2023-expense-management-buyers-guide" class="thumb"><img src="https://wh-images-cache.s3.amazonaws.com/assets/cd738e77ed3c46debdf519ebbbc2b67d/cd738e77ed3c46debdf519ebbbc2b67d-60-27-q65-webp" title="2023 Expense Management Buyer's Guide" alt="2023 Expense Management Buyer's Guide"/></a> <div class="summary"> <p> <span class="more"><a href="/resources/item/2023-expense-management-buyers-guide">more</a></span></p> </div> <div class="clear"></div> </div></li> <li><div class="item list-thumb-sum"> <div class="title"><a href="/resources/item/2023-erp-software-buyers-guide">2023 ERP Software Buyer's Guide</a></div> <a href="/resources/item/2023-erp-software-buyers-guide" class="thumb"><img src="https://wh-images-cache.s3.amazonaws.com/assets/ec72060cefaa42f18d1f51acc5cc97ea/ec72060cefaa42f18d1f51acc5cc97ea-60-30-q65-webp" title="2023 ERP Software Buyer's Guide" alt="2023 ERP Software Buyer's Guide"/></a> <div class="summary"> <p> <span class="more"><a href="/resources/item/2023-erp-software-buyers-guide">more</a></span></p> </div> <div class="clear"></div> </div></li> </ul></div></div> </div> </div> </div> <footer class="footer"> <div class="container"> <p class="text-muted"><a href="https://www.facebook.com/comparebusinessproducts/"><img alt="Facebook" src="/content/assets/20/socialbuttons/facebook30.png" width="30" height="30"></a>   <a href="https://www.linkedin.com/company/compare-business-products"><img alt="Twitter" src="/content/assets/20/socialbuttons/linkedin30.png" width="30" height="30"></a>   <a href="https://twitter.com/comparebusprod"><img alt="LinkedIn" src="/content/assets/20/socialbuttons/twitter30.png" width="29" height="29"></a></p> <p class="text-muted"><a href="/">Home</a> | <a href="/articles">Blog</a> | <a href="/newsletters">Newsletters</a> | <a href="/news">News</a> | <a href="/resources/search">Resource Center</a> | <a href="/about-us">About Us</a></p> <p class="text-muted">©2023 CompareBusinessProducts.com. All rights reserved.</p> <p class="text-muted"><a href="/terms-and-conditions">Terms of Use</a> | <a href="/privacy">Privacy Statement</a></p> </div> </footer> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> </body> </html>