It can make your life much easier if you use a web publishing platform, such as a Content Management System (CMS) or blogging software to author the pages of your website, but you should be aware of the HTML that it generates. As discussed in the HTML for SEO article on this website, the HTML you use can make a profound difference to the way search engines interpret your website and therefore your ranking.
Most publishing platforms can be configured to produce valid HTML and help you to create better content for SEO, but some systems are a lot better equipped out of the box and a little research can save you a lot of pain further down the line. There are a lot of factors that you will need to consider when choosing a publishing platform, including cost of the software, ease of use, scalability, ease of development, support, hosting, integration with existing systems, built in accessibility and of course, search engine optimisation. No doubt some of these factors will be more important to you than others. If you’re a blogger looking to implement a new solution to get more of an audience for your rants, cost will most likely be a major factor, whilst if you’re a large corporation migrating to a new CMS, ease of use, support and scalability may be overriding factors. Whatever your situation, it would be a mistake to leave SEO out of the equation.
Once you have considered your hosting options, this article will help steer you in the right direction for your circumstances, exploring the features to look out for and recommending some specific solutions, with SEO in mind. Bear in mind your choice of publishing platform may influence your hosting or vice versa depending on your situation, so consider the whole picture before committing.
SEO features to look out for in a CMS
As described in the HTML section of this website, it’s important for SEO that your website HTML is valid. There are 3 elements to consider here.
The HTML produced by your templates
Any CMS worth its salt should allow you to create 1 or more templates containing the layout for different sections of your website. If you have complete control over the HTML output, you can ensure this is valid and accessible. CMS’s with an automatically generated template that you can’t easily alter should be avoided.
The HTML output from the text editor
All CMS’s have a text editor of some sort – usually a WYSIWYG editor allowing non-technical users to apply formatting easily. This formatting is of course applied using HTML/CSS, so it can be interpreted by browsers. Some editors are better than others at using valid HTML. In some cases the editor can be selected from a few choices or supplemented with a plug-in. Make sure your CMS either has a good editor out of the box or allows some flexibility. The better editors will have HTML or XHTML validators built in. ‘Paste from Word’ functionality can be quite useful for stripping out Microsoft’s odd looking formatting. Not strictly HTML related, but a spell check is a handy feature for SEO too.
The HTML produced by the framework itself
The more support and suggestions a CMS can give to help you meet HTML and taxonomy SEO best practices on your website, the better. The following are suggestions on some SEO features to look for in a CMS. For more information on how to optimise content in Page Titles and Meta Tags, check out the Page Titles and Meta Tags for SEO article on this website.
When you create a page in a CMS, the content will generally be stored in a database and the page will be rendered dynamically using a server side page based on a template. This means several pages can share the same physical file and an identifier is used so the database can select the content to display. Most modern CMS’s use some form of URL rewriting to ensure the URL is human and search engine friendly, so pages are named something like ‘/seo-cms.html’ rather than ‘/template1.aspx?pageid=123’. In the case of articles, a CMS should use the hierarchy to construct the URL (e.g. ‘/technical-architecture/seo-cms.html’) or in the case of a blog entry, using categories is useful (e.g. ‘/seo/how-to-choose-a-cms-for-seo.html’). This helps search engines organise your site structure and in some cases (Google for example) offer users a handy breadcrumb trail where it displays your page in the listings. You should also have the ability to override the auto-generated URL.
Most CMS’s will automatically create a title tag based on the page title (used for filename/URL), but since search engines (and humans) are most interested in the first 60-70 chars of the title, it’s helpful if your CMS is aware of this and alerts you if you attempt to generate longer titles, allowing you to edit independently of the page title if necessary. Another handy feature is for your CMS to inform you of any duplicate titles, since duplicate page titles will at best split traffic and at worst have search engines penalise you.
Meta Description Tags
Description tags won’t in themselves help search engines find you – they just suggest text for search engines to show as a summary of the page when listed. If not present, the search engine will select some (hopefully) relevant text from the page. For this reason, there’s no particular benefit for this to be generated automatically by a CMS, but you should have the option to enter a tag manually when authoring a page, so you can write a suitable short description.
Meta Keywords Tags
Again, there’s no particular benefit in a CMS selecting random keywords from what’s already in your page content, but it’s handy to have the option to create the necessary list of comma separated keywords through your CMS interface on a per page basis.
Most CMS’s allow you to create internal and external links with a title tag within a WYSIWYG editor. Another handy feature for link building within your site is the facility to auto generate internal links based on content. As ever, there’s no substitute for hand crafting these tactically though.
Since your CMS will hold all of your page names, URLs and structure, it’s well placed to automatically generate an HTML site map for humans and an XML sitemap for search engines.
Media should be stored by the CMS in a single suitably named physical folder (e.g. /images/seo.gif). Since alt attributes are essential for SEO, CMS’s should allow for or even insist that an alt description is entered when images are incorporated into a page.
If a non-existent page is requested (404), it’s good practice to redirect to a sitemap – this should be configurable within the CMS. You should also be able to create a custom error page (500) displaying a friendly error message, mainly for the benefit of users. It doesn’t look very professional if search engines spider error pages, so if your CMS can inform you by email when errors happen so you can attempt to fix before this happens, all the better.
Choosing a platform
The following recommendations (and warnings) may save you some research and development time.
If you’re considering investing in one of the larger CMS’s listed here, the likelihood is, carrying out a couple of weeks of development work to improve SEO will be a drop in the ocean, so these are just listed for information and examples of their class.
Alfresco: Open Source Java based Enterprise CMS platform.
Day: Commercial Java based Enterprise CMS platform.
Autonomy/Interwoven: Commercial Java based Enterprise CMS platform.
Documentum: Commercial Enterprise CMS platform.
Open Text/Vignette: Commercial Java/Oracle based Enterprise CMS platform.
Open Source PHP/MySQL based CMS platform hosted on Linux or Windows. Good for SEO, with friendly, customisable URLs, meta tags. Basic implementation out of the box, but great community support with plugins for internal links, decent text editor & blogging functionality.
Commercial ASP.Net/SQL Server based Enterprise Portal & CMS hosted on Windows. Average for SEO. Not great support out of the box for SEO friendly URLs & internal linking, but EPiSEO module improves this and adds some decent features.
Commercial ASP.Net/SQL Server based Enterprise Portal & CMS hosted on Windows. Awful for SEO. Sharepoint creates horribly invalid and inaccessible table based HTML out of the box. CSS Friendly Adapters and Telerik’s Rad Editor plugin can be implemented to resolve these issues, but (from very painful personal experience) be warned it can take a lot of effort to make this work as you would expect it to. SEO friendly URLs are also less than ideal, with MOSS adding ‘/Pages/’ to the front of all pages by default and offering no simple option to remove this.
Open Source Zope/Python based CMS platform hosted on Linux or Windows. Good for SEO. Friendly customisable URLs, auto-generated internal links.Plone SEO, Plone Google Sitemaps and Redirection Tool plugins make this a good CMS for SEO.
Commercial ASP.Net/SQL Server based Enterprise Portal & CMS hosted on Windows. Great for SEO. Powerful SEO module includes Page Information Overview, Text Only View, Keywords, Search Engines, Headings, Images, Links and Meta Tags. Uses Telerik Editor with built in XHTML validation. Decent blog module included.
Open Source PHP/MySQL based CMS platform hosted on Linux or Windows. Good for SEO. Fairly easily customisable Titles, Meta Tags, Image alt attributes, Internal Links, Information Architecture, Textual and XML sitemaps
Open Source PHP/MySQL based CMS platform hosted on Linux or Windows.Good for SEO. Massive community with a few SEO plugins and dedicated Joomla SEO site with plenty of useful tools.
Commercial ASP.Net/SQL Server based Enterprise Portal & CMS hosted on Windows. Good for SEO. Uses Telerik’s own XHTML validating RAD editor, SEO friendly URLs, easy to implement blogging & community elements.
Open Source ASP.Net/SQL Server based Enterprise Portal & CMS hosted on Windows. Average for SEO. Tiny MCE editor produces mostly valid HTML output, meta tags & image alt tags are encouraged. Easy to customise and tailor HTML manually, but not much in the way of community based SEO plugins.
Open Source PHP/MySQL based Blogging/CMS platform hosted on Linux or Windows. Great for SEO. Plenty of good features out of the box, with customisable URLs, hybrid title, description & keyword meta tags, 100% valid built in HTML templates & very good text editor output. This really comes into its own with community based support and a barrage of SEO helper plugins for everything from auto-generating internal links to social bookmarking.