diff --git a/src/Form/IndexAddFieldsForm.php b/src/Form/IndexAddFieldsForm.php
index e2c8fc31..078fbb46 100644
--- a/src/Form/IndexAddFieldsForm.php
+++ b/src/Form/IndexAddFieldsForm.php
@@ -229,6 +229,10 @@ class IndexAddFieldsForm extends EntityForm {
       $base_url->setOption('query', ['datasource' => $datasource_id_param]);
 
       $item = $this->getPropertiesList($properties, $active_property_path, $base_url, $datasource_id);
+
+      // Sort the retrieved properties by their label.
+      uasort($item, [$this->fieldsHelper, 'sortByFieldLabel']);
+
       $item['#title'] = $datasource ? $datasource->label() : $this->t('General');
       return $item;
     }
diff --git a/src/Utility/FieldsHelper.php b/src/Utility/FieldsHelper.php
index 9e612cf4..409c3384 100644
--- a/src/Utility/FieldsHelper.php
+++ b/src/Utility/FieldsHelper.php
@@ -488,4 +488,14 @@ class FieldsHelper implements FieldsHelperInterface {
     return $fieldId;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function sortByFieldLabel($a, $b) {
+    $a_title = (is_array($a) && isset($a['label']['#markup'])) ? $a['label']['#markup'] : '';
+    $b_title = (is_array($b) && isset($b['label']['#markup'])) ? $b['label']['#markup'] : '';
+
+    return strnatcasecmp($a_title, $b_title);
+  }
+
 }
diff --git a/src/Utility/FieldsHelperInterface.php b/src/Utility/FieldsHelperInterface.php
index ea2f0e03..cda686c7 100644
--- a/src/Utility/FieldsHelperInterface.php
+++ b/src/Utility/FieldsHelperInterface.php
@@ -257,4 +257,18 @@ interface FieldsHelperInterface {
    */
   public function getNewFieldId(IndexInterface $index, $propertyPath);
 
+  /**
+   * Uasort callback. Compares field labels found in $field['label']['#markup].
+   *
+   * @param mixed $a
+   *   First item for comparison. The compared items should be associative
+   *   arrays that include a ['label']['#markup] key.
+   * @param mixed $b
+   *   Second item for comparison.
+   *
+   * @return int
+   *   The comparison result for uasort().
+   */
+  public function sortByFieldLabel($a, $b);
+
 }
