diff --git a/core/modules/node/node.routing.yml b/core/modules/node/node.routing.yml
index 8e33f2f..6685420 100644
--- a/core/modules/node/node.routing.yml
+++ b/core/modules/node/node.routing.yml
@@ -36,6 +36,7 @@ entity.node.preview:
   requirements:
     _node_preview_access: '{node_preview}'
   options:
+    no_cache: TRUE
     parameters:
       node_preview:
         type: 'node_preview'
diff --git a/core/modules/node/node.services.yml b/core/modules/node/node.services.yml
index 2ff32c3..fc682a0 100644
--- a/core/modules/node/node.services.yml
+++ b/core/modules/node/node.services.yml
@@ -34,12 +34,6 @@ services:
     tags:
       - { name: paramconverter }
     lazy: true
-  node.page_cache_response_policy.deny_node_preview:
-    class: Drupal\node\PageCache\DenyNodePreview
-    arguments: ['@current_route_match']
-    public: false
-    tags:
-      - { name: page_cache_response_policy }
   cache_context.user.node_grants:
     class: Drupal\node\Cache\NodeAccessGrantsCacheContext
     arguments: ['@current_user']
diff --git a/core/modules/node/src/PageCache/DenyNodePreview.php b/core/modules/node/src/PageCache/DenyNodePreview.php
deleted file mode 100644
index 5e749a0..0000000
--- a/core/modules/node/src/PageCache/DenyNodePreview.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\node\PageCache\DenyNodePreview.
- */
-
-namespace Drupal\node\PageCache;
-
-use Drupal\Core\PageCache\ResponsePolicyInterface;
-use Drupal\Core\Routing\RouteMatchInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * Cache policy for node preview page.
- *
- * This policy rule denies caching of responses generated by the
- * entity.node.preview route.
- */
-class DenyNodePreview implements ResponsePolicyInterface {
-
-  /**
-   * The current route match.
-   *
-   * @var \Drupal\Core\Routing\RouteMatchInterface
-   */
-  protected $routeMatch;
-
-  /**
-   * Constructs a deny node preview page cache policy.
-   *
-   * @param \Drupal\Core\Routing\RouteMatchInterface $route_match
-   *   The current route match.
-   */
-  public function __construct(RouteMatchInterface $route_match) {
-    $this->routeMatch = $route_match;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function check(Response $response, Request $request) {
-    if ($this->routeMatch->getRouteName() === 'entity.node.preview') {
-      return static::DENY;
-    }
-  }
-
-}
