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..fbe40559419c
--- /dev/null
+++ b/vendor/magento/module-graph-ql-cache/Model/Plugin/View/Layout.php
@@ -0,0 +1,63 @@
+<?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
+{
+    /**
+     * @var CacheableQuery $cacheableQuery
+     */
+    private $cacheableQuery;
+
+    /**
+     * @param CacheableQuery $cacheableQuery
+     */
+    public function __construct(
+        CacheableQuery $cacheableQuery
+    ) {
+        $this->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 5dd8c816ce92..eb2e62621c03 100644
--- a/vendor/magento/module-graph-ql-cache/etc/graphql/di.xml
+++ b/vendor/magento/module-graph-ql-cache/etc/graphql/di.xml
@@ -23,4 +23,7 @@
         <plugin name="result-builtin-cache" type="Magento\PageCache\Model\Controller\Result\BuiltinPlugin"/>
         <plugin name="result-varnish-cache" type="Magento\PageCache\Model\Controller\Result\VarnishPlugin"/>
     </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>
