diff --git a/core/modules/views/src/Plugin/views/argument_default/QueryParameter.php b/core/modules/views/src/Plugin/views/argument_default/QueryParameter.php
index feccd21..0c5c1b5 100644
--- a/core/modules/views/src/Plugin/views/argument_default/QueryParameter.php
+++ b/core/modules/views/src/Plugin/views/argument_default/QueryParameter.php
@@ -95,7 +95,7 @@ public function isCacheable() {
    * {@inheritdoc}
    */
   public function getCacheContexts() {
-    return ['url'];
+    return ['url.query_args:' . $this->options['query_param']];
   }
 
 }
diff --git a/core/modules/views/tests/src/Unit/Plugin/argument_default/QueryParameterTest.php b/core/modules/views/tests/src/Unit/Plugin/argument_default/QueryParameterTest.php
index 0df15f2..2f66577 100644
--- a/core/modules/views/tests/src/Unit/Plugin/argument_default/QueryParameterTest.php
+++ b/core/modules/views/tests/src/Unit/Plugin/argument_default/QueryParameterTest.php
@@ -84,5 +84,25 @@ public function providerGetArgument() {
     return $data;
   }
 
+  /**
+   * Test the getCacheContexts() method.
+   *
+   * @covers ::getCacheContexts
+   */
+  public function testGetCacheContexts() {
+    $view = $this->getMockBuilder('Drupal\views\ViewExecutable')
+      ->disableOriginalConstructor()
+      ->setMethods(NULL)
+      ->getMock();
+    $display = $this->getMockBuilder('Drupal\views\Plugin\views\display\DisplayPluginBase')
+      ->disableOriginalConstructor()
+      ->getMock();
+    $options = ['query_param' => 'test'];
+
+    $plugin = new QueryParameter(array(), 'query_parameter', array());
+    $plugin->init($view, $display, $options);
+    $this->assertEquals(['url.query_args:test'], $plugin->getCacheContexts());
+  }
+
 }
 
