diff --git a/core/modules/update/config/install/update.settings.yml b/core/modules/update/config/install/update.settings.yml
index ded8c9d..babba6f 100644
--- a/core/modules/update/config/install/update.settings.yml
+++ b/core/modules/update/config/install/update.settings.yml
@@ -1,5 +1,6 @@
 check:
   disabled_extensions: false
+  update_system_notifications: true
   interval_days: 1
 fetch:
   url: ''
diff --git a/core/modules/update/config/schema/update.schema.yml b/core/modules/update/config/schema/update.schema.yml
index e9da926..62eadb1 100644
--- a/core/modules/update/config/schema/update.schema.yml
+++ b/core/modules/update/config/schema/update.schema.yml
@@ -11,6 +11,9 @@ update.settings:
         disabled_extensions:
           type: boolean
           label: 'Check for updates of uninstalled modules and themes'
+        update_system_notifications:
+          type: boolean
+          label: 'Enable Update module system notifications'
         interval_days:
           type: integer
           label: 'Days since last check'
diff --git a/core/modules/update/src/UpdateSettingsForm.php b/core/modules/update/src/UpdateSettingsForm.php
index 1860269..f1fc1f5 100644
--- a/core/modules/update/src/UpdateSettingsForm.php
+++ b/core/modules/update/src/UpdateSettingsForm.php
@@ -76,6 +76,13 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#default_value' => $config->get('check.disabled_extensions'),
     ];
 
+    $form['update_system_notifications'] = [
+      '#type' => 'checkbox',
+      '#title' => t('Show Update module system notifications'),
+      '#default_value' => $config->get('check.update_system_notifications'),
+      '#description' => t('Enable system notifications for available updates.'),
+    ];
+
     $notification_emails = $config->get('notification.emails');
     $form['update_notify_emails'] = [
       '#type' => 'textarea',
@@ -145,6 +152,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
 
     $config
       ->set('check.disabled_extensions', $form_state->getValue('update_check_disabled'))
+      ->set('check.update_system_notifications', $form_state->getValue('update_system_notifications'))
       ->set('check.interval_days', $form_state->getValue('update_check_frequency'))
       ->set('notification.emails', $form_state->get('notify_emails'))
       ->set('notification.threshold', $form_state->getValue('update_notification_threshold'))
diff --git a/core/modules/update/update.module b/core/modules/update/update.module
index 32b5b8c..45f9a72 100644
--- a/core/modules/update/update.module
+++ b/core/modules/update/update.module
@@ -138,7 +138,9 @@ function update_page_top() {
   /** @var \Drupal\Core\Routing\AdminContext $admin_context */
   $admin_context = \Drupal::service('router.admin_context');
   $route_match = \Drupal::routeMatch();
-  if ($admin_context->isAdminRoute($route_match->getRouteObject()) && \Drupal::currentUser()->hasPermission('administer site configuration')) {
+  if ($admin_context->isAdminRoute($route_match->getRouteObject()) &&
+    \Drupal::currentUser()->hasPermission('administer site configuration') &&
+    \Drupal::config('update.settings')->get('check.update_system_notifications')) {
     $route_name = \Drupal::routeMatch()->getRouteName();
     switch ($route_name) {
       // These pages don't need additional nagging.
