diff --git a/diff.module b/diff.module
index 867206f..99ca3f8 100644
--- a/diff.module
+++ b/diff.module
@@ -78,6 +78,9 @@ function diff_help($route_name, RouteMatchInterface $route_match) {
       $output .= '</dl>';
       return $output;
 
+    case 'diff.general_settings':
+      return '<p>' . t('This page provides the configurations about the revision comparison functionality and diff layout plugins.') . '</p>';
+
     case 'diff.revision_overview':
       return '<p>' . t('Revisions allow you to track differences between multiple versions of your content, and revert to older versions.') . '</p>';
 
diff --git a/src/Annotation/DiffLayoutBuilder.php b/src/Annotation/DiffLayoutBuilder.php
index 4240724..8f45939 100644
--- a/src/Annotation/DiffLayoutBuilder.php
+++ b/src/Annotation/DiffLayoutBuilder.php
@@ -30,4 +30,11 @@ class DiffLayoutBuilder extends Plugin {
    */
   public $label;
 
+  /**
+   * The plugin description.
+   *
+   * @var string
+   */
+  public $description;
+
 }
diff --git a/src/Form/GeneralSettingsForm.php b/src/Form/GeneralSettingsForm.php
index 1ce50da..1a670b5 100644
--- a/src/Form/GeneralSettingsForm.php
+++ b/src/Form/GeneralSettingsForm.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\diff\Form;
 
+use Drupal\Component\Utility\Xss;
 use Drupal\Core\Form\ConfigFormBase;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\diff\DiffLayoutManager;
@@ -100,7 +101,7 @@ class GeneralSettingsForm extends ConfigFormBase {
 
     $form['layout_plugins'] = [
       '#type' => 'table',
-      '#header' => [t('Layout'), t('Weight')],
+      '#header' => [t('Layout'), t('Description'), t('Weight')],
       '#empty' => t('There are no items yet. Add an item.'),
       '#suffix' => '<div class="description">' . $this->t('The layout plugins that are enabled for displaying the diff comparison.') .'</div>',
       '#tabledrag' => [
@@ -115,6 +116,7 @@ class GeneralSettingsForm extends ConfigFormBase {
     uasort($layout_plugins_order, 'Drupal\Component\Utility\SortArray::sortByWeightElement');
 
     foreach ($layout_plugins_order as $id => $layout_plugin) {
+      $description = $this->diffLayoutManager->getDefinition($id)['description'];
       $form['layout_plugins'][$id]['#attributes']['class'][] = 'draggable';
       $form['layout_plugins'][$id]['enabled'] = [
         '#type' => 'checkbox',
@@ -122,6 +124,10 @@ class GeneralSettingsForm extends ConfigFormBase {
         '#title_display' => 'after',
         '#default_value' => $layout_plugin['enabled'],
       ];
+      $form['layout_plugins'][$id]['description'] = [
+        '#type' => 'markup',
+        '#markup' => isset($description) ? Xss::filter($description) : '',
+      ];
       $form['layout_plugins'][$id]['weight'] = [
         '#type' => 'weight',
         '#title' => t('Weight for @title', ['@title' => $layout_plugin['label']]),
diff --git a/src/Plugin/diff/Layout/SplitFieldsDiffLayout.php b/src/Plugin/diff/Layout/SplitFieldsDiffLayout.php
index 8ab4008..903ba3f 100644
--- a/src/Plugin/diff/Layout/SplitFieldsDiffLayout.php
+++ b/src/Plugin/diff/Layout/SplitFieldsDiffLayout.php
@@ -17,6 +17,7 @@ use Symfony\Component\HttpFoundation\RequestStack;
  * @DiffLayoutBuilder(
  *   id = "split_fields",
  *   label = @Translation("Split fields"),
+ *   description = @Translation("Split fields plugin compares revisions side by side. This plugin is configurable."),
  * )
  */
 class SplitFieldsDiffLayout extends DiffLayoutBase {
diff --git a/src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php b/src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php
index 5cd4dd6..c8eb137 100644
--- a/src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php
+++ b/src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php
@@ -17,6 +17,7 @@ use Symfony\Component\HttpFoundation\RequestStack;
  * @DiffLayoutBuilder(
  *   id = "unified_fields",
  *   label = @Translation("Unified fields"),
+ *   description = @Translation("Unified fields plugin compares revisions based on the GitHub layout. This plugin is configurable."),
  * )
  */
 class UnifiedFieldsDiffLayout extends DiffLayoutBase {
diff --git a/src/Plugin/diff/Layout/VisualInlineDiffLayout.php b/src/Plugin/diff/Layout/VisualInlineDiffLayout.php
index 34ffbb1..c175a91 100644
--- a/src/Plugin/diff/Layout/VisualInlineDiffLayout.php
+++ b/src/Plugin/diff/Layout/VisualInlineDiffLayout.php
@@ -25,6 +25,7 @@ use Symfony\Component\HttpFoundation\RequestStack;
  * @DiffLayoutBuilder(
  *   id = "visual_inline",
  *   label = @Translation("Visual Inline"),
+ *   description = @Translation("Visual Inline plugin uses external libraries to compare revisions, based on the HTML Diff module. This plugin is not configurable."),
  * )
  */
 class VisualInlineDiffLayout extends DiffLayoutBase {
diff --git a/src/Tests/AdminFormsTest.php b/src/Tests/AdminFormsTest.php
index 17ddfbc..a3be726 100644
--- a/src/Tests/AdminFormsTest.php
+++ b/src/Tests/AdminFormsTest.php
@@ -30,6 +30,18 @@ class AdminFormsTest extends DiffTestBase {
   }
 
   /**
+   * Tests the descriptions in the Settings UI.
+   */
+  public function testSettingsUI() {
+    $this->drupalGet('admin/config/content/diff/general');
+    // Check the settings introduction text.
+    $this->assertText('This page provides the configurations about the revision comparison functionality and diff layout plugins.');
+    // Check the layout plugins descriptions.
+    $this->assertText('Split fields plugin compares revisions side by side. This plugin is configurable.');
+    $this->assertText('Unified fields plugin compares revisions based on the GitHub layout. This plugin is configurable.');
+  }
+
+  /**
    * Tests the Settings tab.
    */
   public function testSettingsTab() {
