Take a furniture store with around 300 real products but about 4,000 indexable URLs once colour, size and price-sort filters multiply. Half the team wants noindex on the filter pages, the other half says canonicals are enough. I don't think canonicals alone solve it, because they're only a hint, and Googlebot keeps crawling those filter links anyway, so crawl budget still leaks into them. Robots.txt is the wrong fix too: if you block the crawl, Google can't see a noindex tag, and the URLs can sit in the index with no content.
Noindex does free up crawling for category and product pages, but it can also bury a filter page that has real demand, like "black leather sofa". So I'd noindex only the combinations with zero impressions in Search Console over a few months and keep the rest. How are others deciding when a filter page is actually earning clicks?