Search Engine Optimization (SEO) Modules
Search Engine Optimization (aka SEO) is a practice among serious bloggers (as well as businesses) to optimize their rank and image on search engines. Let's face it, day to day, all of us use a search engine to get around online. They are the gate keepers. As a regular search engine user, you may have typed in "Drupal Journal" or something and found this blog. There is very little chance you would have found this blog otherwise unless you clicked it on a random web page or heard about it from word of mouth. True, the latter is very possible but Google, Yahoo, Live, Ask… they are the gate keepers.
So SEO is vital to any web page that wants some form of traffic. If your blog is just a personal journal and you don't care too much about people knowing about you, then no need to worry about this stuff. SEO can be a bit time consuming. However, to hasten the time it takes to optimize your search engine, there are numerous modules available to solve each individual task in the matter.
The SEO Checklist module (by Volacci):
This module is simply a checklist. That is, it doesn't really do anything except list all the important modules to get and have you place a checkmark after each one as you get them.
As can be seen in the screen show, one just puts check marks next to each module, and I will talk a little bit about each individual module
Page Titles:
Page Title Module (by Nickolas Thompson)
This module allows the user to change the actual web-page title of your post. Not the blog title (which is direct and simple) but the title that appears on the top of your browser. This module is actually very tricky to implement due to Drupal 5.x internal behavior, however in Drupal 6.x it should be much smoother.
If you look at the support pages, you'll see that for Drupal 5.x a lot of theme hacking is required and the hacking may be unique for every theme. With that said, I decided to drop the idea for now. I have made help requests on their support forum so let's see where it goes. However, if the solution is unique to every theme, I will probably give Page Title its own blog post in the future because of its complexity. Stay tuned.
URL Paths:
Clean URLS (internal to Drupal)
This setting merely allows the user (or a module) to get rid of the get parameter "q". I.e., links don't have the "?q=###" form. Not does this make the URLs more humane but it also help a lot with search engine optimization. More specifically, it makes it harder for search engines to realize the page was created dynamically. Search engines don't like that for some reason. This may change in the future, who knows?
Find URL Alias Module (internal to Drupal 6.0, but by Starbow)
As the title says, this module helps the user track down aliases. This one doesn't seem to have a section in the Modules admin section, but after poking around a bit it actually appears in the Administrator -> URL aliases -> Find Alias. This module can be very good to track your links and you will see why when you install it.
Global Redirect Module (by Nickolas Thompson)
This module follows with all the alias stuff and creates a 301 redirect from the alias to the wanted URLs. In other words, http://mydrupaladventures.com/node/1 points to the same thing as http://mydrupaladventures.com/welcome. However, search engines hate duplicate content, so having two of the exact same pages located at separate URLs can be bad. This module causes the first URL to 301 redirect to the latter URL, so the search engine doesn't even notice the difference.
Pathauto Module (by Greg Knaddison)
I actually skipped URLify and chose Pathauto (if you see the SEO checklist, you will see why). Pathauto is amazing. I actually talked heavily about it in my post Setting up Search Friendly Links In Drupal With Pathauto. So without beat a dead too hard, it allows automatic creation of URL's from the [title] of your nodes. This is even more powerful because of its bulk generation feature that allows someone migrating from, say, Wordpress to have all their links corrected.
Create Search Engine Accounts:
The next steps is to set up a Google and Yahoo account. If you've been on the internet for more than an hour you'd already know about Google and probably have one of their sweet Gmail accounts by now. Personally, I haven't used Yahoo too much since Google offered its mail, finance, and other services. However, regardless off what search engine you use, you want to submit your site to every engine out there. Millions of people use Yahoo, millions use Google, millions use Live, millions use Ask. Take advantage of all of them.
Track Visitors:
Google Analytics Module (by Mike Carter)
This is a fantastic plug-in and very simple. It was one of the first modules I installed. This module allows the user to input their Google Analytics information and have it be imbedded into every page of your site. This is extremely convenient since the module takes care of everything for you. My philosophy still holds: don't mess with the code before fully understanding it. A module that has been tested and used by thousands of people is proof enough for me that it works.
This would probably be a great time to praise Google Analytics, GA. GA is a phenomenal and free internet based program by Google which tracks every link on your site, how many times it is clicked, where and how users found your site—i.e., what search terms they used. GA shows you all this in a very clean and information-packed interface. It does take some getting used to, but read the help files and try to understand as best you can. Programs like these should be sold for thousands of dollars, but Google is just giving it away.
Page Content:
Excerpt Module (internal to Drupal 6, but by Eric Hayes)
This module allows the author to create a teaser section of each node. Teasers are usually the first couple paragraphs of an article followed by a "read more" link on the bottom, drawing a user to click into the site. This module was a little bit tricky. After you install it, you will see this
If it's hard to see, just click on it to see a bigger version. Keep this in mine, the Teaser section will ONLY appear on the front page—not on the actual node's page. So if you want the teaser to be part of the body also, you have to copy and paste it. Lame I know, I wish there could have been a setting to let us change this, but oh well. It took me awhile to figure that out, at first I thought it wasn't working! In some ways, this could be an advantage. If you are authoring a very flashy blog, you may want to put something crazy as a teaser, then when someone clicks inside, you can change around your writing style to something more solid? Good possibilities, definitely.
Meta tags Module (by Robrecht Jacques)
This module adds a section to your node creation section that allows you to specify specific meta keywords and description for that particular node. There is also a way to setup global meta tags that will be in every single node.
Scheduler Module (by Eric Schaefer)
This module allows the author choose the exact date and time to publish and also unpublished a node. The one tricky thing about this is that is making sure the permissions are set right. (I feel I should write a separate blog post about how to work the permission fields since they can be a bit weird). Anyway, without going into a lot of details, I created an administrator account in conjunction with my first user account. In that administrator account, I simply enabled all possible permissions. Again, I will write another blog post on this topic, it's not too complicated but it does seem counterintuitive. Regardless, it does resolve these dumb issues.
So once the permissions are set, this module words just as you can imagine it.
Safe HTML Module (by Claudiu Cristea)
Since I am the only contributor, I decided not to install this. Basically, it just makes sure the HTML submitted in a node is safe for your site. I.e., a skilled hacker won't compromise your site by writing a post with scary HTML tags or something. That is about all I can say since I haven't dug into it.
Search 404 Module (by Zyxware)
This module is jaw dropping brilliant. Say a user accidentally goes to a wrong link, say http://mydrupaladventures.com/migrating-wordpress-drupal. Now this link is close to a real one, so instead of Drupal giving the poor user a 404 error page, this module will instead execute a search command and bring the user to:
Clean Code:
The clean code section, validate your site and check your links is cool, but I didn't mess with it too much. It gave me like a trillion errors and I figured something was off. I am fairly sure my site is okay and I really just don't have the time to go through all that stuff.
Submit Site to Search Engines:
XML Sitemap Module (by Darren Oh)
This module is simply a masterpiece. It continually submits your site to Google, Yahoo, Live, and Ask's sitemap submission databases. What you, the administrator, need to do is get the validation things taken care of (all that information is found on the search engines submission pages), input that information into this module, and boom! You are golden. There isn't much to say beyond that: simple and elegant.
Social Tracking:
The Digg/Web 2.0 module. You gotta add them! I think this is self explanatory and while you don't have to add them, they really don't hurt. You will see it when you install the SEO-checklist.
Spam Protection:
Captcha Module (by Fabiano Sant'Ana)
In the never-ending battle against spam, this module adds those image verification things to your submission forms. Personally, I hate them and I made sure mine were fairly easy. Some sites make the hardest dang images in the world and it takes time to figure out. But in the end, its purpose is to keep machines out of my site and it does an amazing job at it. 
Akismet Module (by Jeff Eaton)
This module comes internal to Wordpress and it filters link spam from blog comments and trackback pings. See the Wikipedia page on it. It is sort of a necessary thing. To enable it to work, you actually have to sign up for Wordpress' free service and the activation code will appear.
http : BL (by Mark Janssen)
This module disallows black-listed IP's from contributing to your site.
Then there is another spam module the SEO-checklist recommends, but honestly I think I got my bases covered so far. If I feel spam becomes a problem still, I will get the other module. Remember, the more modules and the more overhead you have, the slower you site can be. Even though I feel we are not close enough yet to yield a slow site, there is still no reason for excess.
Google Proxy Hacking Protector Module (by Christoph C. Cemper)
To be honest, I actually never heard about proxy hacking, but apparently it's out there and this module protects against it ! Basically proxy hacking is a way a third-party could remove your site from Google. Sounds bad, so I enabled it. If I find out otherwise that this is a minor threat and this module takes a lot of site resources, I may disable it.
Thank SEO-Checklist!
After that, just give SpryDev a thank you link (I did in my blog roll) and so should you! If you want.
PS. I got all these names from the Drupal Website. I noticed there could be multiple authors and contributors to each module, so if you feel you name should be listed here, just contact me.


SEO
Really helpful post!
Thankx
Good Introduction
Another good introduction to Drupal and its modules. Regarding the administrator account I have done the same thing. For my everyday use, I login as 'Steve' but for making any major chnages I use my administrator account.
Thanks for mentioning the Search404 module, I wasn't aware of it and it is available for Drupal 6.x, so now I'm using it. Went looking for the configuration page, none there, it just works.
Now I'm going to check out the Scheduling Module. I see it's use for things where there are multiple pages to be written but don't want to publish until all have been written.
Steve
Prime 357
thanks for the detailed
thanks for the detailed explanations. Very helpful.
reply
How do some of the commercial CMS' rate with regards to SEO modules such as Kentico or Ektron.
security systems
To Visitor:
Do you mean how easily do other premium content management systems work with search engine optimization? I'm not sure, I am still learning more about how SEO works. All I know it changes all the time.
I am starting an internship at a company that is moving away from the idea of URL's needing have descriptive names. It opened my eyes a lot more. Hopefully in 6 months I will know more.
Thanks for opening up a thread here, I have been lacking on this blog for months now,
Eric
Post new comment