diff --git a/amp.module b/amp.module
index dac3158..97a999b 100644
--- a/amp.module
+++ b/amp.module
@@ -307,39 +307,20 @@ function amp_entity_info_alter(&$entity_info) {
  * Determines whether a request should return AMP HTML.
  */
 function amp_is_amp_request() {
+  $result = &drupal_static(__FUNCTION__);
 
-  // Get current path.
-  $path = current_path();
+  if (!isset($result)) {
+    // We only want to consider path with amp in the query string.
+    $result = isset($_GET['amp']);
 
-  // Get current URL.
-  $current_url = url(current_path(), array('absolute' => TRUE));
-
-  // Check if URL contains the amp parameter
-  if (isset($_GET['amp'])) {
-    // Get system path.
-    $system_path = drupal_lookup_path('source', $path);
-
-    // Load menu item based on system path.
-    $menu_item = menu_get_item($system_path ? $system_path : current_path());
-
-    if ($menu_item && isset($menu_item['page_arguments'][0])) {
-      // Load the node.
-      $node = $menu_item['page_arguments'][0];
-
-      // Get node type.
-      $node_type = node_type_get_type($node);
-
-      // Get view mode settings for node type.
-      if ($node_type) {
-        $view_mode_settings = field_view_mode_settings('node', $node_type->type);
-      }
-      if (isset($view_mode_settings['amp']) && $view_mode_settings['amp']['custom_settings']) {
-        return TRUE;
-      }
+    if ($result) {
+      // Only show AMP routes for content that is AMP enabled.
+      $node = menu_get_object();
+      $result &= $node && in_array($node->type, amp_get_enabled_types());
     }
   }
 
-  return FALSE;
+  return $result;
 }
 
 /**
