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
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.

Category Selection

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.

Text links
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.

5. Sitemap

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.

Share This Story!

About Author

42 Response Comments

  • Josh Garner  October 30, 2007 at 10:14 am

    Awesome post. I’ve been a long time fan and user of WordPress, and a lot of the plugins needed have already been built by someone. Would save a lot of time and money as opposed to building something from scratch.

    I’m also giving Drupal a shot on SEO Factor, but that won’t be up until I can learn it inside and out. But there seems to be a lot in the way of customization.

  • Zachary Fox  October 30, 2007 at 2:26 pm

    I have to second the first piece of advice. Don’t do it! I built a CMS, starting well over a year ago, that encompasses many of these features. It’s built using Ruby on Rails, and was basically designed to be the SEO CMS solution. Of particular importance is the url system. We have automatic 301 redirects if you change a url, etc…

    I really like the internal linking idea. I may steal that one and incorporate it. Other than that, we have all the bases above covered.

    It has been nice for us, and it works well, but I think that using wordpress, drupal, or joomla and modifying it to suit your needs is probably a better solution. One advantage our RoR solution has is a very small code base. 2400 lines of code and shrinking (as I refactor). The biggest disadvantage is that it doesn’t have a large installed base and a group of other developers working on it. One of the best things about using a popular open source package is that someone has probably already done what you want to do, and if they haven’t, there is a base of developers that are familiar with the platform.

  • Dustin Coates  October 30, 2007 at 4:16 pm

    I don’t know about all of these on your list, but going through I recognized that Drupal has most of these. Granted it isn’t out of the box SEO-optimized, but only a few modules will give you most of these options. It’s worked pretty well for me so far. I’ve heard someone say it’s overkill for a blog, but it works for me and I can’t really imagine going to another CMS.

  • Bernt Johansson  October 31, 2007 at 4:47 am

    Good article.

    Searchengine friendly, custom built CMS can be a hazzle. And I totally agree, why invent the wheel all over again when such systems as Drupal are free and fully customizable.

    I have been working with drupal for a few years now, and it is the most customizable CMS I have ever seen. And on top of all, it can be customized to fit the needs of todays search engines.

    If you haven’t tried it before, and you are a SEO freak like me, it’s a must.

  • g1smd  October 31, 2007 at 6:57 am

    I have nightmares with Joomla.

    It is riddled with serious issues.

  • Andrew  October 31, 2007 at 7:43 am

    I haven’t used Joomla, but we’re dealing with Interwoven’s TeamSite where I work. ‘Nightmare’ is an understatement. I can’t believe someone payed money for it.

  • Daryl  November 1, 2007 at 10:22 am

    Search Engine Optimized CMSes have been a particular interest to me. I developed once at a past employer which worked out fantastically, although written all wrong as it wasn’t object oriented so maintaining a 40,000 line system became a disaster. I’ve since been developing a brand new one (Webspider CMS) which will fix all shortcoming of this past one. Most of the things you have mentioned are incorporated, but I have tided them in different.

    The big difference is in my option there is no need for a category manager. This is better achieved with a “page manager”, which allows you to created the website hierarchy by adding child pages, either as nav based, or unlinked children that can be added and linked through the content. Then on each page you can seperately over ride the default desc / keywords, or use the standard ones. I then allow a user to add an unlimited number of components to a page (and order them). A component can be a text block, event calendar, downloads, photo gallery, catalog, or whatever custom cookie cuter type items the site owner wants.

    The system then executes with a single index.php file called with different 301 redirects. The only downside is the amount of SQL calls depending on the object type. Eventually I want it to publish to flat xhtml files, but thats all in the future. Cheers.

  • Andrew Shotland  November 1, 2007 at 4:59 pm

    Canadian SEO: I like your page manager solution, and I like the Mackenzie Bros. so you always welcome.

  • Daryl  November 5, 2007 at 10:41 am

    Thanks… I sured learned a lot from that initial project I did, mainly how not to do it 🙂 After that I worked for a company that serviced some Ironpoint clients. Ironpoint is around a $100K CMS… and it also sucks badly, the whole thing is ASP.NET and just so slow, but there were some good ideas 😉

  • merlia  November 6, 2007 at 2:12 am

    Its really very informative to me, honestly saying i always have a confusion with those meta description and keywords tags through this i get a conclusion now. Thanks for your informative blog…

  • Andrew Shotland  November 6, 2007 at 6:32 am

    My pleasure Merlia. Feel free to stop by any time.

  • Vacation Rentals By Owner  January 4, 2008 at 3:05 am

    With so many awesome off the shelf content management systems you’d almost have to be a fool to develop one yourself.

    I don’t think there is one perfect one. It depends on you needs.

    That said I am a big WordPress & Drupal fan.

    Both have serious SEO issues out of the box with producing TONS of duplicate content. Nothing a lil TLC, plugins & some quick coding can’t fix.

  • Al Johnson  August 6, 2008 at 2:25 pm

    I have several Joomla sites ranking well in the search engines. In fact I will not create nor host a site that is not Joomla. With the new version 1.5.5 the issues for nightmares are almost non existant. It come right out of the box being search engine friendly and it’s getting better all the time.

  • Trezora Glass  August 10, 2008 at 8:59 am

    I realize that this post is related to CMS for blogs but I am curious if any of the commenters have built an e-business site. I have a custom/outdated CMS and shopping cart and am looking to upgrade to something more standard and full featured.

    Shopping carts integrate CMS and do an absolute horrible job of it. The vast majority have no clue about SEO.

    After much research, I think I have locked in on C-Cart because it has a good cart and has SEO functionality built in. I also want to add a blog to my new site and am now wondering if I will need a separate CMS for that.


  • Karlynn Urbanoski  September 12, 2008 at 6:46 pm

    Great article, thank you very much. Was a good read.

  • Gary Baldwin  January 4, 2009 at 6:15 am

    if you’re looking for a good out of the box SEO’d up CMS, take a look at MODx…

    Joomla and Drupal are great for ‘point and click’ web development but totally fall down when the client says “can it just…”, and I can’t believe people call WordPress a CMS… it’s a fantastic blogging platform, but it’s not a CMS (the number of times I’ve had to pick up the pieces after some scriptkiddie developer tried to do a commercial site in wordpress… sheesh)

    anyhoo, check out MODx, Revolution is going to be awesome in 2009… or keep hacking Droopla 🙂


  • James Svoboda  February 10, 2009 at 9:58 pm

    I have never encountered a CMS that had everything I approved of right off. It might be that my memory is failing, but I think SEO standards and basic elements have been around longer then most of the “good” content systems out there now.

    1. I find it helpful if the CMS has the ability to manually control the path instead of a dynamically generated on, say based on the page name or title.

    2. I like t see the CMS have flexibility with images and alt tags instead of some that I have seen that format images the same every time with no alt’s. Not all pics need the same gray/black border set at a distance of 5 pix.

    3. I also would appreciate it if they would allow more flexibility with manual cross linking between pages. Especially linking sub-cats that could be listed under multiple cats. This is a rare situation, but I have encountered this problem with clients who have added the same content to multiple pages under different cats because they naturally lead visitors to the content from both categories.

  • Wendy Roe  March 23, 2009 at 11:31 am

    Pixelsilk (http://www.pixelsilk.com) maybe a CMS of interest. Eric Ward (noted link genius) and other top SEO industry leaders such as Bruce Clay, Todd Friesen and Adam Audette have endorsed it.

    The CMS was launched at SMX West 2009 just over a month ago and is is making waves throughout the SEO community.

    Some notable features:

    1. Full HTML control
    2. Full URL Control
    3. Pixelsilk Search Advice system allows for SEOs to deliver branded, page specific advice to the person editing the page, while they are editing the page
    4. Extensible via APIs

    Although this may be a shameless plug, we’ve worked diligently to release this product so that there’s finally a good answer for SEOs to turn to when the question of CMS comes up.

    See for yourself and request a demo if you like.

  • Andrew Shotland  March 23, 2009 at 11:54 am

    Hey Wendy, at least you are honest and you don’t appear to be shilling for herbal viagra. Pixelsilk sounds intriguing.

  • Abro  July 8, 2009 at 5:53 pm

    Don’t do it is the really best advice you can give.

    We’re working out a framework for some years now. (Ok, it’s somewhat other than a CMS ;o)
    One of the main problems is – everything changes: the market, interests, technologies, requirements. You need a (sorry) shitload of money or time&intelligence. Good sourcecode is a religion.
    So think about it…more than just 10 times ^-^

    My statement on “feature-suggestions”:
    – Full HTML control is essential, all the templatesystems (or its implementations) out there suck.
    – Full URL control, full! It’s ok to 404 “http://yourdomain.com/?” by default =)
    – Not a SEO thing, but a developer thing: Instant Caching. No online likes this Typo3 problem “ok, i changed 1 line of code, now i have to click around 3 times, so my cache is up to date.” Noooo way.
    – Hey Wendy: “Extensible via APIs” ??? That’s stupid =p
    A CMS looks like 1x{core/1000 Lines}, 10x{extension/200 Lines/5 subextensions{…}}.

  • Tykhon Dziuban  July 30, 2009 at 12:47 pm

    Hey i guys, i hope this is not too offtopic – but id like anyone of the community to evaluate this piece of SEO software at http://tykhon-ua.com/

    Im doing CMS but its rather SEO features for CMS – i think thats what people need to do, to create – make already built software better – instead of creating new and new endlessly

  • James Dzobian  September 7, 2009 at 7:45 pm

    I took a look at PixelSilk, frankly, the CMS sucks. It’s supposed to be SEO savvy, but from a closer look there seem to be internal politics involved and the CMS is getting a lot more media then it deserves. The product itself is far fetched to produce results. This is just another attempt by an SEO firm to try to get in earlier into the sales cycle. The product itself is not flexible and additional functionality would have to be built on a Windows framework. So much for a cheap powerful website. The CMS itself is very weak on features in comparison to far more mature CMS packages. They are only 10 years late…. It’s a lot easier to add on a SEO module to a CMS then to build a CMS from ground up to try to accommodate SEO. Wrong move on their part.

  • Donna  September 26, 2009 at 3:02 pm

    Great article. Great comments. I too realize you’re emphasizing the CMS requirements for a blog. Requirements for an ecommerce or business site are far more extensive. For example, I’d love to be able to modify the .htaccess file.

  • Daniel Martin  October 8, 2009 at 5:56 am

    I wouldn’t bother worrying about meta tags if I were you. They don’t have any bearing on any search engine worth worrying about. Some of the other things that you mention also aren’t very important for the average business. The most important thing is the ability to set good titles. The next important thing I would say is customisable URLs. ie. http://www.yourdomain.ext/your-keywords-here.

  • tonyrocks  October 12, 2009 at 11:58 am

    Daniel, they are still important in my book. I’ve done a few Joomla sites recently that were indexed in Google, specifically with the phrases located in the META description.

  • Chris Reilly  November 12, 2009 at 1:39 pm

    You all gotta check out concrete5.org. Srsly.

    It is by far the easiest to use cms I’ve ever seen, plus it has really solid SEO features.

    From a design perspective, you can edit in context (aka you’re looking at the page, and click where you want to edit, then get a WYSIWYG editor)- and set individual permissions on pages or even DIVs.

    From a programming standpoint, its very solidly build OO PHP, has a great API, and is totally open source.

    From an SEO perspective, it works really well. The markup is really clean, you have full control over URLs, and built into the CMS is page level editing of title, meta tags, and has the option to have other page level custom meta data.

    Basically, I love it. BUT, I have NOT used it for an SEO project yet. Here’s why: even though it is free and open source, there are several commercial plugins. The most important and glaring one is “Blog” – I have to pay $55 per site to have a blog. Not cool. That blog works great, but it isn’t ready for prime time SEO like wordpress (may be wrong, but I believe it doesn’t do pings and doesn’t have a robust enough tagging system). With a little more work and a free blog system, I think I could do all my sites on Concrete5, it really is quite a joy to work with after all.

  • Justin Goldberg  December 1, 2009 at 6:17 am

    don’t have every page in the xml sitemap, only the latest updated ones (and stay in the sitemap for about 2-3 months, at least until Google crawls the entire web and your content is in the index)

  • Michelle Hartman  February 3, 2010 at 9:10 am

    Here we are a full 2 years after you writing your original post about CMS sites, and I’m still seeing badly planned and implemented new custom/bespoke sites. What worries me the most is that these sites are being created by so called “Web Designers”. It is frightening how little knowledge some of them actually have.

    Lets hope that we can educate the businesses to make better decisions that are making today!

  • Andrew Shotland  February 3, 2010 at 9:22 am

    Hard to believe the industry has ignored me all this time Michelle. Fools all.

  • Not Spammy Spencer ;-)  March 9, 2010 at 5:54 pm

    I think the latest version of WordPress, with the latest version of All In One SEO Plugin, will give you the quickest, cheapest, most optimized solution. I know it worked for me. My strategy is to use wp with the aio seo plugin, and post a few related articles, get a few links pointing in, when I am at my targeted ranking in the SERPS, then I move the blog to a subdomain and release my site.

  • Property Management Software  July 24, 2010 at 9:26 am

    I have some concerns regarding this CMS…the meta keyword tags don’t play a role now a days in Google rankings..this has been clearly told by the Google guys in Google Webmasters Blogs and I think this is not the first time when Google has siad it…so I want to know why should we add meta keywords…I have seen some of the top websites in which there is no meta keywords tag and still these are on top for various keywords…Second important thing is regarding the “title tags”..now the software will check whether the titles are duplicate or not…what will it do if there is just 1 or 2 letters different in the end? Will it say its not duplicate while we know its duplicate..I think I should consider a situation where these problems don’t occur..:)

  • Andrew Shotland  July 24, 2010 at 11:56 am

    Title tags that are slightly different can be flagged as dupes by the SE’s depending on a variety of factors.

  • Spokane SEO  October 17, 2010 at 5:44 am

    There are many things which Google changes as to what really counts for your ranking, but believing that when they say things like meta tags do not count at all is simply silly. You should make it be part of your basic SEO design, along with everything else.

  • freelance frank  October 19, 2010 at 12:15 pm

    I agree its almost pointless to recreate the wheel here. If one was really itching for a project at least build ontop an existing framework like WordPress or something. Though there are already a ton of SEO friendly CMS’s

  • Justin Goldberg  October 19, 2010 at 1:01 pm

    WordPress is hard to seo perfectly, and leave lots of duplicate urls with the same content. Maybe it’s changed since I last did WordPress SEO?

    It’s good for a small website, but for large web publishers drupal or a home grown solution is best. Just look at Amazon.com’s url scheme, where they exclude common words like a, the, and, etc….

  • Andres  November 21, 2010 at 8:35 pm

    Thanks a lot for this helpful article. What I looking for is CMS with good SEO. Cause it is not my internet area am I jumping from site to site just get something really worth.
    I have installed Joomla but it is hard to work on as it so deep.
    Conrete5 do not supporting Central European fonts in IE and Elite SEO I deleted as it is not what I looking for.

  • Unmotivated Genius  December 17, 2010 at 1:17 am

    I’m also a big fan of ModX, it serves all of the needs you asked for above and the architecture of pages makes it incredibly easy to organize pages. One simple change in the backend and a simple htaccess fix and you have path/to/page urls as well. I have to say its the best of both worlds

  • James Brauer  February 17, 2011 at 3:58 pm

    I really appreciate this post. I still have a few questions regarding the source of information, but overall, quite pleased with the content. Thank you for sharing…

  • John Roberts  April 4, 2011 at 11:28 pm

    Wow, I dont know how many times I tried to “reinvent the wheel” when delivering options to clients. Long before I had any idea of off the shelf CMS’s, I would always hand code everything! In hindsight, I guess I learnt a lot, but sure did waste a LOT of time.

  • Jeremy Cooke  April 12, 2011 at 1:40 am

    I really cant see anyone not going with WordPress, I struggled with Joomla for a while too, and even though I feel like Im always adding a new plugin to “Try and make it better” I always feel atleast like im somewhat doing it right. ha

  • Hugh Law  February 8, 2012 at 1:33 am

    I know this is a blatant plug, but if anyone is looking, TERMINALFOUR SiteManager is worth a look for larger organizations. Strong focus on all of the above and very customizable. We mainly deal with higher education, but have several corporate clients too. We’d be happy to arrange a demo to anyone who is interested.