diff --git a/page_manager/page_manager.info b/page_manager/page_manager.info
index 1dd3b30..efad0a6 100644
--- a/page_manager/page_manager.info
+++ b/page_manager/page_manager.info
@@ -4,3 +4,5 @@ core = 7.x
 dependencies[] = ctools
 package = Chaos tool suite
 version = CTOOLS_MODULE_VERSION
+
+files[] = tests/head_links.test
diff --git a/page_manager/plugins/tasks/node_view.inc b/page_manager/plugins/tasks/node_view.inc
index 89a2912..fb2f2a4 100644
--- a/page_manager/plugins/tasks/node_view.inc
+++ b/page_manager/plugins/tasks/node_view.inc
@@ -85,6 +85,23 @@ function page_manager_node_view_page($node) {
   ctools_include('context');
   ctools_include('context-task-handler');
 
+  $uri = entity_uri('node', $node);
+  if (isset($uri['path'])) {
+    // Set the node path as the canonical URL to prevent duplicate content.
+    $meta_canon = array(
+      'rel' => 'canonical',
+      'href' => url($uri['path'], $uri['options']),
+    );
+    drupal_add_html_head_link($meta_canon, TRUE);
+
+    // Set the non-aliased path as a default shortlink.
+    $meta_short = array(
+      'rel' => 'shortlink',
+      'href' => url($uri['path'], array_merge($uri['options'], array('alias' => TRUE)))
+    );
+    drupal_add_html_head_link($meta_short, TRUE);
+  }
+
   // Load all contexts.
   $contexts = ctools_context_handler_get_task_contexts($task, '', array($node));
 
diff --git a/page_manager/tests/head_links.test b/page_manager/tests/head_links.test
new file mode 100644
index 0000000..f3bc5a4
--- /dev/null
+++ b/page_manager/tests/head_links.test
@@ -0,0 +1,74 @@
+<?php
+/**
+ * @file
+ * Tests the head links for page manager pages.
+ */
+
+/**
+ * Test the head links.
+ */
+class HeadLinksTestCase extends DrupalWebTestCase {
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'Head links test',
+      'description' => 'Checks that the shortlink and canonical links are present on a node page overriden by Page manager',
+      'group' => 'ctools',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setUp() {
+    parent::setUp('page_manager');
+
+    // First add an override for "node/%node".
+    variable_set('page_manager_node_view_disabled', FALSE);
+
+    $record = (object) array(
+      'name' => 'node_view__http_response_707659df-062d-4252-8c2a-22a8e0289cd4',
+      'task' => 'node_view',
+      'subtask' => '',
+      'handler' => 'http_response',
+      'weight' => '1',
+      'conf' => array(
+        'title' => 'Test',
+        'contexts' => array(
+          0 => array(
+            'identifier' => 'String',
+            'keyword' => 'string',
+            'name' => 'string',
+            'string' => 'Test',
+            'id' => 1,
+          ),
+        ),
+        'relationships' => array(),
+        'code' => '404',
+        'destination' => '',
+        'name' => '',
+      ),
+    );
+
+    page_manager_save_task_handler($record);
+
+    menu_rebuild();
+  }
+
+  /**
+   * Test the presence of the head links.
+   */
+  public function testHeadLinks() {
+    $node = $this->drupalCreateNode();
+    $url = 'node/' . $node->nid;
+    $this->drupalGet($url);
+
+    $shortlink = $this->xpath('//head//link[@rel="shortlink"]');
+    $this->assertEqual(url($url), (string) $shortlink[0]['href'], 'shortlink url found');
+
+    $canonical = $this->xpath('//head//link[@rel="canonical"]');
+    $this->assertEqual(url($url), (string) $canonical[0]['href'], 'canonical url found');
+  }
+}
