diff --git a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
index 012dec4f21..6c3cdef6d9 100644
--- a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
+++ b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
@@ -2359,6 +2359,12 @@ public function buildRenderable(array $args = [], $cache = TRUE) {
       // Places like \Drupal\views\ViewExecutable::setCurrentPage() set up an
       // additional cache context.
       $this->view->element['#cache']['keys'] = array_merge(['views', 'display', $this->view->element['#name'], $this->view->element['#display_id']], $this->view->element['#cache']['keys']);
+
+      // Add arguments to the cache key.
+      if ($args) {
+        $this->view->element['#cache']['keys'][] = 'args';
+        $this->view->element['#cache']['keys'][] = implode(',', $args);
+      }
     }
     else {
       // Remove the cache keys, to ensure render caching is not triggered. We
