diff --git a/includes/views/views_lazy_load_plugin_display_extender.inc b/includes/views/views_lazy_load_plugin_display_extender.inc
index f28c8de..b89b290 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,18 @@ 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();
+    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.info b/views_lazy_load.info
index a1e822a..53de512 100644
--- a/views_lazy_load.info
+++ b/views_lazy_load.info
@@ -5,5 +5,6 @@ core = 7.x
 
 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..7900c08 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,13 @@ function views_html_head_alter() {
     drupal_add_js(drupal_get_path('module', 'views_lazy_load') . '/js/disable-alert.js', array('every_page' => TRUE));
   }
 }
+
+/**
+ * Gets a regular expression of user agents to exclude.
+ *
+ * @return string
+ *   A regex string to exclude user agents that don't use Views Lazy Load.
+ */
+function views_lazy_load_get_excluded_user_agents() {
+  return variable_get('views_lazy_load_excluded_user_agents', 'Googlebot|msnbot|Rambler|Yahoo|AbachoBOT|accoona|AcioRobot|APSeek|CocoCrawler|Dumbot|FAST-WebCrawler|GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby');
+}
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.');
+
   }
 
   /**
