diff --git a/core/modules/content_translation/src/Routing/ContentTranslationRouteSubscriber.php b/core/modules/content_translation/src/Routing/ContentTranslationRouteSubscriber.php
index ebdf562..270ca25 100644
--- a/core/modules/content_translation/src/Routing/ContentTranslationRouteSubscriber.php
+++ b/core/modules/content_translation/src/Routing/ContentTranslationRouteSubscriber.php
@@ -87,8 +87,6 @@ protected function alterRoutes(RouteCollection $collection) {
         $path . '/add/{source}/{target}',
         array(
           '_controller' => '\Drupal\content_translation\Controller\ContentTranslationController::add',
-          'source' => NULL,
-          'target' => NULL,
           '_title' => 'Add',
           'entity_type_id' => $entity_type_id,
 
diff --git a/core/modules/content_translation/src/Tests/ContentTranslationUITestBase.php b/core/modules/content_translation/src/Tests/ContentTranslationUITestBase.php
index 1b79d13..a9387be 100644
--- a/core/modules/content_translation/src/Tests/ContentTranslationUITestBase.php
+++ b/core/modules/content_translation/src/Tests/ContentTranslationUITestBase.php
@@ -113,6 +113,15 @@ protected function doTestBasicTranslation() {
       'source' => $default_langcode,
       'target' => $langcode
     ], array('language' => $language));
+
+    // Ensure that removing the last two url parts does not yield a fatal error.
+    $url_parts = explode('/', $add_url->toString());
+    for ($i = 0; $i < 2; $i++) {
+      array_pop($url_parts);
+      $this->drupalGet(implode('/', $url_parts));
+      $this->assertResponse(404);
+    }
+
     $this->drupalPostForm($add_url, $this->getEditValues($values, $langcode), $this->getFormSubmitActionForNewTranslation($entity, $langcode));
 
     // Assert that HTML is escaped in "all languages" in UI after SafeMarkup
diff --git a/core/modules/node/src/Controller/NodeViewController.php b/core/modules/node/src/Controller/NodeViewController.php
index ee84e6b..d6e6cdd 100644
--- a/core/modules/node/src/Controller/NodeViewController.php
+++ b/core/modules/node/src/Controller/NodeViewController.php
@@ -22,6 +22,11 @@ public function view(EntityInterface $node, $view_mode = 'full', $langcode = NUL
     $build = parent::view($node, $view_mode, $langcode);
 
     foreach ($node->uriRelationships() as $rel) {
+      // Whitelist links to remove content translation links.
+      if (!in_array($rel, ['canonical', 'delete-form', 'edit-form', 'version-history', 'revision'], TRUE)) {
+        continue;
+      }
+
       // Set the node path as the canonical URL to prevent duplicate content.
       $build['#attached']['html_head_link'][] = array(
         array(
