What is User-triggered fetcher?
A user-triggered fetcher is a bot that fetches a page because a user asked for it, not as part of proactive crawling.
The difference between a fetcher and a regular crawler is who pulled the trigger. Googlebot decides on its own when to crawl you. ChatGPT-User arrives because someone, right now, asked ChatGPT a question and the system decided the answer lives on your site. The request is a messenger for a real user, not for an engine.
From that trait follows the rule that confuses people most: most fetchers ignore robots.txt, deliberately and documentedly. Google documents it for its fetchers, and OpenAI for ChatGPT-User. The exception is Anthropic, which states that Claude-User does honor robots.txt. The majority’s logic: robots.txt exists to restrain automated crawling, and an action a user initiated is not automated crawling. Blocking ChatGPT-User in robots.txt does not really close the door; the way to identify and manage this traffic is logs, official IP lists, and increasingly web-bot-auth.
A log example: a single GET request with the ChatGPT-User agent is almost always a user’s question that led to your page. Not a crawl, a citation opportunity.
How it relates to SEO and GEO
In GEO terms, fetcher requests are the moment of truth: the visit that happens one second before your brand gets cited in an answer. A site that blocks AI-engine fetchers, deliberately or accidentally through a WAF rule, deletes itself from answers at the exact moment a user asked. Watching fetcher traffic in logs is one of the most direct ways to measure AI visibility: every such request is a real question that led to you.
The difference between a fetcher and a crawler
A crawler builds a long-term index and respects robots.txt. A fetcher serves a user in real time and usually ignores it. When analyzing logs or writing blocking policy, separate the two: blocking a crawler removes you from tomorrow’s index, blocking a fetcher removes you from the answer being written right now.