diff --git a/includes/views/views_lazy_load_plugin_display_extender.inc b/includes/views/views_lazy_load_plugin_display_extender.inc
index f28c8de..bbe8c21 100644
--- a/includes/views/views_lazy_load_plugin_display_extender.inc
+++ b/includes/views/views_lazy_load_plugin_display_extender.inc
@@ -4,7 +4,6 @@
  * @file
  * A display extender plugin for lazy loading a view.
  */
-
 class views_lazy_load_plugin_display_extender extends views_plugin_display_extender {
 
   /**
@@ -12,28 +11,32 @@ class views_lazy_load_plugin_display_extender extends views_plugin_display_exten
    */
   public function pre_execute() {
     if ($this->isEnabled() && empty($this->view->live_preview)) {
-
-      // Lazy loading requires an AJAX view.
-      $this->view->set_use_ajax(TRUE);
-
-      // Marking the view as executed prevents the Search API querying Sajari.
-      $this->view->executed = TRUE;
-
-      // This is a bit of a hack to make sure the view is always rendered when
-      // we're lazy loading the view. By setting an "empty" area handler in the
-      // header the view is rendered which is later used for switching in the
-      // results.
-      // @TODO, in the future we could clean out all area plugins first pass?
-      if (empty($this->display->default_display->options['empty'])) {
-        $this->addLoadingArea();
+      if (!$this->isExcludedUserAgent()) {
+        // Lazy loading requires an AJAX view.
+        $this->view->set_use_ajax(TRUE);
+
+        // Marking the view as executed prevents the Search API from querying
+        $this->view->executed = TRUE;
+        // This is a bit of a hack to make sure the view is always rendered when
+        // we're lazy loading the view. By setting an "empty" area handler in the
+        // header the view is rendered which is later used for switching in the
+        // results.
+        // @TODO, in the future we could clean out all area plugins first pass?
+        if (empty($this->display->default_display->options['empty'])) {
+          $this->addLoadingArea();
+        }
+
+        // Add our JavaScript to the page with an array of dom_ids that can be
+        // used client side to retrieve the view instance.
+        $path = drupal_get_path('module', 'views_lazy_load');
+        $settings[] = $this->view->dom_id;
+        drupal_add_js(array('views_lazy_load' => $settings), 'setting');
+        drupal_add_js($path . '/js/views-lazy-load.js', array('scope' => 'footer', 'weight' => 10));
+      }
+      else {
+        // Ensure that AJAX won't be used if a crawler is visiting the view
+        $this->view->set_use_ajax(FALSE);
       }
-
-      // Add our JavaScript to the page with an array of dom_ids that can be
-      // used client side to retrieve the view instance.
-      $path = drupal_get_path('module', 'views_lazy_load');
-      $settings[] = $this->view->dom_id;
-      drupal_add_js(array('views_lazy_load' => $settings), 'setting');
-      drupal_add_js($path . '/js/views-lazy-load.js', array('scope' => 'footer', 'weight' => 10));
     }
   }
 
@@ -45,6 +48,24 @@ class views_lazy_load_plugin_display_extender extends views_plugin_display_exten
   }
 
   /**
+   * Check the user agent string to see if it's one of our excluded agents.
+   * 
+   * @return bool
+   *   TRUE if the current user agent should be excluded otherwise FALSE.
+   */
+  function isExcludedUserAgent() {
+    $user_agent = $_SERVER['HTTP_USER_AGENT'];
+    $excluded_user_agents = views_lazy_load_get_excluded_user_agents();
+
+    // Implode to a string separated by a unique separator ",,,", escape the
+    // string so it's safe for the regex and then replace our separator with
+    // pipes so each user agent is OR'd.
+    $excluded_user_agents = str_replace(',,,', '|', preg_quote(implode(',,,', $excluded_user_agents)));
+
+    return (bool) preg_match("/$excluded_user_agents/i", $user_agent);
+  }
+
+  /**
    * {@inheritdoc}
    */
   function options_form(&$form, &$form_state) {
diff --git a/js/disable-alert.js b/js/disable-alert.js
index f7314c1..4b73061 100644
--- a/js/disable-alert.js
+++ b/js/disable-alert.js
@@ -1,3 +1,7 @@
+/**
+ * @file
+ * Disable Alert.
+ */
 (function($) {
 
   /**
diff --git a/js/views-lazy-load.js b/js/views-lazy-load.js
index a0ee4f2..24dcb05 100644
--- a/js/views-lazy-load.js
+++ b/js/views-lazy-load.js
@@ -1,3 +1,7 @@
+/**
+ * @file
+ * Ajax refresh on views at page load
+ */
 (function($) {
 
   Drupal.behaviors.views_lazy_load = {
diff --git a/views_lazy_load.admin.inc b/views_lazy_load.admin.inc
new file mode 100644
index 0000000..0f708d5
--- /dev/null
+++ b/views_lazy_load.admin.inc
@@ -0,0 +1,32 @@
+<?php
+/**
+ * @file
+ * Admin page callbacks for the views_lazy_load module
+ */
+
+ /**
+  * Admin settings form callback.
+  */
+function views_lazy_load_admin_settings() {
+  $user_agents = views_lazy_load_get_excluded_user_agents();
+  $form['views_lazy_load_excluded_user_agents'] = array(
+    '#type' => 'textarea',
+    '#title' => t('User Agents that will disable the lazy loading'),
+    '#default_value' => implode("\r\n", $user_agents),
+    '#description' => t("Views won't be lazy when visited by these user agents (enter one per line)"),
+    '#value_callback' => 'views_lazy_load_excluded_user_agents'
+  );
+
+  return system_settings_form($form);
+}
+
+/**
+ * Value callback for the views_lazy_load_excluded_user_agents textarea.
+ */
+function views_lazy_load_excluded_user_agents($element, $input = FALSE, $form_state) {
+  if ($input) {
+    // Explode the values from the textarea back into an array for storage.
+    $input = explode("\r\n", $input);
+    return $input;
+  }
+}
diff --git a/views_lazy_load.info b/views_lazy_load.info
index a1e822a..f89a8aa 100644
--- a/views_lazy_load.info
+++ b/views_lazy_load.info
@@ -3,7 +3,10 @@ description = "Lazy load any views content via AJAX"
 package = Views (Contrib)
 core = 7.x
 
+configure = admin/config/views_lazy_load/settings
+
 dependencies[] = views
 
+files[] = views_lazy_load.admin.inc
 files[] = includes/views/views_lazy_load_plugin_display_extender.inc
 files[] = views_lazy_load.test
diff --git a/views_lazy_load.module b/views_lazy_load.module
index df89202..2fce2cc 100644
--- a/views_lazy_load.module
+++ b/views_lazy_load.module
@@ -5,7 +5,6 @@
  * Module file for views_lazy_load.module.
  */
 
-
 /**
  * Implements hook_views_api().
  */
@@ -29,7 +28,7 @@ function views_lazy_load_theme() {
  * Theme callback.
  */
 function theme_views_lazy_load_throbber() {
-  return '<div class="views-lazy-load">'.t('Loading').'...</div>';
+  return '<div class="views-lazy-load">' . t('Loading') . '...</div>';
 }
 
 /**
@@ -40,3 +39,52 @@ function views_html_head_alter() {
     drupal_add_js(drupal_get_path('module', 'views_lazy_load') . '/js/disable-alert.js', array('every_page' => TRUE));
   }
 }
+
+/**
+ * Implements hook_menu().
+ */
+function views_lazy_load_menu() {
+  $items = array();
+  $items['admin/config/media/settings'] = array(
+    'title' => 'Views Lazy Load',
+    'description' => 'Change views lazy load default configuration',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('views_lazy_load_admin_settings'),
+    'access arguments' => array('administer site configuration'),
+    'file' => 'views_lazy_load.admin.inc'
+  );
+  return $items;
+}
+
+/**
+ * Gets an array of user agents.
+ *
+ * @return array
+ *   An array of user agents.
+ */
+function views_lazy_load_get_excluded_user_agents() {
+  $user_agents = array(
+    'Googlebot',
+    'msnbot',
+    'Rambler',
+    'Yahoo',
+    'AbachoBOT',
+    'accoona',
+    'AcioRobot',
+    'APSeek',
+    'CocoCrawler',
+    'Dumbot',
+    'FAST-WebCrawler',
+    'GeonaBot',
+    'Gigabot',
+    'Lycos',
+    'MSRBOT',
+    'Scooter',
+    'AltaVista',
+    'IDBot',
+    'eStyle',
+    'Scrubby',
+  );
+
+  return variable_get('views_lazy_load_excluded_user_agents', $user_agents);
+}
diff --git a/views_lazy_load.test b/views_lazy_load.test
index 19e5705..1932466 100644
--- a/views_lazy_load.test
+++ b/views_lazy_load.test
@@ -55,7 +55,15 @@ class ViewsLazyLoadTest extends DrupalWebTestCase {
     $view = $this->getTestView(TRUE);
     $output = $view->preview();
     $this->assertNotContains('Loading...', $output, 'The view output does not have the lazy loading text.');
+
+    // Make sure that our view won't be lazy under a crawler robot visit
+    // Set our agent to some robot's agent:
     unset($_GET['views_lazy_load_disabled']);
+    $_SERVER['HTTP_USER_AGENT'] = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)";
+    $view = $this->getTestView(TRUE);
+    $output = $view->preview();
+    $this->assertNotContains('Loading...', $output, 'The view output does not have the lazy loading text because of the webcrawler\'s agent.');
+
   }
 
   /**
