diff --git a/core/modules/update/lib/Drupal/update/Controller/UpdateController.php b/core/modules/update/lib/Drupal/update/Controller/UpdateController.php
index deef6d8..49f273e 100644
--- a/core/modules/update/lib/Drupal/update/Controller/UpdateController.php
+++ b/core/modules/update/lib/Drupal/update/Controller/UpdateController.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\update\Controller;
 
+use Drupal\Core\Controller\ControllerBase;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -14,7 +15,7 @@
 /**
  * Controller routines for update routes.
  */
-class UpdateController implements ContainerInjectionInterface {
+class UpdateController extends ControllerBase implements ContainerInjectionInterface {
 
   /**
    * Module handler service.
@@ -62,4 +63,15 @@ public function updateStatus() {
     return $build;
   }
 
+  /**
+   * Manually checks the update status without the use of cron.
+   *
+   * @return \Symfony\Component\HttpFoundation\RedirectResponse|null
+   *   A redirect response if the batch is progressive. No return value otherwise.
+   */
+  function updateManualStatus() {
+    module_load_include('fetch.inc', 'update');
+    return update_manual_status();
+  }
+
 }
diff --git a/core/modules/update/update.module b/core/modules/update/update.module
index 0ab4d9d..9d945cc 100644
--- a/core/modules/update/update.module
+++ b/core/modules/update/update.module
@@ -173,13 +173,6 @@ function update_menu() {
     'type' => MENU_LOCAL_TASK,
     'weight' => 50,
   );
-  $items['admin/reports/updates/check'] = array(
-    'title' => 'Manual update check',
-    'page callback' => 'update_manual_status',
-    'access arguments' => array('administer site configuration'),
-    'type' => MENU_CALLBACK,
-    'file' => 'update.fetch.inc',
-  );
 
   // We want action links for updating projects at a few different locations:
   // both the module and theme administration pages, and on the available
diff --git a/core/modules/update/update.routing.yml b/core/modules/update/update.routing.yml
index 16ac4b4..bdc82eb 100644
--- a/core/modules/update/update.routing.yml
+++ b/core/modules/update/update.routing.yml
@@ -11,3 +11,11 @@ update_status:
     _content: '\Drupal\update\Controller\UpdateController::updateStatus'
   requirements:
     _permission: 'administer site configuration'
+
+update_check_manual:
+  pattern: '/admin/reports/updates/check'
+  defaults:
+    _controller: '\Drupal\update\Controller\UpdateController::updateManualStatus'
+    _title: 'Manual update check'
+  requirements:
+    _permission: 'administer site configuration'
