Pagination isn’t great
The page links are usually small and hard to click accurately, especially on mobile. Those pagination links load another page, which slows down the browsing experience. And users browse fewer products on average with pagination than with a Load More button.
Infinity scrolling is evil
You scroll down and think that you reached the footer, but no, here’s more results for you. But I want to get to the footer! Nope, not yet, keep trying.
Use a combination of lazy loading and a “Load More” button. Show about 10-30 products on page load, and then lazy-load another 10-30 products as they scroll down, until they reach 50-100 products. Then, display a “Load more” button and repeat.
Show 15-30 on page load, then show a “Load More” button. When the user clicks on it, load the next 15-30 elements all at once (no lazy loading).