robots.txt and the meta robots tag both talk to search crawlers, but they control different things. robots.txt manages crawling - which URLs bots may fetch. The meta robots tag (or X-Robots-Tag header) manages indexing - whether a fetched page may appear in results.
This distinction trips up even experienced SEOs. Blocking a page in robots.txt does not remove it from the index; it just stops crawling. If you want a page out of search, you often need to allow crawling so the crawler can see a noindex directive.
