Every filter combination (color, size, price range) and every sort option generates its own URL. A collection with five filter types can produce hundreds of crawlable URL variations, all showing the same products in a different order — which search engines read as duplicate or near-duplicate content.
Every filtered/sorted variation of a collection should canonical back to the clean collection URL. Shopify handles this reasonably by default on standard themes, but custom filter apps often break it — worth explicitly checking the canonical tag on a filtered URL, not assuming it's correct.
For filter combinations that add real crawl budget waste without any SEO value (sort=price-desc, for instance), disallowing the parameter pattern in robots.txt alongside the canonical tag stops search engines from wasting crawl budget discovering pages that will just canonical away anyway.