diff --git a/entityqueue.routing.yml b/entityqueue.routing.yml
index 8d23d843456bf475608b9ff9449afd1b0e6b66a2..5936ca394f935fa69d57c1837af918a1930d6cb4 100644
--- a/entityqueue.routing.yml
+++ b/entityqueue.routing.yml
@@ -6,29 +6,17 @@ entity.entity_queue.collection:
   requirements:
     _permission: 'administer entityqueue+manipulate entityqueues+manipulate all entityqueues'
 
-entity.entity_queue.add_form:
-  path: '/admin/structure/entityqueue/add'
-  defaults:
-    _entity_form: 'entity_queue.add'
-    _title: 'Add Entity Queue'
-  requirements:
-    _permission: 'administer entityqueue'
-
-entity.entity_queue.edit_form:
+entity.entity_queue.canonical:
   path: '/admin/structure/entityqueue/{entity_queue}'
   defaults:
-    _entity_form: 'entity_queue.edit'
-    _title: 'Edit Entity Queue'
-  requirements:
-    _permission: 'administer entityqueue'
-
-entity.entity_queue.delete_form:
-  path: '/admin/structure/entityqueue/{entity_queue}/delete'
-  defaults:
-    _entity_form: 'entity_queue.delete'
-    _title: 'Delete Entity Queue'
+    _controller: '\Drupal\entityqueue\Controller\EntityQueueUIController::queueCanonicalRedirect'
+    _title_callback: '\Drupal\Core\Entity\Controller\EntityController::title'
+  options:
+    parameters:
+      entity_queue:
+        type: entity:entity_queue
   requirements:
-    _permission: 'administer entityqueue'
+    _entity_access: entity_queue.update
 
 entity.entity_queue.enable:
   path: '/admin/structure/entityqueue/{entity_queue}/enable'
diff --git a/src/Controller/EntityQueueUIController.php b/src/Controller/EntityQueueUIController.php
index 5fbedea725762325e31c0b19928fd62ac12791f9..f9f7cc7c813eff12b6fd9dc8206f16f81bc355e2 100644
--- a/src/Controller/EntityQueueUIController.php
+++ b/src/Controller/EntityQueueUIController.php
@@ -9,12 +9,14 @@ use Drupal\Core\Ajax\ReplaceCommand;
 use Drupal\Core\Controller\ControllerBase;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Routing\RouteMatch;
+use Drupal\entityqueue\Entity\EntitySubqueue;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Drupal\Core\Url;
 use Drupal\entityqueue\EntityQueueInterface;
 use Drupal\entityqueue\EntityQueueRepositoryInterface;
 use Drupal\entityqueue\EntitySubqueueInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\HttpFoundation\RedirectResponse;
 use Symfony\Component\HttpFoundation\Request;
 
 /**
@@ -44,6 +46,28 @@ class EntityQueueUIController extends ControllerBase {
     );
   }
 
+  /**
+   * Redirects to the canonical URL of an entity queue.
+   *
+   * @param \Drupal\entityqueue\EntityQueueInterface $entity_queue
+   *   The entity queue.
+   *
+   * @return \Symfony\Component\HttpFoundation\RedirectResponse
+   *   A redirect response object.
+   */
+  public function queueCanonicalRedirect(EntityQueueInterface $entity_queue) {
+    $handler = $entity_queue->getHandlerPlugin();
+    if ($handler->supportsMultipleSubqueues()) {
+      $url = $entity_queue->toUrl('subqueue-list');
+    }
+    else {
+      $subqueue = EntitySubqueue::load($entity_queue->id());
+      $url = $subqueue->toUrl('edit-form');
+    }
+
+    return new RedirectResponse($url->toString());
+  }
+
   /**
    * Provides a list of all the subqueues of an entity queue.
    *
diff --git a/src/Entity/EntityQueue.php b/src/Entity/EntityQueue.php
index 7cb871dd2995e302c504118dffa6d6a4e775e9ed..5b7b22f7200017d77e78617e1c6d3d67b135c9d9 100644
--- a/src/Entity/EntityQueue.php
+++ b/src/Entity/EntityQueue.php
@@ -24,6 +24,9 @@ use Drupal\entityqueue\EntityQueueInterface;
  *       "delete" = "Drupal\Core\Entity\EntityDeleteForm"
  *     },
  *     "access" = "Drupal\entityqueue\EntityQueueAccessControlHandler",
+ *     "route_provider" = {
+ *       "html" = "\Drupal\Core\Entity\Routing\AdminHtmlRouteProvider",
+ *     },
  *   },
  *   admin_permission = "administer entityqueue",
  *   config_prefix = "entity_queue",
@@ -35,7 +38,8 @@ use Drupal\entityqueue\EntityQueueInterface;
  *     "status" = "status"
  *   },
  *   links = {
- *     "edit-form" = "/admin/structure/entityqueue/{entity_queue}",
+ *     "add-form" = "/admin/structure/entityqueue/add",
+ *     "edit-form" = "/admin/structure/entityqueue/{entity_queue}/edit",
  *     "delete-form" = "/admin/structure/entityqueue/{entity_queue}/delete",
  *     "collection" = "/admin/structure/entityqueue",
  *     "enable" = "/admin/structure/entityqueue/{entity_queue}/enable",