diff --git a/core/modules/migrate_drupal/tests/fixtures/drupal7.php b/core/modules/migrate_drupal/tests/fixtures/drupal7.php
index 09d81cf..0e51f30 100644
--- a/core/modules/migrate_drupal/tests/fixtures/drupal7.php
+++ b/core/modules/migrate_drupal/tests/fixtures/drupal7.php
@@ -41421,7 +41421,7 @@
 ))
 ->values(array(
   'name' => 'search_active_modules',
-  'value' => 'a:2:{s:4:"node";s:4:"node";s:4:"user";s:4:"user";}',
+  'value' => 'a:2:{s:4:"node";s:4:"node";s:4:"user";i:0;}',
 ))
 ->values(array(
   'name' => 'search_and_or_limit',
diff --git a/core/modules/search/migration_templates/d7_search_page_status.yml b/core/modules/search/migration_templates/d7_search_page_status.yml
new file mode 100644
index 0000000..eb2cb6c
--- /dev/null
+++ b/core/modules/search/migration_templates/d7_search_page_status.yml
@@ -0,0 +1,15 @@
+id: d7_search_page_status
+label: Search page status
+migration_tags:
+  - Drupal 7
+source:
+  plugin: d7_search_page_status
+process:
+  module: module
+  status:
+    plugin: d7_search_page_status
+    source:
+      - module
+      - status
+destination:
+  plugin: d7_search_page_status
diff --git a/core/modules/search/src/Plugin/migrate/destination/d7/SearchPageStatus.php b/core/modules/search/src/Plugin/migrate/destination/d7/SearchPageStatus.php
new file mode 100644
index 0000000..1045187
--- /dev/null
+++ b/core/modules/search/src/Plugin/migrate/destination/d7/SearchPageStatus.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\search\Plugin\migrate\destination\d7\SearchPageStatus.
+ */
+
+namespace Drupal\search\Plugin\migrate\destination\d7;
+
+use Drupal\migrate\Row;
+use Drupal\migrate\Entity\MigrationInterface;
+use Drupal\migrate\Plugin\migrate\destination\DestinationBase;
+use Drupal\search\Entity\SearchPage;
+
+/**
+ * @MigrateDestination(
+ *   id = "d7_search_page_status"
+ * )
+ */
+class SearchPageStatus extends DestinationBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function import(Row $row, array $old_destination_id_values = array()) {
+    /** @var \Drupal\search\Entity\SearchPage $search_page */
+    $id = $row->getDestinationProperty('module') . '_search';
+    $search_page = SearchPage::load($id);
+    if ($row->getDestinationProperty('status')) {
+      $search_page->enable()->save();
+    }
+    else {
+      $search_page->disable()->save();
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getIds() {
+    $ids['module']['type'] = 'string';
+    return $ids;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function fields(MigrationInterface $migration = NULL) {
+  }
+
+}
diff --git a/core/modules/search/src/Plugin/migrate/process/d7/SearchPageStatus.php b/core/modules/search/src/Plugin/migrate/process/d7/SearchPageStatus.php
new file mode 100644
index 0000000..29af2f8
--- /dev/null
+++ b/core/modules/search/src/Plugin/migrate/process/d7/SearchPageStatus.php
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\search\Plugin\migrate\process\d7\SearchPageStatus.
+ */
+
+namespace Drupal\search\Plugin\migrate\process\d7;
+
+use Drupal\migrate\ProcessPluginBase;
+use Drupal\migrate\MigrateExecutableInterface;
+use Drupal\migrate\Row;
+
+/**
+ * Transform search page status to a Boolean.
+ *
+ * @MigrateProcessPlugin(
+ *   id = "d7_search_page_status"
+ * )
+ */
+class SearchPageStatus extends ProcessPluginBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
+    list($module, $status) = $value;
+    $transformed_status = TRUE;
+    if ($status === 0) {
+      $transformed_status = FALSE;
+    }
+    return $transformed_status;
+  }
+
+}
diff --git a/core/modules/search/src/Plugin/migrate/source/d7/SearchPageStatus.php b/core/modules/search/src/Plugin/migrate/source/d7/SearchPageStatus.php
new file mode 100644
index 0000000..dfda001
--- /dev/null
+++ b/core/modules/search/src/Plugin/migrate/source/d7/SearchPageStatus.php
@@ -0,0 +1,72 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\search\Plugin\migrate\source\d7\SearchPageStatus.
+ */
+
+namespace Drupal\search\Plugin\migrate\source\d7;
+
+use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
+
+/**
+ *
+ * Iterate search_active_modules variable as an associative array.
+ *
+ * @MigrateSource(
+ *   id = "d7_search_page_status",
+ *   source_provider = "search"
+ * )
+ */
+class SearchPageStatus extends DrupalSqlBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function initializeIterator() {
+    $search_active_modules = $this->variableGet('search_active_modules', '');
+    $rows = [];
+    foreach ($search_active_modules as $module => $status) {
+      $rows[] = [
+        'module' => $module,
+        'status' => $status,
+      ];
+    }
+    return new \ArrayIterator($rows);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function fields() {
+    return [
+      'module' => $this->t('The search module.'),
+      'status' => $this->t('Whether or not this module is enabled for search.'),
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function query() {
+    return $this->select('variable', 'v')
+        ->fields('v', array('name', 'value'))
+        ->condition('name', ['search_active_modules'], 'IN');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getIds() {
+    $ids['module']['type'] = 'string';
+    return $ids;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function count() {
+    return $this->initializeIterator()->count();
+  }
+
+}
diff --git a/core/modules/search/src/Tests/Migrate/d7/MigrateSearchPageStatusTest.php b/core/modules/search/src/Tests/Migrate/d7/MigrateSearchPageStatusTest.php
new file mode 100644
index 0000000..700fc5f
--- /dev/null
+++ b/core/modules/search/src/Tests/Migrate/d7/MigrateSearchPageStatusTest.php
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\search\Tests\Migrate\d7\MigrateSearchPageStatusTest.
+ */
+
+namespace Drupal\search\Tests\Migrate\d7;
+
+use Drupal\migrate_drupal\Tests\d7\MigrateDrupal7TestBase;
+use Drupal\search\Entity\SearchPage;
+
+/**
+ * Test upgrade of search active modules.
+ *
+ * @group migrate_drupal_7
+ */
+class MigrateSearchPageStatusTest extends MigrateDrupal7TestBase {
+
+  /**
+   * The modules to be enabled during the test.
+   *
+   * {@inheritdoc}
+   */
+  public static $modules = array('node', 'search');
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installConfig(['search']);
+    $this->executeMigration('d7_search_page_status');
+  }
+
+  /**
+   * Tests Drupal 7 search status to Drupal 8 search status.
+   */
+  public function testSearchStatus() {
+    /** @var \Drupal\search\Entity\SearchPage $search_page */
+    $id = 'node_search';
+    $search_page = SearchPage::load($id);
+    $this->assertTrue($search_page->status(), 'Node search is enabled.');
+
+    $id = 'user_search';
+    $search_page = SearchPage::load($id);
+    $this->assertFalse($search_page->status(), 'User search is disabled.');
+  }
+
+}
diff --git a/core/modules/search/tests/src/Unit/Plugin/migrate/process/d7/SearchPageStatusTest.php b/core/modules/search/tests/src/Unit/Plugin/migrate/process/d7/SearchPageStatusTest.php
new file mode 100644
index 0000000..101c96a
--- /dev/null
+++ b/core/modules/search/tests/src/Unit/Plugin/migrate/process/d7/SearchPageStatusTest.php
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Tests\search\Unit\Plugin\migrate\process\d7\SearchPageStatusTest.
+ */
+
+namespace Drupal\Tests\search\Unit\Plugin\migrate\process\d7;
+
+use Drupal\search\Plugin\migrate\process\d7\SearchPageStatus;
+use Drupal\Core\Extension\ModuleHandlerInterface;
+use Drupal\migrate\Plugin\MigrateProcessInterface;
+use Drupal\Tests\migrate\Unit\process\MigrateProcessTestCase;
+
+/**
+ * Tests the d7 search page status process plugin.
+ *
+ * @group search
+ */
+class SearchPageStatusTest extends MigrateProcessTestCase {
+
+  /**
+   * The module handler.
+   *
+   * @var \Drupal\Core\Extension\ModuleHandlerInterface
+   */
+  protected $moduleHandler;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->moduleHandler = $this->prophesize(ModuleHandlerInterface::class);
+    $migration_plugin = $this->prophesize(MigrateProcessInterface::class);
+    $this->plugin = new SearchPageStatus([], 'search', [], $this->moduleHandler->reveal(), $migration_plugin->reveal());
+  }
+
+  /**
+   * Test the transform process.
+   */
+  public function testTransform() {
+    $source = [
+      0 => 'user',
+      1 => 0
+    ];
+    $result = FALSE;
+
+    $transformed_value = $this->plugin->transform($source, $this->migrateExecutable, $this->row, 'destinationproperty');
+    $this->assertSame($result, $transformed_value);
+  }
+
+}
diff --git a/core/modules/search/tests/src/Unit/Plugin/migrate/source/d7/SearchPageStatusTest.php b/core/modules/search/tests/src/Unit/Plugin/migrate/source/d7/SearchPageStatusTest.php
new file mode 100644
index 0000000..1f9a574
--- /dev/null
+++ b/core/modules/search/tests/src/Unit/Plugin/migrate/source/d7/SearchPageStatusTest.php
@@ -0,0 +1,52 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Tests\search\Unit\Plugin\migrate\source\d7\SearchPageStatusTest.
+ */
+
+namespace Drupal\Tests\search\Unit\Plugin\migrate\source\d7;
+
+use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
+
+/**
+ * Tests D7 search page status source plugin.
+ *
+ * @group search
+ */
+class SearchPageStatusTest extends MigrateSqlSourceTestCase {
+
+  const PLUGIN_CLASS = 'Drupal\search\Plugin\migrate\source\d7\SearchPageStatus';
+
+  protected $migrationConfiguration = [
+    'id' => 'test',
+    'source' => [
+      'plugin' => 'd7_search_page_status',
+    ],
+  ];
+
+  protected $expectedResults = [
+    [
+      'module' => 'node',
+      'status' => 'node',
+    ],
+    [
+      'module' => 'user',
+      'status' => 0,
+    ]
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    $this->databaseContents['variable'] = [
+      [
+        'name' => 'search_active_modules',
+        'value' => 'a:2:{s:4:"node";s:4:"node";s:4:"user";i:0;}',
+      ]
+    ];
+    parent::setUp();
+  }
+
+}
