diff --git a/core/modules/search/search.install b/core/modules/search/search.install
index 1d8df5b..eeb3630 100644
--- a/core/modules/search/search.install
+++ b/core/modules/search/search.install
@@ -122,3 +122,40 @@ function search_schema() {
 
   return $schema;
 }
+
+/**
+ * Implements hook_requirements().
+ *
+ * For the Status Report, return information about search index status.
+ */
+function search_requirements($phase) {
+  $requirements = array();
+
+  if ($phase == 'runtime') {
+    $remaining = 0;
+    $total = 0;
+    $search_page_repository = \Drupal::service('search.search_page_repository');
+    foreach ($search_page_repository->getIndexableSearchPages() as $entity) {
+      $status = $entity->getPlugin()->indexStatus();
+      $remaining += $status['remaining'];
+      $total += $status['total'];
+    }
+
+    $done = $total - $remaining;
+    $percent = $total > 0 ? 100 * $done / $total : 100;
+    $message = format_plural(
+      $remaining,
+      'There is 1 item left to index out of @total (@percent%).',
+      'There are @count items left to index out of @total (@percent%).',
+      array('@total' => $total, '@percent' => $percent));
+
+    $requirements['search_status'] = array(
+      'title' => t('Search index status'),
+      'value' => $percent . '%',
+      'description' => $message,
+      'severity' => REQUIREMENT_INFO,
+    );
+  }
+
+  return $requirements;
+}
