A client was recently told that they needed to build a custom content management system or CMS. If your web developer or head of engineering is telling you they need to build you a custom content management system and you have survived the initial heart attack, here are some recommendations (apologies for the formatting) for how to make it search-engine-friendly:
1. Don’t do it.
There are off the shelf alternatives, and while they all have their issues they are certainly worth investigating. Dave Naylor’s blog has a great discussion going on search engine friendly content management systems. Spend your time and treasure on something more interesting. If you are still bent on taking this route then make sure the system has the following requirements:
2. Category Manager
Allows the user to create category names for search engine consumption that can show up in the URL, Title Tag, Meta Descrition Tag, Meta Keywords Tag, Alt Attribute, Anchor Text, Title Attribute, etc. Examples of categories could be sections, dates, authors, etc. An example of a date category could be “November/2007”.The naming conventions need to have a consistent logical structure. For example if you have /deliverables/seo/reporting/ then you shouldn’t also have /deliverables/reporting/seo/ or /deliverables/seo/client/reporting/.
3. Content Creation
When the user enters content such as an article and creates the article title the CMS needs to follow normal guidelines for the Title Tag, Meta Description Tag, Meta Keywords Tag and the file info. Only one keyword rich file name should be associated with the article. The filename is the unique identifier for the article and all related info.
Title Tags should be between 65 & 70 characters long including spaces. If the user enters an article title that is not over the maximum characters the title is left as is. If it’s longer, the system asks for a revision with suggestions or else gives the user the option to keep it as is. If the user wants to keep it longer than the max, it should tell the user to put the most important keywords in the first 65 characters. Once a Title Tag is entered, the CMS should do a “Duplicate Check” and see if there are any duplicates in the System. If there are, the CMS should notify the user and offer the ability to edit either Title or to accept.
Meta Description Tags
The CMS can use the first 30 words of the body copy of the article or two complete sentences, whichever is shorter, as the Meta Description and allow the user to edit. The same rules as the Title Tag apply. The user has the option to not add a Meta Description Tag.
Meta Keywords Tags
The CMS should pull out all stop words from the Title Tag and the Meta Description Tags (e.g. commas, dashes, “a”, “to”, “for”, etc.) and provide the user with a list of all remaining words separated by commas. The user can edit the words, add/remove commas, etc. Once the Meta Keywords Tag is accepted the CMS should do a Duplicate Check.
Once the article has been entered into the CMS, the user can select a category and assign the article to the category.
Multimedia Files: Images/pdf/Video, etc.
If there’s an image, video, pdf or other multimedia file associated with the article there needs to be a category structure based on the type of content (e.g. latimes.com/images). At the time of uploading images ask user for the alt tag. Ask the user if they want to change image name. If the user changes the name check the desired name against a list of all image names to make sure it is unique.
It can be helpful to the user to provide a way to autogenerate internal links so they don’t need to keep pulling up the site and finding urls to link to. We recommend creating a file alias or one word in the file name (e.g. first word) to create text links. If the user is adding new article to a section or editing an article the CMS highlights the word to link to another post and autogenerates the link, anchor text and title attribute if the user requests it. The user should be able to edit all elements of the link.
4. 301/302 Redirects
Each folder request with standard extensions (index. or default.) should 301 to the root node. If the user requests a file that doesn’t exist then 404 the request to a custom sitemap. If you don’t recognize the request then 404 it.
The sitemap for each main section of the site should be generated by custom logic (e.g. do we want to have links to all categories, only 10 important pages, etc.). For sitemap xml file generation make sure CMS supports it.
Anyone else have some good suggestions?
Update: There is a great discussion going on Dave Naylor’s blog re Content Management Systems for SEO.