Try this
To remove products from the product collection that are set as "Non-Individually Visible," you can add an additional filter to exclude those products. Assuming "Non-Individually Visible" is a custom attribute
You can modify your existing code as follows:
$validProductsCollection = $this->collectionFactory->create();
$validProductsCollection->addFieldToFilter(ValidProductsInterface::DEMO_ID, $feedId)
->addFieldToFilter('non_individually_visible', ['neq' => 1]) // Exclude non-individually visible products
->setPageSize($itemsPerPage)
->setCurPage($currentPage)
->addFieldToSelect(ValidProductsInterface::VALID_PRODUCT_ID);
$collectionSize = $validProductsCollection->getSize();
addFieldToFilter('non_individually_visible', ['neq' => 1])
Adds a filter condition to exclude products where the "non_individually_visible" attribute is not equal to 1. Adjust the attribute name ('non_individually_visible') according to your actual attribute name.
By applying this filter, the resulting $validProductsCollection will only contain products that are individually visible.