diff --git a/googleanalytics.admin.inc b/googleanalytics.admin.inc
index e766f67..de94056 100644
--- a/googleanalytics.admin.inc
+++ b/googleanalytics.admin.inc
@@ -334,6 +334,13 @@ function googleanalytics_admin_settings_form(&$form_state) {
     '#disabled' => (module_exists('search') ? FALSE : TRUE),
   );
 
+  $form['advanced']['googleanalytics_trackranking'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Track Ranking'),
+    '#description' => t('If checked, the ranking position from Google will be tracked when the users comes from a Google search (<a href="http://www.seomoz.org/blog/tracking-organic-ranking-in-google-analytics-with-custom-variables">Rank tracker example on SEOmoz</a>).'),
+    '#default_value' => variable_get('googleanalytics_trackranking', FALSE),
+  );
+
   $form['advanced']['googleanalytics_trackadsense'] = array(
     '#type' => 'checkbox',
     '#title' => t('Track AdSense ads'),
diff --git a/googleanalytics.module b/googleanalytics.module
index e03b706..a2ece9a 100644
--- a/googleanalytics.module
+++ b/googleanalytics.module
@@ -203,6 +203,17 @@ function googleanalytics_footer($main = 0) {
       }
     }
 
+    // Add ranking position tracker with a custom variable
+    if(variable_get('googleanalytics_trackranking', 0)){
+      preg_match("/cd\=(\d+)/",$_SERVER['HTTP_REFERER'], $matches);
+      $str = $matches[0];
+      preg_match("/(\d+)/",$str,$matches);
+      $rank = $matches[0];
+      if ($rank != '' ) {
+        $custom_var .= "_gaq.push(['_setCustomVar', 1, 'Google_Ranking', $rank, 2]);";
+      }
+    }
+
     // Build tracker code.
     $script = 'var _gaq = _gaq || [];';
     $script .= '_gaq.push(["_setAccount", ' . drupal_to_js($id) . ']);';
