diff --git a/core/modules/migrate/src/Annotation/MigrateDestination.php b/core/modules/migrate/src/Annotation/MigrateDestination.php
index 1fd51d7..86ef098 100644
--- a/core/modules/migrate/src/Annotation/MigrateDestination.php
+++ b/core/modules/migrate/src/Annotation/MigrateDestination.php
@@ -13,7 +13,7 @@
  * \Drupal\migrate\Plugin\migrate\destination\UrlAlias
  *
  * @see \Drupal\migrate\Plugin\MigrateDestinationInterface
- * @see \Drupal\migrate\Plugin\destination\DestinationBase
+ * @see \Drupal\migrate\Plugin\migrate\destination\DestinationBase
  * @see \Drupal\migrate\Plugin\MigrateDestinationPluginManager
  * @see \Drupal\migrate\Annotation\MigrateSource
  * @see \Drupal\migrate\Annotation\MigrateProcessPlugin
@@ -25,6 +25,10 @@
  */
 class MigrateDestination extends Plugin {
 
+  const CATEGORY_CONFIGURATION = 'Configuration';
+
+  const CATEGORY_CONTENT = 'Content';
+
   /**
    * A unique identifier for the process plugin.
    *
@@ -43,4 +47,14 @@ class MigrateDestination extends Plugin {
    */
   public $requirements_met = TRUE;
 
+  /**
+   * The category of the destination. Typically "Content" or "Configuration".
+   *
+   * It would be set to content if the destination is pure content or
+   * configuration if the destination is for configuration.
+   *
+   * @var string
+   */
+  public $category;
+
 }
diff --git a/core/modules/migrate/src/Plugin/MigrateDestinationInterface.php b/core/modules/migrate/src/Plugin/MigrateDestinationInterface.php
index 866e80c..9679d1c 100644
--- a/core/modules/migrate/src/Plugin/MigrateDestinationInterface.php
+++ b/core/modules/migrate/src/Plugin/MigrateDestinationInterface.php
@@ -11,7 +11,7 @@
  * Destinations are responsible for persisting source data into the destination
  * Drupal.
  *
- * @see \Drupal\migrate\Plugin\destination\DestinationBase
+ * @see \Drupal\migrate\Plugin\migrate\destination\DestinationBase
  * @see \Drupal\migrate\Plugin\MigrateDestinationPluginManager
  * @see \Drupal\migrate\Annotation\MigrateDestination
  * @see plugin_api
diff --git a/core/modules/migrate/src/Plugin/MigrateDestinationPluginManager.php b/core/modules/migrate/src/Plugin/MigrateDestinationPluginManager.php
index 090efd0..24684f8 100644
--- a/core/modules/migrate/src/Plugin/MigrateDestinationPluginManager.php
+++ b/core/modules/migrate/src/Plugin/MigrateDestinationPluginManager.php
@@ -10,7 +10,7 @@
  * Plugin manager for migrate destination plugins.
  *
  * @see \Drupal\migrate\Plugin\MigrateDestinationInterface
- * @see \Drupal\migrate\Plugin\destination\DestinationBase
+ * @see \Drupal\migrate\Plugin\migrate\destination\DestinationBase
  * @see \Drupal\migrate\Annotation\MigrateDestination
  * @see plugin_api
  *
diff --git a/core/modules/migrate/src/Plugin/Migration.php b/core/modules/migrate/src/Plugin/Migration.php
index c7457b2..2465d95 100644
--- a/core/modules/migrate/src/Plugin/Migration.php
+++ b/core/modules/migrate/src/Plugin/Migration.php
@@ -155,6 +155,13 @@ class Migration extends PluginBase implements MigrationInterface, RequirementsIn
   protected $migration_tags = [];
 
   /**
+   * The category of the migration. Typically "Content" or "Configuration".
+   *
+   * @var string
+   */
+  protected $category;
+
+  /**
    * These migrations, if run, must be executed before this migration.
    *
    * These are different from the configuration dependencies. Migration
@@ -639,6 +646,9 @@ public function getPluginDefinition() {
     foreach (parent::getPluginDefinition() as $key => $value) {
       $definition[$key] = isset($this->$key) ? $this->$key : $value;
     }
+
+    $definition['category'] = $this->getCategory();
+
     return $definition;
   }
 
@@ -677,4 +687,11 @@ public function getMigrationTags() {
     return $this->migration_tags;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getCategory() {
+    return $this->getDestinationPlugin()->getPluginDefinition()['category'];
+  }
+
 }
diff --git a/core/modules/migrate/src/Plugin/MigrationInterface.php b/core/modules/migrate/src/Plugin/MigrationInterface.php
index 3165d81..cccf4ed 100644
--- a/core/modules/migrate/src/Plugin/MigrationInterface.php
+++ b/core/modules/migrate/src/Plugin/MigrationInterface.php
@@ -322,4 +322,11 @@ public function getDestinationIds();
    */
   public function getMigrationTags();
 
+  /**
+   * The category of the migration. Typically "Content" or "Configuration".
+   *
+   * @return string
+   */
+  public function getCategory();
+
 }
diff --git a/core/modules/migrate/src/Plugin/MigrationPluginManager.php b/core/modules/migrate/src/Plugin/MigrationPluginManager.php
index f3b75bc..0dbd5ba 100644
--- a/core/modules/migrate/src/Plugin/MigrationPluginManager.php
+++ b/core/modules/migrate/src/Plugin/MigrationPluginManager.php
@@ -3,21 +3,27 @@
 namespace Drupal\migrate\Plugin;
 
 use Drupal\Component\Graph\Graph;
+use Drupal\Component\Plugin\CategorizingPluginManagerInterface;
 use Drupal\Component\Plugin\PluginBase;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Language\LanguageManagerInterface;
+use Drupal\Core\Plugin\CategorizingPluginManagerTrait;
 use Drupal\Core\Plugin\DefaultPluginManager;
 use Drupal\Core\Plugin\Discovery\ContainerDerivativeDiscoveryDecorator;
-use Drupal\migrate\Plugin\Discovery\ProviderFilterDecorator;
 use Drupal\Core\Plugin\Discovery\YamlDirectoryDiscovery;
 use Drupal\Core\Plugin\Factory\ContainerFactory;
 use Drupal\migrate\MigrateBuildDependencyInterface;
+use Drupal\migrate\Plugin\Discovery\ProviderFilterDecorator;
 
 /**
  * Plugin manager for migration plugins.
  */
-class MigrationPluginManager extends DefaultPluginManager implements MigrationPluginManagerInterface, MigrateBuildDependencyInterface {
+class MigrationPluginManager extends DefaultPluginManager implements MigrationPluginManagerInterface, MigrateBuildDependencyInterface, CategorizingPluginManagerInterface {
+
+  use CategorizingPluginManagerTrait {
+    getGroupedDefinitions as traitGetGroupedDefinitions;
+  }
 
   /**
    * Provides default values for migrations.
@@ -258,4 +264,64 @@ protected function findDefinitions() {
     });
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getCategories() {
+    // Fetch all categories from definitions and remove duplicates.
+    $categories = array_unique(array_values(array_map(function ($definition) {
+      return $this->createStubMigration($definition)->getPluginDefinition()['category'];
+    }, $this->getDefinitions())));
+    natcasesort($categories);
+    return $categories;
+  }
+
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getSortedDefinitions(array $definitions = NULL) {
+    $definitions = $this->getPluginDefinitions($definitions);
+
+    // Obtain a list of sort items.
+    $categories = [];
+    $labels = [];
+    $ids = [];
+    foreach ($definitions as $key => $row) {
+      $categories[$key]  = $row['category'];
+      $labels[$key]  = $row['label'];
+      $ids[$key] = $row['id'];
+    }
+    // Sort the plugins first by category, then by label, then id.
+    // Add $definitions as the last parameter, to sort by the common key.
+    array_multisort($categories, SORT_ASC, SORT_NATURAL|SORT_FLAG_CASE, $labels, SORT_ASC, SORT_NATURAL|SORT_FLAG_CASE, $ids, SORT_ASC, SORT_NATURAL|SORT_FLAG_CASE, $definitions);
+
+    return $definitions;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getGroupedDefinitions(array $definitions = NULL) {
+    return $this->traitGetGroupedDefinitions($this->getPluginDefinitions($definitions));
+  }
+
+  /**
+   * Gets the definitions of the plugin implementations.
+   *
+   * @return array
+   *   The plugin definition, as returned by the createStubMigration in the
+   *   plugin manager.
+   */
+  protected function getPluginDefinitions(array $definitions = NULL) {
+    $definitions = isset($definitions) ? $definitions : $this->getDefinitions();
+    $stubDefinitions = [];
+    foreach ($definitions as $definition) {
+      $stubDefinition = $this->createStubMigration($definition)->getPluginDefinition();
+      $stubDefinitions[$stubDefinition['id']] = $stubDefinition;
+    }
+
+    return $stubDefinitions;
+  }
+
 }
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/ComponentEntityDisplayBase.php b/core/modules/migrate/src/Plugin/migrate/destination/ComponentEntityDisplayBase.php
index 6602484..8f1e55a 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/ComponentEntityDisplayBase.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/ComponentEntityDisplayBase.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\migrate\Plugin\migrate\destination;
 
+use Drupal\migrate\Annotation\MigrateDestination;
 use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\Row;
 
@@ -66,4 +67,14 @@ public function fields(MigrationInterface $migration = NULL) {
    */
   protected abstract function getEntity($entity_type, $bundle, $mode);
 
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getPluginDefinition() {
+    $definition = parent::getPluginDefinition();
+    $definition['category'] = MigrateDestination::CATEGORY_CONFIGURATION;
+    return $definition;
+  }
+
 }
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/Config.php b/core/modules/migrate/src/Plugin/migrate/destination/Config.php
index b8db601..c9d0b31 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/Config.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/Config.php
@@ -7,6 +7,7 @@
 use Drupal\Core\Entity\DependencyTrait;
 use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
+use Drupal\migrate\Annotation\MigrateDestination;
 use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\Row;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -195,4 +196,13 @@ public function rollback(array $destination_identifier) {
     }
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getPluginDefinition() {
+    $definition = parent::getPluginDefinition();
+    $definition['category'] = MigrateDestination::CATEGORY_CONFIGURATION;
+    return $definition;
+  }
+
 }
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php b/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php
index 18a95e6..9741b9e 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php
@@ -3,6 +3,7 @@
 namespace Drupal\migrate\Plugin\migrate\destination;
 
 use Drupal\Core\Plugin\PluginBase;
+use Drupal\migrate\Annotation\MigrateDestination;
 use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\Exception\RequirementsException;
 use Drupal\migrate\Plugin\MigrateDestinationInterface;
@@ -110,4 +111,16 @@ protected function setRollbackAction(array $id_map, $update_action = MigrateIdMa
     }
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getPluginDefinition() {
+    $definition = parent::getPluginDefinition();
+
+    // Default all migration destinations to Content.
+    $definition['category'] = MigrateDestination::CATEGORY_CONTENT;
+
+    return $definition;
+  }
+
 }
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php b/core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php
index 708addf..2bbcc72 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php
@@ -8,6 +8,7 @@
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\language\ConfigurableLanguageManager;
+use Drupal\migrate\Annotation\MigrateDestination;
 use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\MigrateException;
 use Drupal\migrate\Plugin\MigrateIdMapInterface;
@@ -287,4 +288,13 @@ public function rollback(array $destination_identifier) {
     }
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getPluginDefinition() {
+    $definition = parent::getPluginDefinition();
+    $definition['category'] = MigrateDestination::CATEGORY_CONFIGURATION;
+    return $definition;
+  }
+
 }
diff --git a/core/modules/migrate/tests/src/Kernel/Plugin/CategoryTest.php b/core/modules/migrate/tests/src/Kernel/Plugin/CategoryTest.php
new file mode 100644
index 0000000..d0d937f
--- /dev/null
+++ b/core/modules/migrate/tests/src/Kernel/Plugin/CategoryTest.php
@@ -0,0 +1,420 @@
+<?php
+
+namespace Drupal\Tests\migrate\Kernel\Plugin;
+
+use Drupal\KernelTests\FileSystemModuleDiscoveryDataProviderTrait;
+use Drupal\migrate\Annotation\MigrateDestination;
+use Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase;
+
+/**
+ * @coversDefaultClass \Drupal\migrate\Plugin\MigrationPluginManager
+ * @group migrate
+ */
+class CategoryTest extends MigrateDrupalTestBase {
+
+  use FileSystemModuleDiscoveryDataProviderTrait;
+
+  /** @var \Drupal\migrate\Plugin\MigrationPluginManager $migrationManager */
+  protected $migrationManager;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $this->migrationManager = \Drupal::service('plugin.manager.migration');
+  }
+
+  /**
+   * We cannot call enableModules in setup, so this is broken out.
+   */
+  protected function enableAllModules() {
+    // Install all available modules.
+    $module_handler = $this->container->get('module_handler');
+    $modules = $this->coreModuleListDataProvider();
+    $modules_enabled = $module_handler->getModuleList();
+    $modules_to_enable = array_keys(array_diff_key($modules, $modules_enabled));
+    $this->enableModules($modules_to_enable);
+    $this->installConfig($modules_to_enable);
+  }
+
+  /**
+   * @covers ::getCategories
+   */
+  public function testGetCategories() {
+    $this->enableAllModules();
+    $expected = [MigrateDestination::CATEGORY_CONFIGURATION, MigrateDestination::CATEGORY_CONTENT];
+    $categories = $this->migrationManager->getCategories();
+    $this->assertEquals($expected, $categories);
+  }
+
+  /**
+   * @covers ::getSortedDefinitions
+   *
+   * @dataProvider providerMigrationCategoriesSorted
+   */
+  public function testGetSortedDefinitions($expected) {
+    $this->enableAllModules();
+    $actual = $this->migrationManager->getSortedDefinitions();
+    $this->assertEquals($expected, array_keys($actual));
+  }
+
+  /**
+   * @covers ::getGroupedDefinitions
+   *
+   * @dataProvider providerMigrationCategoriesGrouped
+   */
+  public function testGetGroupedDefinitions($groupedMigrations) {
+    $this->enableAllModules();
+    $definitions = $this->migrationManager->getGroupedDefinitions();
+    $this->assertEquals(array_keys($groupedMigrations), array_keys($definitions));
+    foreach ($groupedMigrations as $category => $migrations) {
+      $this->assertArrayHasKey($category, $definitions);
+      $this->assertEquals($migrations, array_keys($definitions[$category]));
+    }
+  }
+
+  /**
+   * Provides test data for category testing.
+   */
+  public function providerMigrationCategoriesSorted() {
+    return [
+      [
+        'all sorted' => [
+          'action_settings',
+          'd6_action',
+          'd7_action',
+          'd6_aggregator_settings',
+          'd7_aggregator_settings',
+          'block_content_body_field',
+          'block_content_type',
+          'd6_block',
+          'd7_block',
+          'block_content_entity_display',
+          'block_content_entity_form_display',
+          'd6_book_settings',
+          'd6_comment_entity_display',
+          'd7_comment_entity_display',
+          'd6_comment_field',
+          'd7_comment_field',
+          'd6_comment_entity_form_display',
+          'd7_comment_entity_form_display',
+          'd6_comment_field_instance',
+          'd7_comment_field_instance',
+          'd6_comment_entity_form_display_subject',
+          'd7_comment_entity_form_display_subject',
+          'd6_comment_type',
+          'd7_comment_type',
+          'contact_category',
+          'd6_contact_settings',
+          'd7_contact_settings',
+          'd6_system_cron',
+          'd7_global_theme_settings',
+          'd6_dblog_settings',
+          'd7_dblog_settings',
+          'd6_date_formats',
+          'default_language',
+          'd6_language_content_settings',
+          'd7_system_authorize',
+          'd7_system_cron',
+          'd7_system_date',
+          'd7_system_file',
+          'd7_filter_settings',
+          'd7_language_content_settings',
+          'd7_system_mail',
+          'd7_system_performance',
+          'text_settings',
+          'd6_field',
+          'd7_field',
+          'd6_field_formatter_settings',
+          'd7_field_formatter_settings',
+          'd6_field_instance',
+          'd7_field_instance',
+          'd6_field_instance_widget_settings',
+          'd7_field_instance_widget_settings',
+          'file_settings',
+          'd6_system_file',
+          'd6_filter_format',
+          'd7_filter_format',
+          'd6_forum_settings',
+          'd7_forum_settings',
+          'd6_imagecache_presets',
+          'd7_image_settings',
+          'system_image_gd',
+          'd7_image_styles',
+          'system_image',
+          'd6_language_negotiation_settings',
+          'd7_language_negotiation_settings',
+          'language_prefixes_and_domains',
+          'language',
+          'd6_language_types',
+          'd7_language_types',
+          'locale_settings',
+          'd6_i18n_system_maintenance',
+          'system_maintenance',
+          'd6_menu',
+          'd7_menu',
+          'menu_settings',
+          'd6_node_settings',
+          'd7_node_settings',
+          'd7_node_title_label',
+          'd6_node_setting_promote',
+          'd6_node_setting_status',
+          'd6_node_setting_sticky',
+          'd6_node_type',
+          'd7_node_type',
+          'd6_system_performance',
+          'system_rss',
+          'd6_search_settings',
+          'd7_search_settings',
+          'search_page',
+          'd7_shortcut_set',
+          'd6_simpletest_settings',
+          'd7_simpletest_settings',
+          'd6_i18n_system_site',
+          'system_site',
+          'statistics_settings',
+          'd7_syslog_settings',
+          'd6_system_date',
+          'd6_syslog_settings',
+          'system_logging',
+          'taxonomy_settings',
+          'd6_taxonomy_vocabulary',
+          'd7_taxonomy_vocabulary',
+          'd7_tracker_settings',
+          'update_settings',
+          'd6_upload_entity_display',
+          'd6_upload_field',
+          'd6_upload_field_instance',
+          'd6_upload_entity_form_display',
+          'd6_i18n_user_settings',
+          'd6_user_settings',
+          'd7_user_flood',
+          'd6_i18n_user_mail',
+          'd6_user_mail',
+          'd7_user_mail',
+          'user_picture_entity_display',
+          'user_picture_field',
+          'user_picture_field_instance',
+          'user_picture_entity_form_display',
+          'user_profile_entity_display',
+          'user_profile_field',
+          'd6_i18n_user_profile_field_instance',
+          'user_profile_field_instance',
+          'user_profile_entity_form_display',
+          'd6_user_role',
+          'd7_user_role',
+          'd6_view_modes',
+          'd7_view_modes',
+          'd6_vocabulary_entity_display',
+          'd6_vocabulary_field',
+          'd6_vocabulary_field_instance',
+          'd6_vocabulary_entity_form_display',
+          'd6_aggregator_feed',
+          'd7_aggregator_feed',
+          'd6_aggregator_item',
+          'd7_aggregator_item',
+          'd7_blocked_ips',
+          'd6_book',
+          'd6_comment',
+          'd7_comment',
+          'd6_custom_block',
+          'd7_custom_block',
+          'd7_theme_settings',
+          'd6_file',
+          'd7_file',
+          'd6_upload',
+          'd6_menu_links',
+          'd7_menu_links',
+          'd6_profile_values',
+          'd7_shortcut',
+          'd7_shortcut_set_users',
+          'd6_taxonomy_term',
+          'd7_tracker_node',
+          'd7_tracker_user',
+          'd6_url_alias',
+          'd7_url_alias',
+          'd6_user',
+          'd7_user',
+          'd6_user_contact_settings',
+          'd6_user_picture_file',
+        ],
+      ]
+    ];
+  }
+
+  /**
+   * Provides test data for category testing.
+   */
+  public function providerMigrationCategoriesGrouped() {
+    return [
+      [
+        'all migrations' => [
+          MigrateDestination::CATEGORY_CONFIGURATION => [
+            'action_settings',
+            'd6_action',
+            'd7_action',
+            'd6_aggregator_settings',
+            'd7_aggregator_settings',
+            'block_content_body_field',
+            'block_content_type',
+            'd6_block',
+            'd7_block',
+            'block_content_entity_display',
+            'block_content_entity_form_display',
+            'd6_book_settings',
+            'd6_comment_entity_display',
+            'd7_comment_entity_display',
+            'd6_comment_field',
+            'd7_comment_field',
+            'd6_comment_entity_form_display',
+            'd7_comment_entity_form_display',
+            'd6_comment_field_instance',
+            'd7_comment_field_instance',
+            'd6_comment_entity_form_display_subject',
+            'd7_comment_entity_form_display_subject',
+            'd6_comment_type',
+            'd7_comment_type',
+            'contact_category',
+            'd6_contact_settings',
+            'd7_contact_settings',
+            'd6_system_cron',
+            'd7_global_theme_settings',
+            'd6_dblog_settings',
+            'd7_dblog_settings',
+            'd6_date_formats',
+            'default_language',
+            'd6_language_content_settings',
+            'd7_system_authorize',
+            'd7_system_cron',
+            'd7_system_date',
+            'd7_system_file',
+            'd7_filter_settings',
+            'd7_language_content_settings',
+            'd7_system_mail',
+            'd7_system_performance',
+            'text_settings',
+            'd6_field',
+            'd7_field',
+            'd6_field_formatter_settings',
+            'd7_field_formatter_settings',
+            'd6_field_instance',
+            'd7_field_instance',
+            'd6_field_instance_widget_settings',
+            'd7_field_instance_widget_settings',
+            'file_settings',
+            'd6_system_file',
+            'd6_filter_format',
+            'd7_filter_format',
+            'd6_forum_settings',
+            'd7_forum_settings',
+            'd6_imagecache_presets',
+            'd7_image_settings',
+            'system_image_gd',
+            'd7_image_styles',
+            'system_image',
+            'd6_language_negotiation_settings',
+            'd7_language_negotiation_settings',
+            'language_prefixes_and_domains',
+            'language',
+            'd6_language_types',
+            'd7_language_types',
+            'locale_settings',
+            'd6_i18n_system_maintenance',
+            'system_maintenance',
+            'd6_menu',
+            'd7_menu',
+            'menu_settings',
+            'd6_node_settings',
+            'd7_node_settings',
+            'd7_node_title_label',
+            'd6_node_setting_promote',
+            'd6_node_setting_status',
+            'd6_node_setting_sticky',
+            'd6_node_type',
+            'd7_node_type',
+            'd6_system_performance',
+            'system_rss',
+            'd6_search_settings',
+            'd7_search_settings',
+            'search_page',
+            'd7_shortcut_set',
+            'd6_simpletest_settings',
+            'd7_simpletest_settings',
+            'd6_i18n_system_site',
+            'system_site',
+            'statistics_settings',
+            'd7_syslog_settings',
+            'd6_system_date',
+            'd6_syslog_settings',
+            'system_logging',
+            'taxonomy_settings',
+            'd6_taxonomy_vocabulary',
+            'd7_taxonomy_vocabulary',
+            'd7_tracker_settings',
+            'update_settings',
+            'd6_upload_entity_display',
+            'd6_upload_field',
+            'd6_upload_field_instance',
+            'd6_upload_entity_form_display',
+            'd6_i18n_user_settings',
+            'd6_user_settings',
+            'd7_user_flood',
+            'd6_i18n_user_mail',
+            'd6_user_mail',
+            'd7_user_mail',
+            'user_picture_entity_display',
+            'user_picture_field',
+            'user_picture_field_instance',
+            'user_picture_entity_form_display',
+            'user_profile_entity_display',
+            'user_profile_field',
+            'd6_i18n_user_profile_field_instance',
+            'user_profile_field_instance',
+            'user_profile_entity_form_display',
+            'd6_user_role',
+            'd7_user_role',
+            'd6_view_modes',
+            'd7_view_modes',
+            'd6_vocabulary_entity_display',
+            'd6_vocabulary_field',
+            'd6_vocabulary_field_instance',
+            'd6_vocabulary_entity_form_display',
+          ],
+          MigrateDestination::CATEGORY_CONTENT => [
+            'd6_aggregator_feed',
+            'd7_aggregator_feed',
+            'd6_aggregator_item',
+            'd7_aggregator_item',
+            'd7_blocked_ips',
+            'd6_book',
+            'd6_comment',
+            'd7_comment',
+            'd6_custom_block',
+            'd7_custom_block',
+            'd7_theme_settings',
+            'd6_file',
+            'd7_file',
+            'd6_upload',
+            'd6_menu_links',
+            'd7_menu_links',
+            'd6_profile_values',
+            'd7_shortcut',
+            'd7_shortcut_set_users',
+            'd6_taxonomy_term',
+            'd7_tracker_node',
+            'd7_tracker_user',
+            'd6_url_alias',
+            'd7_url_alias',
+            'd6_user',
+            'd7_user',
+            'd6_user_contact_settings',
+            'd6_user_picture_file',
+          ],
+        ],
+      ],
+    ];
+  }
+
+}
diff --git a/core/modules/system/migration_templates/d7_system_authorize.yml b/core/modules/system/migration_templates/d7_system_authorize.yml
index 420497b..4b72417 100644
--- a/core/modules/system/migration_templates/d7_system_authorize.yml
+++ b/core/modules/system/migration_templates/d7_system_authorize.yml
@@ -1,4 +1,5 @@
 id: d7_system_authorize
+label: Drupal 7 authorize settings
 migration_tags:
   - Drupal 7
 source:
diff --git a/core/modules/system/migration_templates/d7_system_date.yml b/core/modules/system/migration_templates/d7_system_date.yml
index b380c89..4452a35 100644
--- a/core/modules/system/migration_templates/d7_system_date.yml
+++ b/core/modules/system/migration_templates/d7_system_date.yml
@@ -1,4 +1,5 @@
 id: d7_system_date
+label: Drupal 7 date settings
 migration_tags:
   - Drupal 7
 source:
diff --git a/core/modules/system/migration_templates/d7_system_mail.yml b/core/modules/system/migration_templates/d7_system_mail.yml
index d4a569c..a2d1d6d 100644
--- a/core/modules/system/migration_templates/d7_system_mail.yml
+++ b/core/modules/system/migration_templates/d7_system_mail.yml
@@ -1,4 +1,5 @@
 id: d7_system_mail
+label: Drupal 7 mail settings
 migration_tags:
   - Drupal 7
 source:
diff --git a/core/modules/user/src/UserData.php b/core/modules/user/src/UserData.php
index 735c3de..e1cfe76 100644
--- a/core/modules/user/src/UserData.php
+++ b/core/modules/user/src/UserData.php
@@ -114,4 +114,13 @@ public function delete($module = NULL, $uid = NULL, $name = NULL) {
     $query->execute();
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getPluginDefinition() {
+    $definition = parent::getPluginDefinition();
+    $definition['category'] = MigrateDestination::CATEGORY_CONFIGURATION;
+    return $definition;
+  }
+
 }
