diff --git a/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php b/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
index dade1df..295a0a7 100644
--- a/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
+++ b/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
@@ -1476,9 +1476,9 @@ public function getCacheContexts() {
     $cache_contexts = [];
     // An exposed filter allows the user to change a view's filters. They accept
     // input from GET parameters, which are part of the URL. Hence a view with
-    // an exposed filter is cacheable per URL.
+    // an exposed filter is cacheable per query parameter.
     if ($this->isExposed()) {
-      $cache_contexts[] = 'url';
+      $cache_contexts[] = 'url.query_args:' . $this->options['expose']['identifier'];
     }
     return $cache_contexts;
   }
