Sunday, January 11, 2009

Doubling website traffic with Drupal SEO optimization

[A cross-post from drupal.org] I've been playing with SEO optimization on my Drupal site (www.kidpub.com) since about August of last year, mainly tweaking meta tags (description) and title tags. I use Nodewords and Pathauto for high-level optimization.

KidPub is a site for kids who enjoy writing. It was launched in 1995 with custom code on the CGI framework, then migrated to PHP in 2000, and to Drupal in about 2005. We give kids a place to post their stories, poetry, reviews, and other creative writing; host writing contests with great prizes, and in general give kids a fun, safe place to hone their writing skills and build confidence. We also publish books written by children. I am one of only a handful of individuals who have run the same website continuously for 15 years, and I think it gives me some interesting perspective.

Traffic to KidPub in its Drupal incarnation averaged 3,000 to 4,000 unique visitors per month through August of 2008, when I began to look for ways to increase traffic to the site. About 65% of our traffic is generated from Google searches, 20% direct, with the remainder from Yahoo, MSN, and other search engines. It wasn't hard to decide to go after better Google placement. The goal was to double traffic by improving placement in the search engines in our target keywords.

The results are available graphically at my blog, http://kidpub.blogspot.com. In the period from August 2008 to December 2008, traffic has improved from 4,000 unique visitors per month to about 9,000 unique visitors, and KidPub.com is now the #1 search result on Google for 5 of our 10 target keywords ('kids publishing', 'kids stories', 'kids writing', 'publish my story', and 'kids publisher'). We are continuing to optimize to imrove the placement of our other 5 keywords.

Optimization was done in several steps. First, we used Pathauto to produce better search results by showing the Google spiders human-readable filenames based on the story title. A side effect of this is excellent placement on keywords that we hadn't thought of, such as 'new twilight book' (#3) and 'magazines that publish kids stories' (#4).

Next, we used Nodewords (Meta Tags) to set global keywords in meta tags for all pages returned at KidPub (currently about 14,000 indexed by Google). The keywords included our ten target words and phrases.

The title tag was modified using the page_title module to output a ten-word phrase that describes our site. Heat maps (graphical representations of what a user looks at) of Google searches show that users spend most of their short time on the Google page in the upper left, specifically on the links for the top three results. The link come from the title tag. It's your ten-word marketing opportunity, and it needs to tell the reader exactly what your site is. Our title tag emits 'Publisher of books and stories for kids, by kids'. You can see a heat map and an explanation of using the title tag as a marketing tool on my blog (http://kidpub.blogspot.com).

The description meta tag is configured to emit about twenty words that act as the call to action. It is typically displayed beneath the link on Google. We want the title to tell the reader in a few words what the site is, and then give them a reason to come to the site with the description.

These are the only changes made to the site during the measurement period from August to December of 2008. Granted there are external factors (word of mouth, appearance in a blog etc) that bring traffic to a site, but I'm convinced that the optimization effort is primarily what led to a doubling of traffic. We are projecting another doubling in the next three months to 20,000 unique visitors per month based on the current rate of growth.

I am currently blogging quite a bit on SEO, mainly because it's on my mind and I want to learn by sharing what I've observed. The blog is at http://kidpub.blogspot.com, and KidPub is at www.kidpub.com. I invite everyone to visit both and have a discussion on better ways to optimize Drupal.

No comments:

Post a Comment