PerplexityBot vs PerplexityUser: the two-bot model and what it means for opt-out
Perplexity is one of the few AI-search providers to publish a clear two-bot model with explicit, distinct compliance rules. Understanding the split is necessary if you want to make informed decisions about whether (and how) to block Perplexity from your domain.
The two bots
PerplexityBot — A traditional indexing crawler. Used to build and maintain Perplexity's search corpus. Its requests carry the PerplexityBot user-agent string. Per Perplexity's published guidance, PerplexityBot respects robots.txt.
PerplexityUser — Fired when an individual user submits a query whose answer requires fetching a specific URL. Per Perplexity's documentation, this is treated as a user-initiated browsing action rather than a crawl, and on that basis Perplexity states they do not bind PerplexityUser to robots.txt. The framing parallels how a browser fetches a page when a user pastes a URL — the browser doesn't consult robots.txt.
Why this matters
This distinction has been controversial. Critics argue that any automated fetch from Perplexity infrastructure should respect robots.txt regardless of trigger; Perplexity argues PerplexityUser fetches are extensions of a human's browsing intent. Whichever framing you find more persuasive, the practical implication is:
- A
robots.txtblock ofPerplexityBotremoves you from Perplexity's search index — Perplexity will not surface your domain in unprompted answers. - That same block does not prevent PerplexityUser from fetching your URL when a user explicitly asks Perplexity about it.
- A complete block of both requires
Disallow: /for bothPerplexityBotANDPerplexityUserinrobots.txt, and even then Perplexity's documented position is that PerplexityUser may still fetch on user request.
Example robots.txt patterns
Block Perplexity's search index but allow user-initiated fetches:
User-agent: PerplexityBot
Disallow: /
Attempt to block both (effectiveness depends on whether Perplexity treats your block as binding for PerplexityUser):
User-agent: PerplexityBot
Disallow: /
User-agent: PerplexityUser
Disallow: /
Verifying who actually fetched your page
Server access logs let you tell PerplexityBot fetches apart from PerplexityUser fetches by inspecting the User-Agent header. If you see PerplexityUser hits despite a block, that's expected per Perplexity's stated policy — the block applies to PerplexityBot.
How AI Visibility Monitor checks this
The Crawler Access tool reports both PerplexityBot and PerplexityUser robots.txt status independently. The Performance probe queries Perplexity Sonar and parses returned citations URLs into the Citations dashboard, so you can see which of your pages Perplexity is actively surfacing in answers — separate from the question of which bots can fetch you.
Sources
- Perplexity Bots & User Agents · Perplexity Documentationhttps://docs.perplexity.ai/guides/bots
- PerplexityBot user agent · Perplexity Documentationhttps://docs.perplexity.ai/guides/bots#perplexitybot
- PerplexityUser user agent · Perplexity Documentationhttps://docs.perplexity.ai/guides/bots#perplexity-user