diff --git a/core/modules/field_ui/src/Form/EntityDisplayFormBase.php b/core/modules/field_ui/src/Form/EntityDisplayFormBase.php
index 20e1487b01b0f7267591ca78bd54fd747e23006c..586f1ef391909f533174352f354b2da5beb16ddc 100644
--- a/core/modules/field_ui/src/Form/EntityDisplayFormBase.php
+++ b/core/modules/field_ui/src/Form/EntityDisplayFormBase.php
@@ -876,8 +876,12 @@ protected function getDisplayStatuses() {
   protected function saveDisplayStatuses($display_statuses) {
     $displays = $this->getDisplays();
     foreach ($displays as $display) {
-      $display->set('status', $display_statuses[$display->get('mode')]);
-      $display->save();
+      // Only update the display if the status is changing.
+      $new_status = $display_statuses[$display->get('mode')];
+      if ($new_status !== $display->status()) {
+        $display->set('status', $new_status);
+        $display->save();
+      }
     }
   }