**UPDATE**
I no longer actively use Drupal. I still have a site or two running a 5.x version but that’s it. I originally wrote this tutorial 2-3 years back, and copied it to this new (WordPress) blog in 2007 and updated it a final time. I now exclusively use WordPress for all my web sites and blogs. I now write all of my blogging tutorial and help articles on my flagship site JTPratt’s Blogging Mistakes!
I am going to teach you the art of how to do SEO or search engine optimization for the Drupal CMS (content management system). Even if you don’t use Drupal – my techniques will help you with any web site or content system to consistently achieve better search engine indexing by search engine crawlers – to improve your page rank, and get you a first page listing whenever possible!
**UPDATED May 29, 2007**
Well it’s been 1 months since the last update and the rules of engagement have changed (yet again)! Significant parts of this article have been completely rewritten. Not only do I have more experience to lend in optimizing a (large) Drupal site – but google has significantly changed the way it crawls, indexes, and lists web sites. Please re-read this entire article for new information (too much to list). The only nugget I’m going to give away right from the beginning is google’s new “duplicate content” initiative. If you have a page that’s 85% similar to another page (basically word for word in the body) – this can (and will) dramatically affect your search engine listings (or SERP pages). Also, you’ll find some information sprinkled throughout about Google’s ‘penalties’ regarding your indexing in their search results pages. This would include being sent to the “supplemental index”, the “minus thirty penalty”, and the “minus 950 penalty”. Alright, back to the article…
If you’ve come to the page and don’t know what “Drupal” is – Drupal is open source content management software (OSS CMS), i.e., software to manage a dynamic web site with. It is written in PHP and has mySQL (or POSTGre SQL) database backend. You can get more information and download Drupal at drupal.org if you’re not already using the Drupal CMS in your web site.Again – if you’re not using Drupal, this how to ‘tutorial’ self-help guide will help you obtain better search engine positioning for any web site – even a static web site by following the techniques below. If you are using another open source (OSS) content management system (CMS) – like WordPress, Mambo, Plone, Xoops, PHPNuke, PostNuke, Geeklog, (or any of the other ones), use this tutorial – just switch out the modules recommended below with ones that work for your web site CMS. If you’re using a derivitive version of Drupal like Bryght or CivicSpace, hopefully you should be able to use the Drupal modules.I HIGHLY RECOMMEND YOU SUBSCRIBE to this article using the link at the end. If you don’t see a link, you need to create a free account and login. Then you can subscribe to this article and you will get an email whenever I update it and add new information (which is every other day at this point). YOU WILL NOT GET EMAIL for any other purpose than subscription updates – and we share your information with NO ONE.
This isn’t going to be a search crawler tutorial, but rather a crib sheet of the things I’ve been doing to get this site broader results from not just google and the googlebot crawler, but from other search engines – like MSN, AOL, Yahoo, and more! Did you know that according to Alexa that Google is third for amount of data transferred? However – Yahoo! is #1 and MSN is #2.
Wow! I had thought for sure google would be #1. 85% of the activity on this site comes from google. What does that mean?? Well, to me it means that it’s time to invite the other search engines to come and index it too, and that if The Smorgasbord was more broadly listed in ALL the search engines we would get a LOT more activity…
This will be a post that I update time and time again – detailing the progress of making this web site based on Drupal 5.x and beyond much more search engine crawler friendly and easier to index!
The Basics of Making a Drupal CMS Web Site More Friendly to Google, Yahoo, and MSN
First Create a robots.txt file
Ok, aside from installing Drupal in your web site, the very first thing you should do – even before adding content is to create a robots.txt file in the root of your site. Basically – it’s just a small text file that tells the search engine crawlers “you are welcome here – just don’t go in these folders”. I ‘disallow’ all of my drupal folders – especially /modules, /themes, /includes, etc. The only file the search engine crawlers really need to get to is /index.php. For more information on creating a robots.txt file – visit robotstxt.org
There are really only two things that you list in your robots.txt file. The first is the “user-agent”. Each search engine has a software ‘crawler’ that will come to your site and it’s ‘user-agent’ string is what identifies it. User-Agent: googlebot is of course good adn User-Agent User-Agent: MSNBOT is of course MSN. I’ve read differing accounts of whether listing all the user-agents you know of in robots.txt is beneficial or not – I’ve always listed the major ones.
The other thing you list on your robots.txt file is what to Disallow. Basically this is a list of things that the search engine crawler is supposed to leave alone. Directories to stay out of and files to ignore. This is what my robots.txt file looks like for The Smorgasbord:
User-agent: ia_archiver
User-agent: Scooter
User-agent: Atomz
User-agent: FAST-WebCrawler
User-agent: ArchitextSpider
User-agent: Googlebot
User-agent: Slurp.so/1.0
User-agent: Slurp/2.0j
User-agent: Slurp/2.0-KiteHourly
User-agent: Slurp/2.0-OwlWeekly
User-agent: Slurp/3.0-AU
User-agent: UltraSeek
User-agent: MantraAgent
User-agent: Lycos_Spider_(T-Rex)
User-agent: MSNBOT/0.1
User-agent: Gulliver
User-agent: Scrubby/
User-agent: ZyBorgDisallow: /ImageMagick
Disallow: /acidfree_tmp/
Disallow: /band/
Disallow: /cgi-bin/
Disallow: /files/
Disallow: /gallery_old/
Disallow: /includes/
Disallow: /misc/
Disallow: /mplayer/
Disallow: /admin
Disallow: /node
Disallow: /projekt
Disallow: /project
I disallow some script directories, the file directories, of course everything admin, and you might be surprised to find that I disallow everything that begins with ‘node’. That’s because I have clean URL’s enabled. I wouldn’t want both the ‘node’ page and the clean URL page picked up for indexing by the crawler. You can ‘disallow’ both directories and files, but you also probably want to disallow some default Drupal destinations if you don’t want them indexed. /admin is of course the big one, the crawler won’t be able to get into the admin pages – so why let it try? You probably don’t want it accessing user profiles either, for /user is a good one too. You probably want to make sure that /comment is indexed so your comments are getting indexed, but you surely don’t want /comment/reply indexed. If you have special plugins for subsbcriptions or notifications, you probably don’t want those indexed either (like /subscriptions).
How To Write Consistently Good Copy, and Well Setup Web Pages
I think that less than 10% of people that setup or write copy for web sites have enough knowledge to make them search engine friendly…and some of that 10% doesn’t even know they’re good at it. I’ve seen some people say “I rank really good for the keyword…” without even knowing how or why. It’s even worse than it used to be. Google is fighting content hijackers, spammers, pop-up sites, ad-laden sites, and ‘made for adsense’ or MFA sites more and more everyday. Their new rules and policies might be affecting your traffic and search engine results without you even knowing about it (or what to do).
First, make sure you use the right keywords (see the last blurb in this article about ‘Using keywords people are actually looking for). Use them well and use them often to get the right ‘keyword density’ without spamming. (Hint: lookup “keyword density” in google to get more ideas). DON’T use keywords solely to generate traffic – use keywords to generate traffic that is genuinely interested in your content. Use your keywords well – but don’t ‘overuse’ them to the point where google might think that you are trying to hard to get traffic to your pages. Lately, if they even think that you could be ‘cheating’ to get good search rankings you are sunk. Also, what you don’t want is a lot of traffic ‘bounce’. If you use Google Analytics for statistics on your site – you might already know that bounce is what occurs when someone visits a page on your web site, and then ‘bounces’ away quickly because they didn’t find what they wanted when they got there. What’s the sake of generating traffic if it doesn’t convert to anything, either readers, buyers, prospective customers, etc.? I’ve read a few articles lately by SEO authors that seem to think that bounce (now) has direct relevancy to your search rankings and has even added it to their indexing algorithm. This means that if google thinks that most people visiting your site and pages don’t stay very long (because they don’t find what they want) – then your site isn’t as relevant and needs to be lower in the index. There are of course many, many other factors involved, like who is linking you, who you are linking, the age of your site, your content itself, how many ads or affiliate links there are in proportion to the content length, and whether it’s original content or not.
Second, use your keywords and variations of them (words that repeat paired with words that don’t, ex: onion soup, onion salt, onion powder, onion soup mix, best onion soup recipe) in all the right places.
OK – that last line that I crossed out ‘used’ to get you good google rankings (for many years). Like everything that evolves on the web, google has gotten wise and changed it’s algorithm so you can’t do this anymore and expect good rankings in the first few pages of search results. First things first, let’s go over good places for keywords (again)…
The right places for keywords would include:
– keywords in your path or URL
– keywords in the HTML Title of your page
– keywords in a bold or emphasized h1 header text title of your page
– keywords in subsequent paragraph or section headings
– keywords in the breadcrumbs of your page
– keywords in the header or footer of your page
– keywords in the image alt tags on your page
– keywords in popup tooltips on your page (if you have them)
– keywords in the text of hyperlinks on your page
– keywords in the actual textual content of your page
Now that we talked about great places for keywords – let’s talk again about something very important: “keyword density”. A keyword is of course what someone types into the search box at the search engine to find what they are looking for. By using the right keywords in your web pages, you hope that people will find your site when they are looking for those words. Google is the policeman that tries to figure out who comes up in what order when someone types those words in. Hundreds, if not thousands of web sites are fighting daily to come up higher in those results. And let’s face it, if you are selling something or have ads on your site – getting high search results equals more traffice which equals more money in your pocket. So, one of the factors google uses in it’s ‘algorithm’ which determines the order of the search results is how many times you use the same keywords in a given page. How much is too much? This is a very important (if not _ the _ most important thing) for search engine optimization of your site, so I encourage you to spend some time doing research and reading on this subject. I’ll give you some tools to help you out.
First, to learn about keyword density you need some web based tools to give you some facts. There are many web based tools that will do this, and you can find any of them by doing a simple web based search for ‘keyword density tools’. However, the one that I like best is the one over at www.googlerankings.com. Their Ultimate SEO tool gives a great report on keywords if you feed it a URL. I like their report because it gives you total works, 2 and three word phrases, word count (by word), and a percentage based density score. Like for instance, on this page I used the keyword “drupal” 66 times (so far), but my density score for the page for that word is only 1.43% (because there is so much text on this page). Even though I used drupal 66 times, I’m not worried about having used it too much on this page.
Now, back to my question a bit ago “How much is too much”? Nothing is permanent, the rules change all the time, and google does not publish information regarding what techniques will get you first page search rankings every time. Having said that – if you do a little reading it’s not to hard to find out. I find that the best source (of current) SEO information are the best webmaster forums and groups. I’m going to give you three references to do your research at.
The first research reference is the Webmaster World Forums. You can browse, read, and research for free, but I believe to post questions you have to get a paid subscription (well worth it). I have found tons of answers here to my google (and other webmaster) questions.
The second is the world reknowned Digital Point Forums. Most of the true experts in the SEO field use this as a major resource and to keep in touch with new or recent developments in the SEO (and all webmaster) areas.
The last is the Google Webmaster Help Group itself. Sometimes it’s a bit harder to get help if you post questions due to the sheer volume of people and lack of experience with many of the posters. However, if you search you can find some great bits of advice you might not find other places. I find myself searching posts here a lot.
OK – now that I’ve given you the references let me give you one of the best (current) nuggets I’ve found in these forums regarding keywords and density. This post at webmaster world about acceptable keyword density has some of the best advice I’ve seen in awhile.
Here it is:
keep to the “rules”:
1) Title with no more than 3 repeated keywords
2) Four times per paragraph EITHER an H1 for the keyword or bold plus emphasis or link text.
3) Actually concider DESCRIPTION META as part of the page (in your mind break the page down to 3 sections and include in the description CONTENT)
4) Sites linking to your page have the keyword
5) You REFRESH the site content at least every 6 days if you tell google to crawl every 10 days.
6) The keyword volume is NEVER more than 15% on my pages with a tool I use.
So take my advice earlier on the best places to put keyword, AND couple it with this list so you don’t OVERUSE your keywords. Then check your density score on your important pages to make sure you aren’t inadvertantly penalized in the result pages.
I’m going to strike out the remainder of this section, because it’s not really usable anymore. I’m not going to tell you how to write your copy anymore other than ‘how not to write copy that gets you bad search rankings’ (which is basically what I just did). I hope you are much more well informed in this area now!
Here is an example…we’ll say I have a brand new web page about “Jack Russell Terriers”. Specifically – the article will be about training them. Here are examples of the ‘right places’ I would try and use keywords:
page url: jackrussellterrier.com/how_to_train_jack_russell_terrier_for_tricks_and_fun_family_obedience
html title tag: Training Jack Russell Terrier Dogs to do Tricks and Be Obedient is Fun for the Whole Family
Page text title (top of page in an h1 header tag) How the Whole Family Can Train Jack Russell Terrier Dogs for Obedience and Tricks
breadcrumbs (or taxonomy / categories I might use): Pets -> Dogs -> Jack Russell Terrier -> Training and Obedience
header of the page: This depends on if my entire site is about dogs or not. If so – I might make sure that I have primary links on the top of my page using keywords like “dog obedience”, “dog training”, etc.
image alt tags on the page: I don’t normally use images that much – but in a site with a topic like dogs I sure would! And I would make sure that each image had a very descriptive alt tag like “This Jack Russell Terrier is a perfect candidate for obedience trainig by the entire family. You would be surprised how much better an obedient pet can be when it obeys not just the master but everyone in the home – and a few tricks aren’t bad either!”
popup tooltips: I believe there is a plugin for this in Drupal, where when you mouseover a hyperlink – a ‘tooltip’ appears where can put a description of where that link will take you. A hyperlink of “dog training” could have to tooltip “Find out how dog training can benefit you and your entire family”.
hyperlink text: This is probably the most overlooked place for keywords…make sure that anytime you make a link on a web page, that the text that’s linked has the best possible keywords. A link to Jack Russell Terrier Training should (at minimum) contain “jack russell terrier training” – if not more keywords. A keyword link to a page with a keyword url path and keyword html and page text title will rank much higher than one not well-thought out.
text content: The second most overlooked keyword opportunity is in the actualy text of the page. This is because being long-winded about a topic is usually reserved for politicians and used car salesman. However – on the Internet it pays off, because it allows more people to find your page. You have to be deliberate about it.
Here’s an example of NOT using keywords effectively in an opening paragraph:
Welcome to our web site! You will learn all you need to know about training your dog here. Training our Jack was a family effort and worth the time. We hope you will benefit as much as we did. Please let us know how you do, and if you have questions or suggestions.
Here’s an example of how the same paragraph can be improved for search engines:
Welcome to the Jack Russell Dog Training web site!! You and your family will learn everything you need to know to train your Jack Russell Terrier dog and puppies here:
Learn how to teach Jack Russell Terriers TricksLearn how to potty train Jack Russell Terrier PuppiesLearn how to train Jack Russell Terriers to be obedientLearn how your entire family will become involved in training your Jack Russell Terriers and puppiesLearn where to buy training materials, books, and videos for training your Jack Russell Terrier
We hope you will benefit from training your Jack Russell dogs and puppies as much as we have, it was an activity that the entire family has enjoyed investing in. If you have enjoyed it as much as we have, we would like you to share your experiences with us by posting your comments in our Jack Russell Dog Training Forums. You can also send email feedback to ask us Jack Russell dog and puppy related questions directly to our staff.
Pay close attention to the second example article, including the links, link titles, and hyperlink names I used. Writing good copy is hard work – but worth every minute you spend if done right! It will payoff like gangbusters in search engine listings and traffic.
Setup Google SiteMap, Yahoo! Site Explorer, and Google Analytics
You can do this by hand or you can do it using a Drupal module. I would advise installing the Drupal gsitemap and google_analytics modules. Then setup a google sitemap account, a Yahoo! Site Explorer account, and a google analytics account.
The google analytics account is basically for you. It will track web visits and statistics for your your drupal cms web site web site – compiling useful reports on your content and visitors. I personally get much more information from my the free software package “AWStats” than I do google analytics – but I keep google analytics for the charts and graphs – and overall information. I use AWStats to give me more referrer information like keywords and how people got to my site. AWStats is usually available inside your’re admin control panel for your web site (if you web host provides one).
The google sitemap tools are basically for the google search engine crawler or ‘googlebot’. You see, once you install the gsitemap module – drupal will prepare a ‘google sitemap’, or basically a page with a link to just about every single piece of information in your web site. It’s like a map to tell the crawler where to go and what to do. This is a much more in depth than just the robots.txt method. And drupal will submit a new version of your google sitemap every single time content is updated in your web site! The last updated content will be listed first in the sitemap, and have higher (indexing) priority. Personally – I don’t setup a web site anymore without submitting both a Yahoo! and Google Sitemap.
I will admit – since I obtained a Yahoo! Site Explorer account and entered in my sitemaps and feeds, I am starting to get 15-20% of my total traffic from Yahoo! for the first time. In regards to google though, I want to talk a bit about their new “duplicate content” initiative. In the past, 10 different web sites could have the exact same content, and the ones with the most backlinks and pagerank would be the highest in the search engine results pages (SERP’s). Google has now totally changed this. Due to “aggregation” software and RSS feeds the web is awash in duplicate content. Hundreds of web sites might have the same headlines, stories, etc. Google has started a database where it has indexed hundreds of millions of keywords and where it found them. It has a new analysis engine that will determine if your web page(s) have 85% of the same textual content as other pages it indexes, and whether your page is the original or not. If your page is not the original – it could be ignored (and not indexed), it could be lower in the SERP’s, or it could be relegated to the “supplemental index” or ‘supplemental hell’ (as we like to call it). Have you ever done a google search where after the search results it said “some similar results were omitted, click here to view omitted results”? Those search results are the “supplemental index”, and nobody wants to have their site listed there.
So you definitely want to have original content in your site, and if you “borrow ideas” from other web sites you better make sure you write enough original material so that you’re not “85% similar” to what’s on other web sites. This will keep you from becoming listed as similar to other sites, but what about your own site? What I mean is, does your own site have similar content? You may not think it does…..but the way Drupal is setup could hurt you.
Think about where content can be found. You might have an article listed on the front page, a category page, a taxonomy term page, etc. Once you have the gsitemap installed in Drupal, you’re going to want to go into admin -> settings -> gsitemap and check out the ‘other settings’. The first section lists the priority settings, and defaults are always fine for me. But the “other settings” section lists some items that determine what is actually listed in your google sitemap. For years, I just used the defaults on these. But now I’m finding that with google’s new duplicate content initiative – the selection “include links to taxonomy term pages” could hurt me. This might not be the case for everyone, but for my site (with has tens of thousands of taxonomy term pages) one article can get listed on dozens and dozens of pages depending on how it was tagged. Also, the taxonomy term pages really bloat my sitemap up in size way more tha it should be. I uncheck this box now, so my sitemap should list my article and comment URL’s only. I have the “submit to google when updated” box checked, “submit sitemap to google on cron run” unchecked, and “count comments…” checked. I also unchecked “log accesses”, mainly because this site is very busy and I don’t watchdog logs longer than 24 hours, so having the sitemap accesses in listed in there would just take up more space for no reason.
Turn on Clean URL’s and feed the crawlers!
This is probably THE most important piece of advice I can give to you…as soon as you setup Drupal – go into admin -> settings and turn on clean url’s! Why? Because if you want to get high rankings in the search engines and be more search engine friendly – you need to feed those crawlers all the keywords you can! And keywords can come from anywhere. We’re not talking about spamming here or keyword stuffing, but keyword and keyword matching. Once you turn on clean url’s – you can give each piece of content (node) a unique url name or path when you create it using keywords. So instead of /node/6574 you can name that content /this_is_my_story or /my-greatest-article-yet.
Here is the optimal scenario. Let’s say I have a page about growing broccoli. My title could be “How to grow the greatest broccoli ever”. With clean url’s on – in the url path settings box – I will give the article the path “how_to_grow_the_greatest_broccoli_ever” (could’ve used a dash there too, your preference). Now, I’m going to make sure that I have taxonomy breadcrumb installed, and I’m going to put this article under taxonomy vocabluary and terms that match the keywords of my title and url. So I would theoretically place this article in the taxonomy under Gardening, Vegetables, Growing Tips. So my breadcrumb at the top of the article page will end up “Gardening -> Vegetables -> Growing Tips -> How to Grow the Greatest Broccoli Ever”. Then, at the top of the article body I will also add an “H” tag, like:
<h2>How to Get Started Growing the Greatest Broccoli Ever in Your Garden!</h2>>
See how I used some of the same keywords from both the title and the breadcrumb? Also – I put emphasis on the title AND they keywords in it by enclosing it in a header tag (h2). Using bold has the same effect. The search engine crawler pays attention to the keywords on the page – as well as the emphasis you place on them. In regards to paths – make sure you read about the ‘pathauto’ drupal module in the section below. I’m sure that there are still some sites out there using the old /node/345 format, but I can’t imagine why someone (that knew better) would do that. For good SEO always use clean URL’s in your drupal (and other) sites.
Get a URL that Contains Your Keywords
I mentioned this previously in this article, but I’m just going to state the case again for why this is so important. Let’s say you’re writing great copy with headers, you have breadcrumbs turned on, and you have clean paths turned on. Why not have a URL that contains your keywords well? It’s a proven fact that a URL name with keywords in it will rank you even higher. If you were selling iPod accessories, your perfect URL would be the highest ranking keyword combination for that item – probably something like http://www.bestipodaccessories.com (see Wordtracker towards the end of the article below for how to find the best keywords).
If you doubt me – watch your google results the next time that you search. When you see keywords bolded in the SERP’s, you’ll find keywords bolded in the url’s as well. A keyword domain name just makes your site more niche and possibly (to the search engines) more of an authority. It just makes sense if you’re looking for a page on training jack russell dogs that the keywords would be listed in the domain name and path as well as the text of the page. I have tested this theory many times. I have a site called VistaReview.info, where I review my experiences with the new Windows Vista on my laptop. I was getting hits from google from people doing searches on the keywords “Vista Review” within the first 48 hours the web site was online. The exact same thing occured for my web site Top Jokes. (*note: these are both WordPress sites, but this has happenned in Drupal sites as well. I just used them in this example of domain names with keywords…=))
Tell the Yahoo and MSN Search Engine Crawlers to visit Your Site
Normally – you don’t have to tell google to visit your site, it just does. However if you really want to you can visit the google addurl page.
More importantly – you will want to submit your site to Yahoo!, and submit your site to MSN. If you really want to, you can add your URL to AOL too. If you’re using a google sitemap (like I told you to), and a Yahoo! Sitemap (like I told you to), and you authenticated both, they this is no longer necessary.
These crawlers might have found your web site eventually anyway – but I’ve found that MSN had never visited my site until I invited it, and the Yahoo! search crawler hadn’t been by that often. Since I did this – not only did my activity from Yahoo! increase dramatically – but I now have 3,368 links in MSN search, and before I invited the crawler I had zero. Maybe there will be in the future, but I haven’t found sitemap or related type of registratio for MSN like there is for both google and Yahoo!. In WordPress you can list various servers you want to “ping” when you add content to your site and this is very handy forgetting listed quickly in Google Blog Search, Blog Search Engines, and eventually the main search engines themselves. I have a list (in WordPress) of 50 odd places it notifies every time content is added or modified. I wish there was something (maybe I’m overlooking it) like that for Drupal.
Find out how your web is doing in Alexa
Alexa is a service that basically archives and compiles statistics on the entire Internet. Did you know Alexa is (now) owned by Amazon? It already has information about your web site – shouldn’t you go and find out what it knows?
It also has several free services you can use. Visit the Alexa developer corner for more information regarding the webmaster services they have available, some may be useful to you. If nothing more you can find out where your site stands compared to the rest of the Internet as far as activity. You can also “update your profile” if you wish to, so if people look up your site in Alexa you can give them more information. Always great for potential advertisers if you have a large site.
Visit the MSN Site Owner and Google Adsense Help Sections
The new MSN Search Engine is now direct competition to google – and it’s on like donkey kong!! Meaning, get on the ball and find out what you can do to get a piece of this action translated into new activity for your site. Make it as MSN friendly as you can. Visit the MSN Site Owner Help web site. They have articles on successful indexing, information on site rank and description, and the ability to directly ask questions. I have noticed that my MSN traffic has slowly been increasing the last 6 months – to as much as 15-20% for some of my sites.
Google has a nice help center that includes all kinds of optimization tips and hints. They have tips for optimizing for your blog and for forums, and information on placement and format. While these help pages are for optimizing your site for google adsense ads – even if you don’t use adsense, the optimizing tips will help your site in other areas and give you some new ideas. If you aren’t already signed up for adsense – why not? Allowing google ads is not like web advertising used to be – remember annoying banner ads and popups? Google adsense ads actually relate to your (key) words next to them, and can often give the visitor exactly what they were looking for. I use those links a lot when I surf sites. If you don’t have adsense – signup now (it’s free):
Install Drupal Modules that Help Search Engine Crawlers
I have installed and tried several hundred modules for Drupal 4.6, 4.7.3, 4.7.4, 5.0, and 5.1. I have thrown away all the ones that were of no use to me, and only kept the essential ones. I’ve read in many forum postings that even when you have a module installed (but not enabled) you are using memory in Drupal.
Taxonomy Breadcrumb is one of the most search engine friendly Drupal modules I’ve found to date. It creates breadcrumb links at the top of every single page based on your taxonomy and categories. This has increased the relevance of all of my adsense sections, help users navigate my site, and helped the crawler find more pages and categories to index. Get this module now!
Weekly node listing is WAS another great drupal module. I would recommend this module is you have lower traffic site (under 1,000 unique pageviews per day). For me I noticed that my site, which has received 10-30,000 unique pageviews per day, the SQL queries required to generate these weekly archive pages was killing my server. I never noticed it until I started receiving thousands and thousands of hits per day. It’s a great module, and I like what it does did. But, now I would only recommend it for smaller sites. It creates a block with links to weekly archives of your content. This is great if you have a lot of content. It helps your user see what was posted each week, but also once again gives the search engine crawler links to all of your essential and recent content. Get the weekly archive module now!
The Sitemenu drupal module is was one of the best, I believe. There are 2 ‘site map’ type modules – one is called ‘sitemap’ and the other ‘sitemenu’. My preference iswas sitemenu, but now I’ve been forced to use site map. This is because I had so many taxonomy categories and terms (thousands), that the map took forever to generate and (again) killed my server with mysql database queries. I switched to sitemap because I found I could configure it to create a site map without listing all taxonomy terms and categories, but just list the articles. This was a better choice for me – and I was glad to have this configuration choice. I created a primary link for site map and put it at the top of my site for both users, and the search engine crawlers to follow. Happy Day!
The newest module I’ve installed is Pathauto. Boy was this one a godsend! I guess pathautho was a module that was very memory intensive when used in Drupal 4.6, and even had a security problem last summer in 4.7 – but the version after Sept 4, 2006 is good (and it’s still good in 2007, even for 5.0 and 5.1 sites). I’m using it right now – and it’s great! Basically, when you have ‘clean url’s’ enabled in drupal – you have the ability to give nodes (content) real names. So instead of node/4378 you can have /the_greatest_story_ever_written or /best-story-ever. The ability to have clean url’s is KEY…let me say that again… _ KEY _ to getting good search engine rankings. But….you might not want to get stuck writing them in for every single piece of content (especially if you have some RSS aggregation going on). Pathauto does just that – it automatically creates the path for you based on your title of the page!! Never forget to give you page a clean url path again! You can download the pathauto module here.
You’ll eventually want to install the module Related Links. Why? Well, even if you aren’t going to suggest links external to your web site – why wouldn’t you occasionally want to suggest links within your site? Even if you don’t use them – the search crawler will…and having pages linked together that are similar in content always helps the old page rank! Download the related links drupal module here. For a very long time I had the related links display in my right sidebar, but now I display them directly under the body of my content (which seems to be working much better).
There is a module I just found called I found last year Urllist. This is a module that creates a urllist.txt file – which I just found out is basically what the Yahoo! search engine crawler (and some others) use as a ‘sitemap’ or list of links when indexing your web site. I’ll keep this for now, but since Yahoo! Site Explorer (listed above) will let you input your sitemap and feed URL’s – I just give it my gsitemap link (which appears to be working fine). So – I don’t believe this modules is needed anymore, but I’ll keep it for now just to make sure I don’t lose any links from something using it. I’ll watch my logs the next few months.
How to get rid of the pesky PHPSESSID issue in links from the crawler
This is something that used to be a problem with older versions of Drupal – 4.6.x and before, and it’s supposedly fixed in 4.7.x. I have never seen a PHPSESSID and accompanying garbage in any URL on my site. However, for some reason the PHPSESSID’s appear when search engine crawler indexes the site. From what I read in the drupal.org forum’s – it appears to be an issue with cookies. When you can accept cookies in a browser – you get no PHPSESSID, but if they were turned off (and a search crawler can’t accept cookies) you get URL’s with a PHPSESSID.
How to fix?
The only shred of info I managed to make sense of was that if you have Drupal installed as an Apache module on your site – you can add these 2 lines to the .htaccess file in the root of your site to make it go away:
php_value session.use_only_cookies 1
php_value session.use_trans_sid 0
I was getting the PHPSESSID’s URL’s in google, but also in my listings in technorati. I’ve had this change up a few days now, and I’m starting to see some good links in technorati and google both! I hope that I have fixed this for good! I can tell you that my google page rankings and listings have gotten significantly better since I did this.
**Please Note** – this fix was something I did for Drupal 4.6-4.7.3, I have no idea if it’s still necessary for Drupal 5.x or not (yet).
Get a Technorati account and boost your exposure
What is Technorati? Technorati is a ‘blog search engine’ or maybe even what you can call a ‘blog popularity barometer’. You don’t have to be a member to search blogs for keywords just like any other search engine (except it only searches blogs). But if you get an account, you can ‘claim’ a blog. Once you ‘claim’ and verify your blog – you can type in some info about your site in your profile. You can have as many sites as you want in your profile (I have 3 12).
Then each time you login to http://www.technorati.com, your blogs are listed – and it says “x blogs link to you”. As your site becomes more popular you will see it when you login to technorati. Also – before I was a member at technorati I don’t think my site was even indexed through them. Now I get quite a bit of traffic from them for all different kinds of key words. Remember – with all the search engines the ONE KEY to GETTING HIGHER LISTINGS is to INCREASE the amount of sites that are linking TO YOU! These are called ‘inbound links’. Getting a technorati account and updating your profile with definitely increase your inbound links over time (and get you more web site traffic!). In addition to that, since Technorati indexes only blogs – many, many people use it as their search engine daily. If you want to see the last blogs posts about American Idol, the war in Iraq, or a digital camera review – searching Technorati can often be better than a regular search engine. Espescially if you want pages written by real people and sponsors, shopping sites, ads, and the like. By listing my sites in Technorati I have increased my daily and monthly traffic quite a bit.
Manually Creating “inbound links” to Your Web Site
I’m going to show you the legal, moral, and ethical way to increase your search engine page rankings and generate more traffic for your web site. You’ve all probably seen comment, trackback, and rss spam put out there by unscrupulous, shady, slimy web site operators. That’s NOT what this is…
An ‘inbound link’ is a hyperlink to your web site from another site. Think in terms of ‘mySpace’. Everyone seems to know about mySpace. The more friends you have on mySpace – the more popular you are. The more links to your web site from other sites you have – the more popular you are (in the search engines). That’s why this is called ‘link popularity’ – and link popularity translates to higher page rankings, and more web site traffic for you!
For my example I’m going to pretend that I own a web site that sells new and used parts for gas and electric stoves. The most stocked part I carry is a ‘glow igniter’ for gas stoves, and the most popular brand is “Hotpoint”. First, I would research the most used keywords related to my item using Wordtracker (see using the best keywords paragraph towards the end). Next, I would do research on what people find when doing the searches. Let’s most popular keyword searches related to me are “gas stove won’t light” or “hotpoint igniter”. I would spend time in Google, MSN, and Yahoo! finding out exactly what people are finding in the results.
First, this points out exactly who your competition is. Second – you are specifically looking for web forums and blogs, basically places that you can comment or add a post to a web page. You are looking for places where people are asking questions that you (as an expert on the subject) can give answers to. You are like a door-to-door salesman, digging up your own customers.
Specifically related to this mock example, you are sure to find web forums dedicated to appliance repair. Find problems that you can easily answer, either included in your post or at the end of it – include a link back to your own web site in a signature or byline. Be sure the links relates, and be sure that the hyperlinked text itself includes keywords you want search engines to index and use.
You would find forum posts that say “my Hotpoint stove won’t light”.
Then you post a response that says:
“it could be because your igniter has blown out. This is about a $80 part any appliance parts store should have, and you could easily replace it yourself with some basic instruction”. Then I would end the post like… See my free diy how-to guide to replace a hotpoint gas stove igniter on my web site.
Some forums have strict policies on linking (outside the forum), but it depends. If you’re really trying to help someone and politely linking back to your site (not spamming) – it’s usually allowed. Many people only post to forums as ‘subject matter experts’ because they get the ‘signature’ links back to their site. It’s a valuable tradeoff, since you’re helping the forum owner, answering his user’s questions, and generating traffice for his (forum) site. Also, most of these forums have a ‘subscribe’ feature for threads and topics. If an applicance repair forum had a topic Repair -> Stoves -> Gas -> Hotpoint, I would “subscribe” if I could to this forum topic so I would get email any time new posts. You could become a regular expert in this forum, posting often and creating multiple links back to your site. Maybe for some forums you could eventually become a “moderator” of an entire section.
Depending on the topic, you can also comment on blogs using the exact same technique. While you might not exactly find too many blog posts for “my Hotpoint gas stove won’t light” – you will for many other topics.
Creating inbound links is time consuming research and work, but it’s no different than generating sales in a real brick and mortar store. Really, what it boils down to – is that it’s marketing! I had a page a year ago about my cell phone. I did exactly what I just described and posted in 6 forums answering questions (about 18 times total). I increased the traffic to that (new) web page on my site from 10 views per day to almost 1,000 per day. The phone is a year old now, so I don’t (still) get 1,000 per day, but I still do get traffic (from those forum posts) every day. Imagine what you could do for your site if you dedicated ‘promotion’ time in the forums each and every week?
Encourage others to create instant social links to your site
See the little icons after every post and article on this site? Put your mouse over each one, and you’ll find that they are for various ‘social bookmarking’ (or what is termed was web 2.0) sites. These are sites where people are basically recommending your page to someone else. In some of these sites – people will vote on how good is is or not (like www.digg.com and www.reddit.com). Other sites (like http://del.icio.us) save your page title and link in a ‘tagged’ format on a personal bookmark page. Collectively, the more people that bookmark (the same page) – the more popular it is. These sites get indexed by search engines too, not only creating more inbound links for you – but generating traffic at the same time! I posted this page to my del.icio.us links page, and 12 hours later saw the del.icio.us seo tag page listed in Yahoo! search – with my link on it! People that already have accounts on digg, reddit, google, yahoo, will be encouraged to save or promote your page from your site. In Drupal, the module that adds these to each post is called “Service Links. If you want to increase inbound links to your site – I would install this module. Also – like technorati, many people ‘search’ bookmarks at del.icio.us – so once people make bookmarks to your pages – you will increase your traffic to your web site as a result.
Use a Web Service or a separate blog to enhance your site with more inbound links!
Why should your web site be the only place you put content? Some of use have more than one web site – but did you ever think about getting a non-Drupal blog somewhere, or even using a free service like newsvine.com? You’ll see that newsvine is one of of the ‘service links’ (see previous paragraph) used on this site. On newsvine, when you setup an account you are basically setting up a little web site that’s a cross between a blog, del.icio.us, myspace, and digg. You get to name it whatever you want – I called mine smorgasbord.newsvine.com. You post links and descriptions back to your web site, you can do the same for other sites, you can setup a profile, and people can vote on and rate your posts and content. You can give your links and posts tags and categories like del.icio.us, and people vote and rank on them like digg.com.
But…at newsvine.com you can also write and add your own articles (like a blog). Write some articles that are similar in nature to your own web site content – but make them original. You could of course just copy any paste your own articles here and link back to your own site – but that’s just competing for your own page rank. Why not complement your site, and try to get rankings for similar topics and keywords? Using a free service like this can be worth it, if you take the time to make it content rich (just like you did your own web site). Newsvine sells a few ads on your site to make money, but you benefit tremendously by linking back to your own site generating traffic – and creating more much needed ‘inbound links’ to your site.
Treat it like the forum posts…you can write a brand new article on Newsvine (or a similar site), and merely reference your site (if you have a page that applies). It’s a win-win situation. Newsvine gets new content, and your get traffic back to your site. Again – you DON’T want to just copy an article from your site (or somewhere else), because of google’s new ‘duplicate content’ guidelines. So creatively write something new and link back. Also, be sure to list your site(s) in your ‘blogroll’ at Newsvine for more link love.
Get a bloglines account to see who is using your feed
I think that bloglines.com is one of if not the largest RSS aggregator web site in the world. If you haven’t already, get a free account and then add your own site feed to your profile. When you read it – not only can you check what your own RSS feed looks like to others, but you can see (at the top of the page) how many subscribers to your feed (at bloglines) there are. You can also see how many subscribers any other feed has as well.
Get an account at Feedburner for your RSS feed
Having an RSS feed for your blog or web site is nice, but how do you find out who is using it? It’s really hard to use your regular web site stats or logs to get what you need out of your RSS feed usage. If you get a feedburner account – they keep track all of this for you. And (last I checked) you could either host your feed on their site (saving your bandwidth) or even on your site if you choose to keep it there. There are premium and pro accounts, but the basic Feedburner account for your feed is free!
Check Your Link Popularity at submitexpress.com
This may not be as important to you in the beginning – but you need to keep track of your link popularity (I told you why in the last paragraph). Use the link popularity tool at submitexpress.com. It’s free, you don’t have to signup for anything (if you don’t want to) when you get the email report – and they won’t sell your name or spam you. They are of course in business to make money and for their paid tools, but the free ones are good too. Bookmark that page, and keep checking to see if your link popularity goes up (or god forbid – down). Since using the techniques described in this article (on this site) – my link popularity has gone from 4,357 links to 5,088 179,016 links (in just 5 days the last 6 months).
Check your Blog Juice Rating
Text Link ads has a cool tool called the Blog Juice Calculator. Basically it take into account four things: Technorati listings, Alexa Rankings, Bloglines subscriptions, and search engine links. This gives you a ‘Blog Juice Score’ (from 0 to 10), kind of like a page rank at google. The only difference is, here you can the score is down to the the tenth – so you can get a 3.9 instead of just a 3 or 4 (at google). If your blog juice is over 5 – you have a pretty damn good site!
Use Post Comments to boost the popularity of the page
Ok, the use of comments is essential to your search engine rankings. What I mean is – it will dramatically help them. They search engines love blogs. And blogs have comments. Comments are a sign of an active site, and the crawlers love active sites more than stagnant ones. So – if you have a new site (or one with few memebers), until you get some traffic – you can leave your own comments! I don’t mean do it in a black hat way either (from a bogus account you create). I mean – when you update your articles – instead of editing them and posting a new version, just add a comment instead. Also – make sure you enable the recent comments block for at least your home page (node) as well. This is great for both your users navigating the site – and for the crawlers going through your site.
By adding a comment, you increase the relevance (or freshness) of that page in your google sitemap. You also create a new (comment) url. And, if you have a comment block turned on for either your home page or all pages, you’ve freshened the content of those pages as well. In addition – comments are a great way to combat the ‘duplicate content’ issue with google. Now you can reference or quote an article, and then write about it in a ‘comment’, and the page stands a chance at good indexing and SERP results.
Post Often, Promote All
Post content to the site as often as you can, and promote everything to the home page! The more often you update content, the fresher the site appears to the crawlers. The more human written content you have – the better. Also, the default setting for Drupal out of the box is to promote only 10 items to the home page. You want to make that the MAXIMUM amount of articles you can…because more content equals more text, and more text is more keywords, and more keywords make the search engine crawler happy when it eats your site!
I also found that people like reading past posts and articles, and they are much more prone to look through what it recent on your home page by scrolling down than they are to use your navigation menus or search to find things. Promoting everything to the home page has definitely increased my pages viewed per unique visitor.
Have at least one “blog” to post regularly to
In your drupal site, make sure that you have the ‘blog’ module turned on. Also enable or add a link (if there isn’t already one) to examplesite.com/blog in your primary links menu. Every now and then, for articles with ‘long term’ value – instead of creating a ‘story’, create a ‘blog post’. Promote it to the home page, so it will be listed the same as all your other articles. But the difference for a “blog post” is that it will be listed on the blog page for a very long time. On this site, I have hundreds of things per week posted to the home page in various categories. But I treat the blog posts page as more permanent things I want people to have access to quickly.
By doing this, I have found that over time the blog page has a great pagerank and lots of visitors from search results. I like my homepage to have the constantly updated stories and content, but posting on a regular basis (even if only once or twice per month) to one page gets very good SEO results.
Submit your site and / or your RSS feed to Lesser Known Places
Submit your URL to Yahoo! News
Did you know you could submit your site for indexing to the Yahoo! News editorial staff? Yep, didn’t think you did…
Submit your site to the Open Directory Project
It’s easy to submit your site to the Open Directory Project. After you read the instructions, you’ll find you have to choose a category to submit your site in…the directory of weblogs might be a good place to start (it was for me).
Submit your RSS feed to Moreover
Moreover is a major RSS news feed syndicator, fill out the form to submit your feed to be considered for their index.
Add our RSS feed to the Syndic8 Index
Another huge syndicator of news feeds, read the instructions for submitting your RSS feed URL to be considered for their index.
When you add new content to your site – send out Pings!
When you update content on your site, or add a new article – be sure to use a site or service link Pingomatic.com to ping all the major blog engines and let them know that you have new and updated content.
BlogPulse is a HUGE blog search engine.
Be sure to add your url to have your feed indexed and added to their database.
Add yourself to the NewsXS sourcelist
Add your site to be included on the NewsXS sourcelist. They have tons and tons (and tons) of feeds.
Add your feed to IceRocket
IceRocket has been around a few years, but it’s getting a bit more popular as an blog search engine. add your RSS feed URL to IceRocket.
Use Keywords that People are Actually Looking For
This is an endorsement for a service that I use. Have you heard of Wordtracker ? Wordtracker is a paid service that helps you find the best keywords to use for your web site. It’s a ‘keyword research’ tool. If you are interested in finding out what people are really looking for – of if you’re trying to drive traffic to your site, you have to at least give Wordtracker a try. Yes, it is a paid service – but one of the few that I’m willing to pay money for. You can sign up for the free trial at no cost to you to see how useful it is as many times as you want. In the free trial, you will get results for MSN and Yahoo!, in the paid version you get the google results as well. I tried it many times before I bought a subscription because it was so necessary to good SEO work on my site(s).
Let me explain why this works so well….let’s say that you are selling chocolate online. In your web pages you are going to want to write copy (text) that includes keywords people are searching for. When the search engine crawler indexes your site – you want your pages to have as many related keywords as possible. But how do you know what keywords are more popular as searches from the search engines? Should you talk more about chocolate bars, white chocolate, chocolate gifts, or chocolate recipes? Do your research at Wordtracker. Worktracker will give you keywords and keyword phrases related to your content that you didn’t even think about – and it will tell you which ones are more popular and best to use. I have paid hundreds, possibly thousands of dollars for ebooks, software packages, and online tools promising to increase my site traffic and make me money. To date – Wordtracker is the only one that was worth the money (times 10), and that I still use. It’s the only one that (today) I will endorse.
Drupal.org has a Search Engine Optimization Group
Drupal.org has a subdomain groups.drupal.org, and that there is a drupal search engine optimization group there with 203 members. Sign up today, and trade your ideas there as well for Drupal SEO.
More to come…Subscribe to this article below (if you are logged in)
keep checking back and subscribe to this page….I will be adding more weekly as I optimize this site more and more…I have updated this article 7-8 times already since it was written (and it’s not even a week old yet).
IF YOU HAVE TECHNIQUES YOU WOULD LIKE TO SHARE – Please comment below…
IF THIS ARTICLE HAS HELPED YOU – Please comment below…
Thanks – and we hope you benefited from this FREE information.
originally posted: 2007-05-03 17:00:26 -0400
Drupal: Creating Blogs, Forums, Portals, and Community Websites
Search Engine Marketing, Inc.: Driving Search Traffic to Your Company’s Web Site (Ibm Press)







Do you help with drupal websites> Or, know of someone who is reputable that does?
I have a need to reorganize my drupal site and add some appllications.
Your information is very helpful. My only issue is time….
Great tutorial man! :D
Yep, really nice. Helped me a lot!
thanks for taking the time to share your knowledge. i found this link in google, so it’f fair to say you know your stuff;-)
Thanks for your wonderful help on Drupal SEO.
Could you please tell me whether completely restricting access to anonymous users will hurt my search engine friendliness. And if so, is there a way to go around this problem through robot.txt file?
Thanks,
Arkady
Nice work – I’ve subscribed!
Wow, thanks for such a detailed sharing, and for taking the effort to update it. It’s so much details that I will take more than one day to go through everything! Hopefully my website will turn out alright. Cheers!
GREAT post. Wanted to say that this is one of the more in-depth posts that I have read on Drupal SEO and you should be commended.
I didn’t see any mention of the Global Redirect module which is essential for the Drupal SEO setup. Global Redirect will prevent many of the duplicate content penalties that your Drupal site will be subject to out of the box. Otherwise, your post seems pretty complete.
thanks! I don’t know about the global redirect module (must be new). I only have 2 Drupal sites left, everything else I converted to WordPress (which I now favor). I’m glad this post is still helping people using Drupal and it’s still relevant…
Really this article was helpful for me to Optimise my drupal site…..
this article helped me to optimist our site swingwind.com
prasanth
nice post! It helps me a lot to optimize my site… now my newly published site are get index by search engine especially Google…
thanks..:)
Nice article… Now if only someone had something this comprehensive for Drupal theme’s.
Very nice article. Do you have any tips you could add at some point regarding the ordering of the content in the Drupal page to make it easier for search engine spiders to crawl the page?
–Thanks, JT
I don’t think there’s anything in particular you need to do, pages that are available for indexing are equally viable regardless of the order they are found. The only difference is if you have an XML “sitemap” and different weights are assigned there.
Lots to think about from your post. I look forward to my next visit.
This article is packed full of useful information, thank you very much for taking the time to share it.