diff --git a/vendor/magento/module-graph-ql-cache/Model/Plugin/View/Layout.php b/vendor/magento/module-graph-ql-cache/Model/Plugin/View/Layout.php
new file mode 100644
index 000000000000..c2668a5d4d40
--- /dev/null
+++ b/vendor/magento/module-graph-ql-cache/Model/Plugin/View/Layout.php
@@ -0,0 +1,57 @@
+<?php
+/************************************************************************
+ *
+ * Copyright 2023 Adobe
+ * All Rights Reserved.
+ *
+ * NOTICE: All information contained herein is, and remains
+ * the property of Adobe and its suppliers, if any. The intellectual
+ * and technical concepts contained herein are proprietary to Adobe
+ * and its suppliers and are protected by all applicable intellectual
+ * property laws, including trade secret and copyright laws.
+ * Dissemination of this information or reproduction of this material
+ * is strictly forbidden unless prior written permission is obtained
+ * from Adobe.
+ * ************************************************************************
+ */
+declare(strict_types=1);
+
+namespace Magento\GraphQlCache\Model\Plugin\View;
+
+use Magento\Framework\DataObject\IdentityInterface;
+use Magento\Framework\View\LayoutInterface;
+use Magento\GraphQlCache\Model\CacheableQuery;
+
+class Layout
+{
+    /**
+     * @param CacheableQuery $cacheableQuery
+     */
+    public function __construct(
+        private readonly CacheableQuery $cacheableQuery
+    ) {
+    }
+
+    /**
+     * Add block cache tags to cacheable query
+     *
+     * @param LayoutInterface $subject
+     * @param mixed $result
+     * @param mixed $name
+     * @param mixed $block
+     * @return mixed
+     *
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     */
+    public function afterSetBlock(
+        LayoutInterface $subject,
+        mixed $result,
+        mixed $name,
+        mixed $block
+    ): mixed {
+        if ($block instanceof IdentityInterface) {
+            $this->cacheableQuery->addCacheTags($block->getIdentities());
+        }
+        return $result;
+    }
+}
diff --git a/vendor/magento/module-graph-ql-cache/etc/graphql/di.xml b/vendor/magento/module-graph-ql-cache/etc/graphql/di.xml
index 1270ba24c94b..f86a823d85b5 100644
--- a/vendor/magento/module-graph-ql-cache/etc/graphql/di.xml
+++ b/vendor/magento/module-graph-ql-cache/etc/graphql/di.xml
@@ -29,4 +29,7 @@
     <type name="Magento\Integration\Api\UserTokenRevokerInterface">
         <plugin name="set-guest-after-revoke" type="Magento\GraphQlCache\Model\Plugin\Auth\TokenRevoker"/>
     </type>
+    <type name="Magento\Framework\View\LayoutInterface">
+        <plugin name="add_block_cache_tags_to_query_cache" type="Magento\GraphQlCache\Model\Plugin\View\Layout"/>
+    </type>
 </config>
