diff --git Model/Observer/ApplyProductAlertOnCollectionAfterLoadObserver.php Model/Observer/ApplyProductAlertOnCollectionAfterLoadObserver.php
index 5e5d314..8569234 100644
--- Model/Observer/ApplyProductAlertOnCollectionAfterLoadObserver.php
+++ Model/Observer/ApplyProductAlertOnCollectionAfterLoadObserver.php
@@ -24,6 +24,9 @@ use Magento\Catalog\Model\Product\Visibility;
 
 class ApplyProductAlertOnCollectionAfterLoadObserver implements ObserverInterface
 {
+    /** @var bool[] Memoization cache for stock alert status */
+    private array $stockAlertCache = [];
+
     /**
      * @var \Bss\ProductStockAlert\Helper\Data
      */
@@ -73,15 +76,27 @@ class ApplyProductAlertOnCollectionAfterLoadObserver implements ObserverInterfac
         $collection = $observer->getEvent()->getCollection();
         if ($this->helper->isStockAlertAllowed()) {
             foreach ($collection as $product) {
-                if ($product->getVisibility() != Visibility::VISIBILITY_NOT_VISIBLE) {
-                    $isSalable = $this->multiSourceInventoryHelper->isEnabledMsi()
-                        ? $this->checkProductSaleable($product) : $product->isAvailable();
-                    if ($product->getProductStockAlert() != Order::DISABLE &&
-                        !$isSalable && $this->checkCustomer()
-                    ) {
-                        $product->setIsStockAlertAllowed(true);
+                $productId = (int)$product->getId();
+
+                if (isset($this->stockAlertCache[$productId])) {
+                    $isStockAlertAllowed = $this->stockAlertCache[$productId];
+                } else {
+                    $isStockAlertAllowed = false;
+
+                    if ($product->getVisibility() != Visibility::VISIBILITY_NOT_VISIBLE) {
+                        $isSalable = $this->multiSourceInventoryHelper->isEnabledMsi()
+                            ? $this->checkProductSaleable($product) : $product->isAvailable();
+                        if ($product->getProductStockAlert() != Order::DISABLE &&
+                            !$isSalable && $this->checkCustomer()
+                        ) {
+                            $isStockAlertAllowed = true;
+                        }
                     }
+
+                    $this->stockAlertCache[$productId] = $isStockAlertAllowed;
                 }
+
+                $product->setIsStockAlertAllowed($isStockAlertAllowed);
             }
         }
         return $this;
