diff --git a/core/modules/tour/src/Plugin/HelpSection/TourHelpSection.php b/core/modules/tour/src/Plugin/HelpSection/TourHelpSection.php
index c12f58a2c5..fc6f05373b 100644
--- a/core/modules/tour/src/Plugin/HelpSection/TourHelpSection.php
+++ b/core/modules/tour/src/Plugin/HelpSection/TourHelpSection.php
@@ -105,6 +105,8 @@ public function listTopics() {
             continue;
           }
 
+          // Add flag to automatically start tour, when page is opened.
+          $url->setRouteParameter('tour', 1);
           // Generate the link HTML directly, using toString(), to catch
           // missing parameter exceptions now instead of at render time.
           $topics[$id] = Link::fromTextAndUrl($title, $url)->toString();
diff --git a/core/modules/tour/src/Tests/TourHelpPageTest.php b/core/modules/tour/src/Tests/TourHelpPageTest.php
index 8a41eb9fb9..3b8054bf40 100644
--- a/core/modules/tour/src/Tests/TourHelpPageTest.php
+++ b/core/modules/tour/src/Tests/TourHelpPageTest.php
@@ -79,15 +79,16 @@ protected function verifyHelp($tours_ok = TRUE) {
       $this->assertNoText('Tours guide you through workflows');
     }
 
-    $titles = $this->getTourList();
+    $tours = $this->getTourList();
 
-    // Test the titles that should be links.
-    foreach ($titles[0] as $title) {
+    // Test the tour titles that should be links.
+    foreach ($tours['with_links'] as $tour) {
       if ($tours_ok) {
-        $this->assertLink($title);
+        $this->assertLink($tour['title']);
+        $this->assertLinkByHref($tour['link']);
       }
       else {
-        $this->assertNoLink($title);
+        $this->assertNoLink($tour['title']);
         // Just test the first item in the list of links that should not
         // be there, because the second matches the name of a module that is
         // in the Module overviews section, so the link will be there and
@@ -97,14 +98,14 @@ protected function verifyHelp($tours_ok = TRUE) {
       }
     }
 
-    // Test the titles that should not be links.
-    foreach ($titles[1] as $title) {
+    // Test the tour titles that should not be links.
+    foreach ($tours['without_links'] as $tour) {
       if ($tours_ok) {
-        $this->assertText($title);
-        $this->assertNoLink($title);
+        $this->assertText($tour['title']);
+        $this->assertNoLink($tour['title']);
       }
       else {
-        $this->assertNoText($title);
+        $this->assertNoText($tour['title']);
         // Just test the first item in the list of text that should not
         // be there, because the second matches part of the name of a module
         // that is in the Module overviews section, so the text will be there
@@ -126,16 +127,35 @@ protected function getModuleList() {
   }
 
   /**
-   * Gets a list of tours to test.
+   * Gets a list of tours with titles and corresponding links to test.
    *
    * @return array
-   *   A list of tour titles to test. The first array element is a list of tours
-   *   with links, and the second is a list of tours without links. Assumes
-   *   that the user being tested has 'administer languages' permission but
-   *   not 'translate interface'.
+   *   A list of tour titles to test. The first array element ('with_links') is
+   *   a list of tours with links, and the second array ('without_links') is a
+   *   list of tours without links. Assumes that the user being tested has
+   *   'administer languages' permission but not 'translate interface'.
    */
   protected function getTourList() {
-    return [['Adding languages', 'Language'], ['Editing languages', 'Translation']];
+    return [
+      'with_links' => [
+        [
+          'title' => 'Adding languages',
+          'link' => '/admin/config/regional/language/add?tour=1',
+        ],
+        [
+          'title' => 'Language',
+          'link' => '/admin/config/regional/language?tour=1',
+        ],
+      ],
+      'without_links' => [
+        [
+          'title' => 'Editing languages',
+        ],
+        [
+          'title' => 'Translation',
+        ],
+      ],
+    ];
   }
 
 }
