If you are interested in developing search engine friendly Web sites with a content management system, you should be taking a close look at the open-source Drupal CMS. This post covers 10 reasons why you should be considering Drupal for your SEO-friendly content management instead of WordPress, Joomla, or Plone. [scroll down for the list]
Why Content Management?
If you are building search-engine-friendly Web sites and want them to be scalable, you should be using a content management system rather than building sites with plain HTML pages or Dreamweaver templates.
A content management system:
- generally stores your content in a database
- keeps the design of the site separate from the content
- makes it so that to update something on every page of your CMS Web site you generally only have to update it in one place, not on every individual page of the Web site.
This makes content management systems highly scalable.
Also, good content management systems allow non-technical users add and edit the content without needing to know any HTML or Web design knowledge.
Sample Drupal Sites
Some people like other content management systems like WordPress, Joomla, and Plone. I think Drupal is the best for the task of building search engine friendly content-based Web sites.
Drupal is very powerful and can be used for building large, complex sites. Some example Drupal sites are:
More example Drupal sites can be seen on Dries Buytaert's blog.
10 Reasons to Use Drupal
Here are 10 reasons why you should seriously be considering Drupal for your SEO-based Web development projects.
- Advanced URL Control — Unlike WordPress, Drupal gives you precise control over URL structure. Each item of content in Drupal (called a node) can be given a custom URL (called a URL alias). In WordPress you are generally limited to one type of permalink URL for all posts. You can override the "post slug", but it's much less precise than Drupal's URL aliases. You can also automate custom URL structures for each different content type with the Pathauto Module. The Global Redirect Module will automatically 301 redirect the internal Drupal URL to the custom URL alias. Unlike many other content management systems, Drupal's content pages have nice clean URLs.
- Custom Content Types and Views — You can use the Content Construction Kit (CCK) and Views Modules to create new content types and create advanced custom views for them without writing any code. A few examples of "content types" are "blog posts", "news stories", "forum posts", "tutorials", "classified ads", "podcasts". You can create as many custom content types as you would like and display them in many different ways. Most content management systems would require writing code to accomplish these tasks, but there is no programming knowledge required to do them in Drupal. Here is a quick & basic intro to Views called How To Build Flickr in Drupal.
- Revision Control — You can configure Drupal to save a new version of your pages every time they are editing. That means that you can go back to view or revert old revisions if you want.
- Taxonomy — Drupal has a powerful taxonomy (category) system that allows you to organize and tag content. Each Drupal "vocabulary" (set of categories) can be limited to certain content types. For example, you could have blog contents that allowed free tagging (similar to WordPress categories), while your news section might have a different vocabulary (set of categories) that could only be selected from an existing list of categories. You can also have hierarchical categories, with single or multiple parent categories. Drupal's advanced taxonomy features, combined with CCK and Views, allows you to easily target all of those long-tail keywords that you researched in Wordtracker.
- User Management — Drupal was designed for community-based Web sites and has strong user role and access control functionality. You can create as many custom user roles with custom access levels as you need. For example you could create the following roles, each with different levels of access to your features: "anonymous visitor", "authenticated user", "moderator", "editor", "webmaster", "admin". You can keep the advanced user management features (like multiple blogs) turned off if you don't want them, enabling them later if your site grows to a point where you would like to add more community features.
- Page Titles and Meta Tags — Drupal's Page Title Module gives you custom control of your HTML <title> elements, while the Meta Tags Module gives you control over your pages' individual meta description tags. This is difficult in some content management systems, but it's easy with Drupal.
- Excellent Documentation — Documentation includes the official handbooks, the massive API Reference, numerous tutorials, blogs, videos, and podcasts, and the excellent new book Pro Drupal Development. There is even a Drupal Dojo community where you can learn how to become a Drupal ninja.
- PHP Template — Drupal uses the PHP Template theme engine by default. Theming in Drupal is easier than theming in WordPress and doesn't necessarily require any PHP knowledge. Drupal's Theme Developer Guide is a great resource. I also recommend reading Chapter 8 in Pro Drupal Development.
- Drupal Cookbooks — If you want a feature that is not built into Drupal by default, chances are that someone has already written a code snippet for it and posted it in the code snippets section of Drupal.org.
- Large and Friendly Community — With so many major sites using Drupal, it's not going away soon. For an idea of the size of the developer community, take a look at the long list of community-contributed modules. The Drupal forum is highly active and are a great place to get your Drupal questions answered. You can also find Drupal support on IRC chat on channels #drupal-support and #drupal-dojo. To meet other Drupal users in your area, visit Drupal Groups.
There are other open-source alternatives to Drupal, but here are a few reasons why I think that Drupal is better:
- Joomla - It's not as search engine friendly out of the box as Drupal.
- Plone - It''s powerful, but Plone is written in Python and has certain server requirements. It is not as easy to extend as Drupal, and it's harder to find people who know Python than who know PHP. Plone runs on the powerful, but complex, Zope 2.
- WordPress - WordPress is excellent, but if you need something more heavy-duty or are building a site that you might want to extend in the future you should be considering Drupal.
To get started with Drupal, download the latest version and start with this beginner's guide as well as the official handbooks. Drupal will run on most shared hosting packages.
If you aren't convinced yet, check out this 15-minute video introduction: