Crawling, indexing, and canonicalization are separate decisions
Robots.txt controls crawling. A noindex directive asks search engines not to keep a page in search results. A canonical tag indicates which URL should represent a set of duplicate or very similar pages. The words sound related, but the outcomes are not interchangeable.
The quickest way to choose is to name the problem first. Is Google spending time on a crawl trap, indexing a page that should stay out of results, or selecting the wrong version of duplicated content? Each problem calls for a different signal.
Do not block the page that carries your noindex
If robots.txt prevents Google from fetching a page, Google may never see the noindex directive inside it. The URL can remain known through links even though its content cannot be crawled.
For a normal HTML page that must leave the index, allow crawling and return noindex. Use robots.txt for areas you do not want crawled, not as a reliable removal tool for an already known URL.
Canonical is for consolidation, not concealment
A canonical tag works best when alternate URLs contain the same or substantially similar content. It is not a substitute for noindex on private, expired, filtered, or low-value pages.
Keep internal links, redirects, canonical tags, and Sitemap entries aligned. When one system points to URL A and another declares URL B canonical, you create a debate that the search engine has to resolve.
Practical checklist
- State whether the problem is crawling, indexing, or duplication.
- Allow crawlers to fetch a page when they need to see noindex.
- Use canonicals only for duplicate or very similar pages.
- Link internally to the preferred canonical URL.
- Keep noncanonical and noindex URLs out of the Sitemap.