What is a CMS?
A Content management system allows you to add, edit or delete content to your website without having to create and format the pages manually. All the pages get generated on the fly, the CMS application picks the template, adds the headers and footers, generates the menus and the blocks for your page and renders the page automatically. For Example, when I wanted to add Google ads to all the pages of my CMS site, all I did was to create a block with the Google Adsense code, activate it, and BOOM! It automatically appeared on all my pages. If I’d had to do this page by page it would have been a nightmare for me. What if my site had thousands of pages?
The main reason people hesitate to use the power and flexibility of a CMS system is because they think a CMS site would not do well on the search engines. I’ve already proven them wrong by having my site do very well making use of a CMS. When used properly, a CMS can actually help in easily scoring points to win the search engine wars. This article shows how it can be done.
We all know that content is king. The primary function of the Internet today is to deliver content to those that are seeking it. Most SEO’s know that the secret to high ranking on the search engines is to get links from external sites, but that is only half the story; The other face of the SEO coin is to have lots of good internal content pages all pointing to your main page, thereby increasing the link popularity of your main page. A CMS allows you to easily manage lots of pages on your site, nicely grouped into topics and categories.
If you run a community site, another advantage of using a CMS is that your visitors can submit content to your site which moderators can approve. Such a system can lead to exponential growth of your website, and can be very effective if the quality of your content is maintained.
While it is a fact that most free CMSs available were not designed with the search engine spider in mind, the CMS applications are very flexible and can be tweaked for gaining a top search engine ranking.
To tweak a CMS to help your search engine rankings, first we have to look at the issue of dynamic URLs. Most CMSs will generate URLs with parameters embedded into them. Each article on your site may look like this:
Not only does it look ugly, the search engines will probably not crawl into it. Google has partial support for dynamic URLs, but it is not likely to index all your internal pages unless you have a good PR on your main page to start with. It is best to cast a spell on that URL to change it into the following:
[Editor’s Note: It is even better to use a descriptive URL, for example http://www.yoursite.com/Section/Article_Name.html]
How do you cast this spell? By making use of the magic potion called mod-rewrite. What I am about to explain applies to PostNuke (my CMS of choice) and is only for technical wizards; if you don’t understand, feel free to skip to the next section.
In your .htaccess file, you will need to add a rule using regular expressions to convert the URL. The following 2 lines added to your .htaccess in your document root will cast the spell for the example above:
RewriteRule ^article([1-9][0-9]*).* modules.PHP?op=modload&name=News&file=article&sid=$1
You will need to add one RewriteRule line for each cast for different types of URLs. For More details on mod-rewrite, look at http://www.sitepoint.com/print/910. This casting using Mod-Rewrite will internally convert your elegant URL into the ugly one that the CMS expects, but how do you convert from the ugly URL to the elegant one? Most CMSs come with a header and footer includes using which you can append a custom header and footer to all your pages. Assuming that you are using PHP, and assuming that the HTML is in the variable $html, We can use this PHP code in the header or footer (wherever we have the entire html available before sending to the browser client) to substitute all the ugly URLs with elegant ones.
$in = array(
$out = array(“article1.html”);
$html = preg_replace($in, $out, $html);
The above example shows only one element in the array but we can have as many elements as we need to cast our various spells.
The session id is usually not necessary; even if it is really critical to the functionality of your website, it need not be in the URL. Most users have cookies enabled, so your CMS can store the session id using cookies. The web server appends the session id to the URL the first time a visitor comes to the website, just in case the user does not have cookies enabled, but search engines do not accept cookies so they always get to see the session id! URL-rewriting for session maintenance can and should be turned off in your webserver settings.
I use PostNuke, Open Source Content Management System. There are very good CMSs out there which are open source, and very easy to install. Numerous have a loyal community base with support forums where you can get your questions answered. For a Review of the various CMSs available and where you can download them, please look at http://biz-whiz.com/article225.html. Note that in order to run such a system on your website, your web server will need to provide scripting and database support.
[Editor’s Note: We here at Developer Shed have recently converted all of our sites to MamboCMS and are quite happy with the results.]
Using Search Engine Friendly Themes
Your CMS system will come inbuilt with several templates (also called themes) that you can choose to use on your website, but most likely they will not be search engine friendly. With a little modification, these can be updated in such a way as to automatically optimize your pages. When you create an article in the CMS, you specify a title, summary, and main body. You can modify the theme you are going to use to repeat the title in H1 tags, in alt tags, in bold and italics… you know the SEO drill. You only have to modify the template once and all the pages of your website become automatically optimized! Now, All you have to do is to choose an appropriate title for each article that you add and your pages will get automatically optimized for the keywords you use in your title!
Generally, SEOs feel that having the navigation links at the bottom or on the right side of your page allows you to position your optimized content towards the beginning of your html page, but users are accustomed to naturally look for a navigation menu towards the top left of the page. If you want to go with your visitors intuition at the cost of placing your navigation links at the top of your html code, you will need to make sure that the links are well optimized with your keywords. It may not be obvious, but attention to the anchor text used in the navigation links is very important because these links will appear on all pages of your site. If you can, try to have at least one of your important keywords in the link that leads to your main page, instead of using “Home” use “Your-Keywords” in the link back to your main page, this will have a big impact on the search engine ranking of your main page.
Topical Islands of Related Content
When you add content to your CMS, you need to classify it. Some CMSs, like PostNuke, allow you to choose a category and a topic for each article that you add. The CMS will automatically create the links for you in the chosen category page and the chosen topics page. If you define your topics and your categories properly, you can create a brilliant linking strategy. Since your main page links to your topics page and each topic page contains links to the articles for that topic, it creates a three level sitemap for the searchengine spider to follow. Since each article will have a link back to the main page and to the related topic, you can establish islands of targeted topics, the search engines love such a setup. Without a CMS application, you would have to create all the links yourself each time you add an article, but when you use a properly setup CMS application, it all happens automatically.
ConclusionSetting up a CMS managed website that can achieve a good search engine ranking is possible if you take care of the key factors outlined in this article. Now, in addition to the powerful features, ease of creation and maintenance of your website, you have one more reason to use a CMS. I have disproved the myth that CMS websites do not rank well with the search engines. On the contrary, I have shown how a CMS application if setup correctly, can help you to gain top rankings.