diff --git a/hreflang.module b/hreflang.module
index 7191ac9..46d8359 100644
--- a/hreflang.module
+++ b/hreflang.module
@@ -2,6 +2,7 @@
 
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\Core\Url;
+use Drupal\Core\Entity\ContentEntityInterface;
 
 /**
  * Implements hook_page_attachments().
@@ -11,6 +12,19 @@ function hreflang_page_attachments(array &$page) {
   if (\Drupal::request()->attributes->has('exception')) {
     return;
   }
+  $route_match = \Drupal::routeMatch();
+  $parameters = $route_match->getRouteObject()->getOption('parameters');
+  // Determine if the current route displays a content entity. If it does,
+  // defer to logic in content_translation_page_attachments().
+  foreach ($parameters as $name => $options) {
+    if (!isset($options['type']) || strpos($options['type'], 'entity:') !== 0) {
+      continue;
+    }
+    $entity = $route_match->getParameter($name);
+    if ($entity instanceof ContentEntityInterface && $entity->hasLinkTemplate('canonical')) {
+      return;
+    }
+  }
   $language_manager = \Drupal::getContainer()->get('language_manager');
   $route = \Drupal::service('path.matcher')->isFrontPage() ? '<front>' : '<current>';
   $links = $language_manager->getLanguageSwitchLinks(LanguageInterface::TYPE_INTERFACE, Url::fromRoute($route));
