diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index ec97db2..bcc1d2d 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -1281,11 +1281,13 @@ function template_preprocess_html(&$variables) {
     // Do an early render if the title is a render array.
     $variables['page']['#title'] = (string) \Drupal::service('renderer')->render($variables['page']['#title']);
   }
+  // Append Drupal suffix to the page's title.
+  $name = $site_config->get('name') ?: 'Drupal';
   if (!empty($variables['page']['#title'])) {
     $head_title = array(
       // Marking the title as safe since it has had the tags stripped.
       'title' => Markup::create(trim(strip_tags($variables['page']['#title']))),
-      'name' => $site_config->get('name'),
+      'name' => $name,
     );
   }
   // @todo Remove once views is not bypassing the view subscriber anymore.
@@ -1293,11 +1295,11 @@ function template_preprocess_html(&$variables) {
   elseif ($is_front_page) {
     $head_title = array(
       'title' => t('Home'),
-      'name' => $site_config->get('name'),
+      'name' => $name,
     );
   }
   else {
-    $head_title = ['name' => $site_config->get('name')];
+    $head_title = ['name' => $name];
     if ($site_config->get('slogan')) {
       $head_title['slogan'] = strip_tags($site_config->get('slogan'));
     }
@@ -1450,7 +1452,7 @@ function template_preprocess_maintenance_page(&$variables) {
   // there is no blocks.
   $site_config = \Drupal::config('system.site');
   $variables['logo'] = theme_get_setting('logo.url');
-  $variables['site_name'] = $site_config->get('name');
+  $variables['site_name'] = !empty($site_config->get('name')) ? $site_config->get('name') : 'Drupal';
   $variables['site_slogan'] = $site_config->get('slogan');
 
   // Maintenance page and install page need page title in variable because there
diff --git a/core/modules/system/src/Tests/Installer/InstallerTest.php b/core/modules/system/src/Tests/Installer/InstallerTest.php
index 5e0e8ad..f573885 100644
--- a/core/modules/system/src/Tests/Installer/InstallerTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerTest.php
@@ -74,4 +74,14 @@ protected function setUpSite() {
     parent::setUpSite();
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  protected function visitInstaller() {
+    parent::visitInstaller();
+    
+    // Assert the title is correct and has the title suffix.
+    $this->assertTitle('Choose language | Drupal');
+  }
+
 }
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/RouteProviderTest.php b/core/tests/Drupal/KernelTests/Core/Entity/RouteProviderTest.php
index df9f4b1..65eca63 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/RouteProviderTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/RouteProviderTest.php
@@ -80,13 +80,13 @@ public function testHtmlRoutes() {
     $entity->save();
 
     $this->setRawContent($this->httpKernelHandle($entity->url()));
-    $this->assertTitle('Test title | ');
+    $this->assertTitle('Test title | Drupal');
 
     $this->setRawContent($this->httpKernelHandle($entity->url('edit-form')));
-    $this->assertTitle('Edit Test title | ');
+    $this->assertTitle('Edit Test title | Drupal');
 
     $this->setRawContent($this->httpKernelHandle($entity->url('delete-form')));
-    $this->assertTitle('Are you sure you want to delete the test entity - data table Test title? | ');
+    $this->assertTitle('Are you sure you want to delete the test entity - data table Test title? | Drupal');
   }
 
   /**
@@ -123,13 +123,13 @@ public function testAdminHtmlRoutes() {
     $entity->save();
 
     $this->setRawContent($this->httpKernelHandle($entity->url()));
-    $this->assertTitle('Test title | ');
+    $this->assertTitle('Test title | Drupal');
 
     $this->setRawContent($this->httpKernelHandle($entity->url('edit-form')));
-    $this->assertTitle('Edit Test title | ');
+    $this->assertTitle('Edit Test title | Drupal');
 
     $this->setRawContent($this->httpKernelHandle($entity->url('delete-form')));
-    $this->assertTitle('Are you sure you want to delete the test entity - admin routes Test title? | ');
+    $this->assertTitle('Are you sure you want to delete the test entity - admin routes Test title? | Drupal');
   }
 
 }
