diff --git a/config/install/diff.settings.yml b/config/install/diff.settings.yml
index 467dcab..de8d0d5 100644
--- a/config/install/diff.settings.yml
+++ b/config/install/diff.settings.yml
@@ -3,6 +3,7 @@ general_settings:
   radio_behavior: simple
   context_lines_leading: 1
   context_lines_trailing: 1
+  compare_visible_only: true
 entity:
   node:
     nid: 0
diff --git a/config/schema/diff.schema.yml b/config/schema/diff.schema.yml
index 5375728..a91a4b7 100644
--- a/config/schema/diff.schema.yml
+++ b/config/schema/diff.schema.yml
@@ -18,6 +18,9 @@ diff.settings:
         context_lines_trailing:
           type: integer
           label: 'Number of trailing context lines'
+        compare_visible_only:
+          type: boolean
+          label: 'Only compare visible fields'
     entity:
       type: sequence
       label: 'Entities'
diff --git a/diff.install b/diff.install
new file mode 100644
index 0000000..4b03116
--- /dev/null
+++ b/diff.install
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * @file
+ * Update hooks for the Diff module.
+ */
+
+/**
+ * Set the new `compare_visible_only` setting.
+ */
+function diff_update_8100() {
+  $settings = \Drupal::configFactory()->getEditable('diff.settings');
+  $settings->set('general_settings.compare_visible_only', TRUE);
+  $settings->save();
+}
diff --git a/src/Controller/NodeRevisionController.php b/src/Controller/NodeRevisionController.php
index e79f40f..d8e7b5f 100644
--- a/src/Controller/NodeRevisionController.php
+++ b/src/Controller/NodeRevisionController.php
@@ -76,17 +76,19 @@ class NodeRevisionController extends EntityComparisonBase {
       $node_base_fields = $this->entityManager()->getBaseFieldDefinitions('node');
       // Check to see if we need to display certain fields or not based on
       // selected view mode display settings.
-      foreach ($fields as $field_name => $field) {
-        // If we are dealing with nodes only compare those fields
-        // set as visible from the selected view mode.
-        $view_mode = $this->config->get('content_type_settings.' . $node->getType() . '.view_mode');
-        // If no view mode is selected use the default view mode.
-        if ($view_mode == NULL) {
-          $view_mode = 'default';
-        }
-        $visible = entity_get_display('node', $node->getType(), $view_mode)->getComponent($field_name);
-        if ($visible == NULL && !array_key_exists($field_name, $node_base_fields)) {
-          unset($fields[$field_name]);
+      if ($this->config->get('general_settings.compare_visible_only')) {
+        foreach ($fields as $field_name => $field) {
+          // If we are dealing with nodes only compare those fields
+          // set as visible from the selected view mode.
+          $view_mode = $this->config->get('content_type_settings.' . $node->getType() . '.view_mode');
+          // If no view mode is selected use the default view mode.
+          if ($view_mode == NULL) {
+            $view_mode = 'default';
+          }
+          $visible = entity_get_display('node', $node->getType(), $view_mode)->getComponent($field_name);
+          if ($visible == NULL && !array_key_exists($field_name, $node_base_fields)) {
+            unset($fields[$field_name]);
+          }
         }
       }
       // Build the diff rows for each field and append the field rows
diff --git a/src/Form/GeneralSettingsForm.php b/src/Form/GeneralSettingsForm.php
index 67e8030..5c4f772 100644
--- a/src/Form/GeneralSettingsForm.php
+++ b/src/Form/GeneralSettingsForm.php
@@ -55,6 +55,11 @@ class GeneralSettingsForm extends ConfigFormBase {
       '#empty_option' => $this->t('- None -'),
       '#description' => $this->t('<em>Simple exclusion</em> means that users will not be able to select the same revision, <em>Linear restrictions</em> means that users can only select older or newer revisions of the current selections.'),
     );
+    $form['compare_visible_only'] = array(
+      '#type' => 'checkbox',
+      '#title' => $this->t('Only compare visible fields'),
+      '#default_value' => $config->get('general_settings' . '.' . 'compare_visible_only'),
+    );
 
     $context_lines = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
     $options = array_combine($context_lines, $context_lines);
@@ -85,6 +90,7 @@ class GeneralSettingsForm extends ConfigFormBase {
     $keys = array(
       'theme',
       'radio_behavior',
+      'compare_visible_only',
       'context_lines_leading',
       'context_lines_trailing',
     );
