There is an outstanding explanation from Google’s John Mueller about the differences around the noindex and rel=canonical signals and why they should not be mixed. In short, Google wants clear signals that are consistent and straightforward. When you start to confuse Google by communicating that one URL is more important than the other, but another signal says the opposite or you use the noindex to hide pages that you think are less important but want to pass that weight to other pages – it can ultimately confuse Google and come back to bite you.
Google’s John Mueller explained it super well in this Reddit thread, read it for yourself:
The general rule of thumb is that signals get forwarded & combined with canonicalization. When Google sees two URLs from your site, they look the same, and you tell us your preference clearly, we’ll try to combine them and treat them as one (usually stronger) URL instead of separate ones. Redirects, rel=canonical, internal & external linking, sitemaps, hreflang, etc all tell us your preferences, and the more you can align those, the more we’ll follow them and use them to pick a canonical out of that set (and forward all the signals to the canonical chosen).
On the other hand, noindex (alone) & robots.txt disallow (in general) are not clear signs for canonicalization. Just having a noindex on a page doesn’t tell us that you want to have it combined with something else, and that signals should be forwarded. A robots.txt disallow is even trickier, we don’t even know if the page matches anything else on your site, so we couldn’t even use it for canonicalization if we wanted to.
This is also where the guide that you shouldn’t mix noindex & rel=canonical comes from: they’re very contradictory pieces of information for us. We’ll generally pick the rel=canonical and use that over the noindex, but any time you rely on interpretation by a computer script, you reduce the weight of your input 🙂 (and SEO is to a large part all about telling computer scripts your preferences).
Forum discussion at Reddit.