diff --git a/core/modules/views/config/schema/views.display.schema.yml b/core/modules/views/config/schema/views.display.schema.yml
index 6531990..a55d60b6 100644
--- a/core/modules/views/config/schema/views.display.schema.yml
+++ b/core/modules/views/config/schema/views.display.schema.yml
@@ -100,6 +100,9 @@ views.display.feed:
     display_description:
       type: text
       label: 'Display description'
+    enabled:
+      type: boolean
+      label: 'Enabled'
 
 views.display.embed:
   type: views_display
diff --git a/core/modules/views/src/Plugin/views/display/Feed.php b/core/modules/views/src/Plugin/views/display/Feed.php
index 67171ab..c558b89 100644
--- a/core/modules/views/src/Plugin/views/display/Feed.php
+++ b/core/modules/views/src/Plugin/views/display/Feed.php
@@ -258,6 +258,11 @@ public function submitOptionsForm(&$form, FormStateInterface $form_state) {
    * {@inheritdoc}
    */
   public function attachTo(ViewExecutable $clone, $display_id, array &$build) {
+    // Disabled feed attachments do not attach.
+    if (!$this->isEnabled()) {
+      return;
+    }
+
     $displays = $this->getOption('displays');
     if (empty($displays[$display_id])) {
       return;
diff --git a/core/modules/views/src/Tests/Plugin/DisplayFeedTest.php b/core/modules/views/src/Tests/Plugin/DisplayFeedTest.php
index cef9bab..0a23f40 100644
--- a/core/modules/views/src/Tests/Plugin/DisplayFeedTest.php
+++ b/core/modules/views/src/Tests/Plugin/DisplayFeedTest.php
@@ -20,7 +20,7 @@ class DisplayFeedTest extends PluginTestBase {
    *
    * @var array
    */
-  public static $testViews = array('test_display_feed');
+  public static $testViews = array('test_display_feed', 'test_disabled_feed');
 
   /**
    * Modules to enable.
@@ -74,4 +74,35 @@ public function testFeedOutput() {
     $this->assertTrue(strpos($feed_icon[0]['href'], 'test-feed-display.xml'), 'The feed icon was found.');
   }
 
+  /**
+   * Tests that nothing is output when the feed display is disabled.
+   */
+  public function testDisabledFeed() {
+    $this->drupalCreateContentType(['type' => 'page']);
+    $node = $this->drupalCreateNode();
+
+    // Ensure that the feed_1 display is attached to the page_1 display.
+    $view = $this->container->get('entity.manager')->getStorage('view')->load('test_disabled_feed');
+    $view->getExecutable()->setDisplay('page_1');
+    $this->assertEqual($view->getExecutable()->display_handler->getAttachedDisplays(), array('feed_1'), 'The feed display is attached to the page display.');
+
+    // Check that the rss header is output on the page display.
+    $this->drupalGet('/test-feed-disabled');
+    $feed_header = $this->xpath('//link[@rel="alternate"]');
+    $this->assertEqual($feed_header[0]['type'], 'application/rss+xml', 'The feed link has the type application/rss+xml.');
+    $this->assertTrue(strpos($feed_header[0]['href'], 'test-feed-disabled.xml'), 'Page display contains the correct feed URL.');
+
+    // Disable the feed display.
+    $view->getExecutable()->displayHandlers->get('feed_1')->setOption('enabled', FALSE);
+    $view->save();
+
+    // Ensure there is no link rel present on the page.
+    $this->drupalGet('/test-feed-disabled');
+    $result = $this->xpath('//link[@rel="alternate"]');
+    $this->assertTrue(empty($result), 'Page display does not contain a feed header.');
+
+    // Ensure the feed attachment returns 'Not found'.
+    $this->drupalGet('/test-feed-disabled.xml');
+    $this->assertResponse(404);
+  }
 }
