diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 27573e7..683437e 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -1460,17 +1460,6 @@ function template_preprocess_page(&$variables) {
     '#theme' => 'status_messages',
     '#access' => $variables['show_messages'],
   );
-
-  // Set the breadcrumb last, so as to increase the chance of being able to
-  // re-use the cache of an already retrieved menu containing the active link
-  // for the current page.
-  // @see menu_tree_page_data()
-  if (!defined('MAINTENANCE_MODE')) {
-    $variables['breadcrumb'] = array(
-      '#theme' => 'breadcrumb',
-      '#links' => \Drupal::service('breadcrumb')->build(\Drupal::routeMatch()),
-    );
-  }
 }
 
 /**
diff --git a/core/lib/Drupal/Core/Extension/ThemeHandler.php b/core/lib/Drupal/Core/Extension/ThemeHandler.php
index d21e256..9529c8a 100644
--- a/core/lib/Drupal/Core/Extension/ThemeHandler.php
+++ b/core/lib/Drupal/Core/Extension/ThemeHandler.php
@@ -468,6 +468,7 @@ public function rebuildThemeData() {
         'help' => 'Help',
         'page_top' => 'Page top',
         'page_bottom' => 'Page bottom',
+        'breadcrumb' => 'Breadcrumb',
       ),
       'description' => '',
       'features' => $this->defaultFeatures,
diff --git a/core/modules/book/src/Tests/BookTest.php b/core/modules/book/src/Tests/BookTest.php
index 0f88dc8..2e0d95c 100644
--- a/core/modules/book/src/Tests/BookTest.php
+++ b/core/modules/book/src/Tests/BookTest.php
@@ -59,8 +59,12 @@ class BookTest extends WebTestBase {
    */
   protected $webUserWithoutNodeAccess;
 
+  /**
+   * {@inheritdoc}
+   */
   protected function setUp() {
     parent::setUp();
+    $this->drupalPlaceBlock('system_breadcrumb_block');
 
     // node_access_test requires a node_access_rebuild().
     node_access_rebuild();
diff --git a/core/modules/comment/src/Tests/CommentNonNodeTest.php b/core/modules/comment/src/Tests/CommentNonNodeTest.php
index 65271a1..9a9f48e 100644
--- a/core/modules/comment/src/Tests/CommentNonNodeTest.php
+++ b/core/modules/comment/src/Tests/CommentNonNodeTest.php
@@ -25,7 +25,7 @@ class CommentNonNodeTest extends WebTestBase {
 
   use FieldUiTestTrait;
 
-  public static $modules = array('comment', 'user', 'field_ui', 'entity_test');
+  public static $modules = array('comment', 'user', 'field_ui', 'entity_test', 'block');
 
   /**
    * An administrative user with permission to configure comment settings.
@@ -34,8 +34,12 @@ class CommentNonNodeTest extends WebTestBase {
    */
   protected $adminUser;
 
+  /**
+   * {@inheritdoc}
+   */
   protected function setUp() {
     parent::setUp();
+    $this->drupalPlaceBlock('system_breadcrumb_block');
 
     // Create a bundle for entity_test.
     entity_test_create_bundle('entity_test', 'Entity Test', 'entity_test');
diff --git a/core/modules/contact/src/Tests/ContactSitewideTest.php b/core/modules/contact/src/Tests/ContactSitewideTest.php
index 4757a45..c2d86b3 100644
--- a/core/modules/contact/src/Tests/ContactSitewideTest.php
+++ b/core/modules/contact/src/Tests/ContactSitewideTest.php
@@ -30,7 +30,15 @@ class ContactSitewideTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('text', 'contact', 'field_ui', 'contact_test');
+  public static $modules = array('text', 'contact', 'field_ui', 'contact_test', 'block');
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->drupalPlaceBlock('system_breadcrumb_block');
+  }
 
   /**
    * Tests configuration options and the site-wide contact form.
diff --git a/core/modules/dblog/src/Tests/DbLogTest.php b/core/modules/dblog/src/Tests/DbLogTest.php
index 72be622..d6a59ad 100644
--- a/core/modules/dblog/src/Tests/DbLogTest.php
+++ b/core/modules/dblog/src/Tests/DbLogTest.php
@@ -26,7 +26,7 @@ class DbLogTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('dblog', 'node', 'forum', 'help');
+  public static $modules = array('dblog', 'node', 'forum', 'help', 'block');
 
   /**
    * A user with some relevant administrative permissions.
@@ -42,8 +42,12 @@ class DbLogTest extends WebTestBase {
    */
   protected $webUser;
 
+  /**
+   * {@inheritdoc}
+   */
   protected function setUp() {
     parent::setUp();
+    $this->drupalPlaceBlock('system_breadcrumb_block');
 
     // Create users with specific permissions.
     $this->adminUser = $this->drupalCreateUser(array('administer site configuration', 'access administration pages', 'access site reports', 'administer users'));
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php
index 3bda429..a339b6c 100644
--- a/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php
@@ -28,7 +28,7 @@ class EntityReferenceAdminTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'field_ui', 'entity_reference', 'path', 'taxonomy');
+  public static $modules = array('node', 'field_ui', 'entity_reference', 'path', 'taxonomy', 'block');
 
 
   /**
@@ -38,8 +38,12 @@ class EntityReferenceAdminTest extends WebTestBase {
    */
   protected $type;
 
+  /**
+   * {@inheritdoc}
+   */
   protected function setUp() {
     parent::setUp();
+    $this->drupalPlaceBlock('system_breadcrumb_block');
 
     // Create test user.
     $admin_user = $this->drupalCreateUser(array('access content', 'administer node fields', 'administer node display'));
diff --git a/core/modules/field_ui/src/Tests/ManageDisplayTest.php b/core/modules/field_ui/src/Tests/ManageDisplayTest.php
index bf25fd0..7f36014 100644
--- a/core/modules/field_ui/src/Tests/ManageDisplayTest.php
+++ b/core/modules/field_ui/src/Tests/ManageDisplayTest.php
@@ -26,13 +26,14 @@ class ManageDisplayTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'field_ui', 'taxonomy', 'search', 'field_test', 'field_third_party_test');
+  public static $modules = array('node', 'field_ui', 'taxonomy', 'search', 'field_test', 'field_third_party_test', 'block');
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
+    $this->drupalPlaceBlock('system_breadcrumb_block');
 
     // Create a test user.
     $admin_user = $this->drupalCreateUser(array('access content', 'administer content types', 'administer node fields', 'administer node form display', 'administer node display', 'administer taxonomy', 'administer taxonomy_term fields', 'administer taxonomy_term display', 'administer users', 'administer account settings', 'administer user display', 'bypass node access'));
diff --git a/core/modules/field_ui/src/Tests/ManageFieldsTest.php b/core/modules/field_ui/src/Tests/ManageFieldsTest.php
index 472d59c..cd5ff6b 100644
--- a/core/modules/field_ui/src/Tests/ManageFieldsTest.php
+++ b/core/modules/field_ui/src/Tests/ManageFieldsTest.php
@@ -28,13 +28,14 @@ class ManageFieldsTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'field_ui', 'field_test', 'taxonomy', 'image');
+  public static $modules = array('node', 'field_ui', 'field_test', 'taxonomy', 'image', 'block');
 
   /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
+    $this->drupalPlaceBlock('system_breadcrumb_block');
 
     // Create a test user.
     $admin_user = $this->drupalCreateUser(array('access content', 'administer content types', 'administer node fields', 'administer node form display', 'administer node display', 'administer taxonomy', 'administer taxonomy_term fields', 'administer taxonomy_term display', 'administer users', 'administer account settings', 'administer user display', 'bypass node access'));
diff --git a/core/modules/file/src/Tests/FileFieldWidgetTest.php b/core/modules/file/src/Tests/FileFieldWidgetTest.php
index c3ce5f0..4b52a5c 100644
--- a/core/modules/file/src/Tests/FileFieldWidgetTest.php
+++ b/core/modules/file/src/Tests/FileFieldWidgetTest.php
@@ -23,11 +23,19 @@ class FileFieldWidgetTest extends FileFieldTestBase {
   use FieldUiTestTrait;
 
   /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->drupalPlaceBlock('system_breadcrumb_block');
+  }
+
+  /**
    * Modules to enable.
    *
    * @var array
    */
-  public static $modules = array('comment');
+  public static $modules = array('comment', 'block');
 
   /**
    * Tests upload and remove buttons for a single-valued File field.
diff --git a/core/modules/forum/src/Tests/ForumTest.php b/core/modules/forum/src/Tests/ForumTest.php
index aff0b85..6feb754 100644
--- a/core/modules/forum/src/Tests/ForumTest.php
+++ b/core/modules/forum/src/Tests/ForumTest.php
@@ -70,8 +70,12 @@ class ForumTest extends WebTestBase {
    */
   protected $nids;
 
+  /**
+   * {@inheritdoc}
+   */
   protected function setUp() {
     parent::setUp();
+    $this->drupalPlaceBlock('system_breadcrumb_block');
 
     // Create users.
     $this->admin_user = $this->drupalCreateUser(array(
diff --git a/core/modules/link/src/Tests/LinkFieldUITest.php b/core/modules/link/src/Tests/LinkFieldUITest.php
index 3428faa..847f3c8 100644
--- a/core/modules/link/src/Tests/LinkFieldUITest.php
+++ b/core/modules/link/src/Tests/LinkFieldUITest.php
@@ -25,12 +25,16 @@ class LinkFieldUITest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = ['node', 'link', 'field_ui'];
+  public static $modules = ['node', 'link', 'field_ui', 'block'];
 
+  /**
+   * {@inheritdoc}
+   */
   protected function setUp() {
     parent::setUp();
 
     $this->drupalLogin($this->drupalCreateUser(['administer content types', 'administer node fields', 'administer node display']));
+    $this->drupalPlaceBlock('system_breadcrumb_block');
   }
 
   /**
diff --git a/core/modules/node/src/Tests/NodeTitleTest.php b/core/modules/node/src/Tests/NodeTitleTest.php
index 25e2576..3e3be81 100644
--- a/core/modules/node/src/Tests/NodeTitleTest.php
+++ b/core/modules/node/src/Tests/NodeTitleTest.php
@@ -19,7 +19,7 @@ class NodeTitleTest extends NodeTestBase {
    *
    * @var array
    */
-  public static $modules = array('comment', 'views');
+  public static $modules = array('comment', 'views', 'block');
 
   /**
    * A user with permission to bypass access content.
@@ -28,8 +28,12 @@ class NodeTitleTest extends NodeTestBase {
    */
   protected $adminUser;
 
+  /**
+   * {@inheritdoc}
+   */
   protected function setUp() {
     parent::setUp();
+    $this->drupalPlaceBlock('system_breadcrumb_block');
 
     $this->adminUser = $this->drupalCreateUser(array('administer nodes', 'create article content', 'create page content', 'post comments'));
     $this->drupalLogin($this->adminUser);
diff --git a/core/modules/system/src/Tests/Cache/PageCacheTagsIntegrationTest.php b/core/modules/system/src/Tests/Cache/PageCacheTagsIntegrationTest.php
index 3fc3e34..febe96a 100644
--- a/core/modules/system/src/Tests/Cache/PageCacheTagsIntegrationTest.php
+++ b/core/modules/system/src/Tests/Cache/PageCacheTagsIntegrationTest.php
@@ -24,6 +24,9 @@ class PageCacheTagsIntegrationTest extends WebTestBase {
 
   protected $dumpHeaders = TRUE;
 
+  /**
+   * {@inheritdoc}
+   */
   protected function setUp() {
     parent::setUp();
 
@@ -63,7 +66,7 @@ function testPageCacheTags() {
         'request_path' => array(
           'pages' => 'node/' . $node_2->id(),
         ),
-      )
+      ),
     ));
 
     // Full node page 1.
@@ -71,6 +74,7 @@ function testPageCacheTags() {
       'rendered',
       'block_view',
       'config:block_list',
+      'config:block.block.bartik_breadcrumbs',
       'config:block.block.bartik_content',
       'config:block.block.bartik_tools',
       'config:block.block.bartik_login',
@@ -78,6 +82,7 @@ function testPageCacheTags() {
       'config:block.block.bartik_powered',
       'config:block.block.bartik_main_menu',
       'config:block.block.bartik_account_menu',
+      'block_plugin:system_breadcrumb_block',
       'block_plugin:system_main_block',
       'block_plugin:system_menu_block__account',
       'block_plugin:system_menu_block__main',
@@ -100,6 +105,7 @@ function testPageCacheTags() {
       'rendered',
       'block_view',
       'config:block_list',
+      'config:block.block.bartik_breadcrumbs',
       'config:block.block.bartik_content',
       'config:block.block.bartik_tools',
       'config:block.block.bartik_login',
@@ -108,6 +114,7 @@ function testPageCacheTags() {
       'config:block.block.bartik_powered',
       'config:block.block.bartik_main_menu',
       'config:block.block.bartik_account_menu',
+      'block_plugin:system_breadcrumb_block',
       'block_plugin:system_main_block',
       'block_plugin:system_menu_block__account',
       'block_plugin:system_menu_block__main',
diff --git a/core/modules/system/templates/page.html.twig b/core/modules/system/templates/page.html.twig
index 88fc563..627d7c7 100644
--- a/core/modules/system/templates/page.html.twig
+++ b/core/modules/system/templates/page.html.twig
@@ -25,9 +25,6 @@
  * - site_slogan: The slogan of the site. This is empty when displaying the site
  *   slogan has been disabled in theme settings.
  *
- * Navigation:
- * - breadcrumb: The breadcrumb trail for the current page.
- *
  * Page content (in order of occurrence in the default page.html.twig):
  * - title_prefix: Additional output populated by modules, intended to be
  *   displayed in front of the main title tag that appears in the template.
@@ -54,6 +51,7 @@
  * - page.sidebar_first: Items for the first sidebar.
  * - page.sidebar_second: Items for the second sidebar.
  * - page.footer: Items for the footer region.
+ * - page.breadcrumb: Items for the breadcrumb region.
  *
  * @see template_preprocess_page()
  * @see html.html.twig
@@ -96,7 +94,7 @@
   {{ page.primary_menu }}
   {{ page.secondary_menu }}
 
-  {{ breadcrumb }}
+  {{ page.breadcrumb }}
 
   {{ messages }}
 
diff --git a/core/modules/taxonomy/src/Tests/TaxonomyTestBase.php b/core/modules/taxonomy/src/Tests/TaxonomyTestBase.php
index 9a1436c..c2720ec 100644
--- a/core/modules/taxonomy/src/Tests/TaxonomyTestBase.php
+++ b/core/modules/taxonomy/src/Tests/TaxonomyTestBase.php
@@ -22,10 +22,14 @@
    *
    * @var array
    */
-  public static $modules = array('taxonomy');
+  public static $modules = array('taxonomy', 'block');
 
+  /**
+   * {@inheritdoc}
+   */
   protected function setUp() {
     parent::setUp();
+    $this->drupalPlaceBlock('system_breadcrumb_block');
 
     // Create Basic page and Article node types.
     if ($this->profile != 'standard') {
diff --git a/core/modules/user/src/Tests/Views/AccessTestBase.php b/core/modules/user/src/Tests/Views/AccessTestBase.php
index 7777b13..c6822fe 100644
--- a/core/modules/user/src/Tests/Views/AccessTestBase.php
+++ b/core/modules/user/src/Tests/Views/AccessTestBase.php
@@ -13,6 +13,13 @@
 abstract class AccessTestBase extends UserTestBase {
 
   /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('block');
+
+  /**
    * Contains a user object that has no special permissions.
    *
    * @var \Drupal\user\UserInterface
@@ -40,8 +47,12 @@
    */
   protected $normalRole;
 
+  /**
+   * {@inheritdoc}
+   */
   protected function setUp() {
     parent::setUp();
+    $this->drupalPlaceBlock('system_breadcrumb_block');
 
     $this->enableViewsTestModule();
 
diff --git a/core/profiles/standard/config/install/block.block.bartik_breadcrumbs.yml b/core/profiles/standard/config/install/block.block.bartik_breadcrumbs.yml
index c89b728..5589c10 100644
--- a/core/profiles/standard/config/install/block.block.bartik_breadcrumbs.yml
+++ b/core/profiles/standard/config/install/block.block.bartik_breadcrumbs.yml
@@ -1,9 +1,9 @@
 id: bartik_breadcrumbs
 theme: bartik
-weight: -5
-status: false
+weight: 0
+status: true
 langcode: en
-region: '-1'
+region: breadcrumb
 plugin: system_breadcrumb_block
 settings:
   id: system_breadcrumb_block
diff --git a/core/profiles/standard/config/install/block.block.seven_breadcrumbs.yml b/core/profiles/standard/config/install/block.block.seven_breadcrumbs.yml
index 8ce13d8..fc95b02 100644
--- a/core/profiles/standard/config/install/block.block.seven_breadcrumbs.yml
+++ b/core/profiles/standard/config/install/block.block.seven_breadcrumbs.yml
@@ -1,9 +1,9 @@
 id: seven_breadcrumbs
 theme: seven
-weight: -2
-status: false
+weight: 0
+status: true
 langcode: en
-region: '-1'
+region: breadcrumb
 plugin: system_breadcrumb_block
 settings:
   id: system_breadcrumb_block
diff --git a/core/themes/bartik/bartik.info.yml b/core/themes/bartik/bartik.info.yml
index 953c3cc..71895a7 100644
--- a/core/themes/bartik/bartik.info.yml
+++ b/core/themes/bartik/bartik.info.yml
@@ -17,6 +17,7 @@ regions:
   page_top: 'Page top'
   page_bottom: 'Page bottom'
   featured: Featured
+  breadcrumb: Breadcrumb
   content: Content
   sidebar_first: 'Sidebar first'
   sidebar_second: 'Sidebar second'
diff --git a/core/themes/bartik/css/components/breadcrumb.css b/core/themes/bartik/css/components/breadcrumb.css
index 607d3fc..76f0695 100644
--- a/core/themes/bartik/css/components/breadcrumb.css
+++ b/core/themes/bartik/css/components/breadcrumb.css
@@ -5,5 +5,4 @@
 
 .breadcrumb {
   font-size: 0.929em;
-  margin: 0 15px;
 }
diff --git a/core/themes/bartik/templates/page.html.twig b/core/themes/bartik/templates/page.html.twig
index acf7b3d..518969a 100644
--- a/core/themes/bartik/templates/page.html.twig
+++ b/core/themes/bartik/templates/page.html.twig
@@ -32,9 +32,6 @@
  *   on the theme settings page. If hidden, the "visually-hidden" class is
  *   added to make the site slogan visually hidden, but still accessible.
  *
- * Navigation:
- * - breadcrumb: The breadcrumb trail for the current page.
- *
  * Page content (in order of occurrence in the default page.html.twig):
  * - title_prefix: Additional output populated by modules, intended to be
  *   displayed in front of the main title tag that appears in the template.
@@ -68,6 +65,7 @@
  * - page.footer_thirdcolumn: Items for the third footer column.
  * - page.footer_fourthcolumn: Items for the fourth footer column.
  * - page.footer: Items for the footer region.
+ * - page.breadcrumb: Items for the breadcrumb region.
  *
  * @see template_preprocess_page()
  * @see bartik_preprocess_page()
@@ -125,7 +123,7 @@
     {% endif %}
     <div id="main-wrapper" class="clearfix">
       <div id="main" class="clearfix">
-        {{ breadcrumb }}
+        {{ page.breadcrumb }}
         <main id="content" class="column" role="main">
           <section class="section">
             <a id="main-content" tabindex="-1"></a>
diff --git a/core/themes/seven/seven.info.yml b/core/themes/seven/seven.info.yml
index 0f605b6..945ceac 100644
--- a/core/themes/seven/seven.info.yml
+++ b/core/themes/seven/seven.info.yml
@@ -23,5 +23,6 @@ regions:
   page_top: 'Page top'
   page_bottom: 'Page bottom'
   sidebar_first: 'First sidebar'
+  breadcrumb: Breadcrumb
 regions_hidden:
   - sidebar_first
diff --git a/core/themes/seven/templates/page.html.twig b/core/themes/seven/templates/page.html.twig
index b2cc0bf..fc3c7d4 100644
--- a/core/themes/seven/templates/page.html.twig
+++ b/core/themes/seven/templates/page.html.twig
@@ -26,9 +26,6 @@
  * - site_slogan: The slogan of the site. This is empty when displaying the site
  *   slogan has been disabled in theme settings.
  *
- * Navigation:
- * - breadcrumb: The breadcrumb trail for the current page.
- *
  * Page content (in order of occurrence in the default page.html.twig):
  * - title_prefix: Additional output populated by modules, intended to be
  *   displayed in front of the main title tag that appears in the template.
@@ -53,6 +50,7 @@
  * - page.sidebar_first: Items for the first sidebar.
  * - page.sidebar_second: Items for the second sidebar.
  * - page.page_bottom: Items for the footer region.
+ * - page.breadcrumb: Items for the breadcrumb region.
  *
  * @see template_preprocess_page()
  * @see seven_preprocess_page()
@@ -77,7 +75,7 @@
       <div class="tabs-secondary clearfix" role="navigation">{{ secondary_local_tasks }}</div>
     {% endif %}
 
-    {{ breadcrumb }}
+    {{ page.breadcrumb }}
 
     <main class="page-content clearfix" role="main">
       <div class="visually-hidden"><a id="main-content" tabindex="-1"></a></div>
