Search engine optimization (SEO) seems to be the black magic of website design today. No one talks about it in any depth, and the few that do claim to be experts, all have pretty disjointed opinions on how to brew the right concoction that makes Google happy. Doing a quick search for "SEO" or "Drupal SEO" on Google will provide a myriad of results and people asking for your money to make your site more visible on search engines, but is the magic formula really that difficult?
SEO is easy if you follow one simple piece of advice: Generate and organize information on your site so that it meets some need that users have. Do not try to play games to trick Google into thinking your page should be listed higher than others. Do not pay someone money to try to decipher Google's algorithm and improve your placement. Your goal should follow Google's mission, "to organize the world’s information and make it universally accessible and useful." If you keep that in mind when you are designing your site, then your pages will rank well in searches forever because Google's algorithm is designed to find just those very pages that are the most useful to a user's search. Always ask yourself "how can I make my site more useful to users?" instead of "how can I get more users to come to my site?"
With that as our framework, there are several key ways to make your site more useful and understandable to users (and thus, search engines):
0. Google Analytics module
Before you do anything to help improve your SEO, enable the Google Analytics module and setup Google Analytics on your site. This will allow you to have some idea what sort of progress you are making toward improving your website traffic. It gives you tons of good information about the traffic coming to your site, and will allow you to futher tailor what you are doing to your specific site and market.
Just download and enable the module from here: http://drupal.org/project/google_analytics
Then setup an account with Google here: http://www.google.com/analytics
Then enter your code here: <your-domain>/admin/settings/googleanalytics
1. Clean URLs
If you are not using clean urls, then you just are not being smart. Clean URLs take URLs that work great for machines and turn them into something that makes sense to humans. They make more sense to users and the provide better information to our friendly neighborhood search engines trying to figure out why anyone would care about "example.com?q=stuff". It is much more understandable when the URL is "example.com/stuff".
Just go to the following path on your domain and enable it: <your-domain>/admin/settings/clean-urls
Pathauto is another one of those "just enable it and do not ask questions" modules. It creates human readable URLs for content. Instead of the URL to your blog post being "example.com/node/5", it could be "example.com/blog/awesome-title-of-my-blog-post". This gives a lot more information to the user, and thus, the search engines also like this because it tells them more about the content on that page.
Just download and enable the module from here: http://drupal.org/project/pathauto
It has a ton of settings if you want to get really specific, but the defaults will work well for most people
3. Global Redirect module
Google and others have invested a lot of time trying to prevent shady black magic SEO tricks from tainting their results. Global Redirect module fixes some small things that can make your Drupal site look shady. The main thing that it fixes is having duplicate URLs that have the same content. Google and company do not like this because they think you are trying to scam their system to get more links to your site.
Just download and enable the module from here: http://drupal.org/project/globalredirect
It has a bunch of settings to tweak the behavior, but the base settings will do nicely for most sites.
4. Path Redirect module
This module basically just prevents you from shooting yourself in the proverbial SEO foot. If you change the path of a piece of content, this module can be configured to automatically redirect to the new path. This way any links to your site from other sites will still work, which will make your users, and search engines, very happy.
Just download and enable the module from here: http://drupal.org/project/path_redirect
Go to <your-domain>/admin/build/path/pathauto and under "General settings > Update action:" select "Create a new alias. Redirect from old alias."
5. Page Title module
All of the items before this one are pretty much just no brainers in the web design industry today, and if you are not following them, you are just shooting yourself in the foot before you get started. This module however is the first way to make some really good positive strides instead of just avoiding pitfalls. This module allows you to set the value of arguably the most important SEO field on any page, the title tag. The title tag defines what text will appear in a browsers title bar and/or tab bar. This is the title of the page. It is the text that will be used if a user bookmarks the page, but more importantly, this is usually the text that is used by search engines to determine what a given page on your site is primarily about. This will also be the text that is usually displayed in search engine results as the linked text.
This module allows you to override the default Drupal page title structure with your own. There are tons of ways to configure this, but basically this module gives you more control over what the users and search engines will see when they view the pages of your site.
Just download and enable the module from here: http://drupal.org/project/page_title
6. Nodewords module
Nodewords, like Page Title, just gives you more control over what data you provide to users and search engines. Every page on the web can have some basic metatags that tell search engines, and thus users, more about what that page is. There are tons of metatags available, but the most important field that you can modify is the description field. The description field is often used in search engine results under the title. If this tag is not specified, the search engine will try to figure out which content from the page to display as the description, and depending on your pages, this could be extremely unhelpful and undescriptive of what the actually page does. This module allows you to fix that be specifying descriptions manually when creating nodes.
Just download and enable the module from here: http://drupal.org/project/nodewords
Then configure it here: <your-domain>/admin/content/nodewords
7. Create Useful Content
This is the part where it starts getting really market and site specific, but as a general rule, the more useful content your site has, the better your search engine placement will be. So if you are trying to sell widgets on your site, you could have a page on your site talking about the benefits of widgets, or frequently asked questions about widgets, or how to use a widget, or how you make widgets, or whatever else would be useful to someone interested in widgets. You could blog about things related to widgets or write tutorials about widgets or review different types of widgets. All of this content on your site will make your site more useful to users and thus the search engines will also reward you.
This becomes really valuable if other websites start linking to your site's pages because they are useful. A lot of search engines use this as a way of establishing which sites provide good credible resources, but do not try to play games by creating a bunch of extra sites that link to yours or getting a bunch of link farms to link to you because the search engines are smart enough to figure this out and penalize you for it.
8. Target Keywords
Talk about things that people care about (especially related to your business). If you want people searching for "how to make widgets" to find your site more often, then create some content with that title and talk about that topic. Again, do not try to play games by hiding unrelated keywords on your pages or other ticky manipulative methods to try to increase your sites keyword rank. This might work in the short term, but I am guessing Google has a slightly larger budget than you invested in making sure people like you are kicked into search engine pergatory. Just like any other type of marketing, you should be focused on positioning yourself as the authority on a specific subject. Discussing that subject on your site is one way to develop that credibility with users and search engines.
The following resource can be very valuable for keyword research: https://adwords.google.com/select/KeywordToolExternal