AI crawler profile
PerplexityBot: Perplexity's search crawler and the robots.txt dispute
User-agent string to match in robots.txt and server logs: PerplexityBot
Operator
Perplexity
Purpose
AI search & live answers
robots.txt
Partially respects robots.txt
Official docs
Who blocks PerplexityBot — our study of 10,000 top sites
7.8%
block it by name (409 of 5,250 sites with a robots.txt)
14.1%
mention PerplexityBot in robots.txt at all
#12
most-blocked of the 28 AI agents we track
Sites that block it by name include facebook.com, fbcdn.net, instagram.com, linkedin.com, amazon.com, whatsapp.net, tiktok.com, whatsapp.com. Methodology and full results (checked 2026-11-11).
PerplexityBot is the crawler Perplexity AI uses to build the index behind its answer engine. Perplexity's crawler documentation says it exists "to surface and link websites in search results on Perplexity" and is not used to collect content for training foundation models. If you want your pages to show up as cited sources in Perplexity answers, this is the agent you need to let in. If you want out, a robots.txt rule addressed to it is the documented way to do that, with caveats covered below.
The user-agent string
Perplexity documents one string for this crawler:
Mozilla/5.0 (compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)
Perplexity notes that the version number may change. The robots.txt token is PerplexityBot. In log searches and firewall rules, match on the PerplexityBot/ substring rather than the full string. Perplexity's strings have not always appeared in exactly the documented form: Cloudflare's 2025 report quotes its sibling agent, Perplexity-User, with an extra AppleWebKit/537.36 (KHTML, like Gecko; ...) segment that the docs page does not show. An exact-match rule would miss variants like that.
Two Perplexity agents, two different rules
Perplexity runs two declared agents, and most confusion about "blocking Perplexity" comes from treating them as one.
| PerplexityBot | Perplexity-User | |
|---|---|---|
| Job | Crawls ahead of time to build the search index | Fetches a page live when a user's question needs it |
| robots.txt | Documented as the way to opt in or out of search results | "generally ignores robots.txt rules" per Perplexity's docs |
| IP list | perplexitybot.json | perplexity-user.json |
So a Disallow for PerplexityBot removes you from the pre-built index, but a page can still be read and cited when someone asks Perplexity about it directly. The PerplexityBot vs Perplexity-User comparison goes through that split in detail, and the Perplexity-User profile covers the live fetcher on its own.
Perplexity also notes that each robots.txt setting is evaluated independently and that changes "may take up to 24 hours" to be reflected. Give a new rule a day before judging it from your logs.
Verifying a request is really PerplexityBot
Perplexity's guidance is to match the user-agent and the source IP together, and to treat its JSON endpoints as the source of truth. The PerplexityBot file lives at perplexity.ai/perplexitybot.json. It has a creationTime timestamp and a prefixes array of ipv4Prefix entries. When we fetched it for this page, it held 13 single-address /32 prefixes, all IPv4, generated on 28 October 2026. That is a short list, so a strict allowlist is practical, but it also means a stale copy goes wrong quickly. Perplexity recommends automating periodic refreshes of WAF rules from the endpoint rather than pasting addresses in once.
Perplexity does not document a reverse-DNS hostname check for its crawlers, so the IP list is the only verification method it offers.
One Cloudflare-specific note from the same docs: Bot Fight Mode cannot be bypassed with custom WAF rules, so it may still challenge PerplexityBot even if you have written an allow rule for its IPs. If you want Perplexity traffic and you run Bot Fight Mode, check the firewall events after making the change.
Why the robots.txt record is disputed
Perplexity states that PerplexityBot respects robots.txt. Two independent investigations reported traffic linked to Perplexity reaching sites that had blocked its declared agents.
June 2024, Wired and Robb Knight. Developer Robb Knight, who had blocked PerplexityBot on his own site and on MacStories, found Perplexity still reaching MacStories with requests that did not carry its published user-agent. Wired then set up a new site, asked Perplexity to summarize it, and its server logged a visit from an IP address that was not on Perplexity's published list. As MacStories summarized, Wired reported that this address hit Condé Nast properties at least 822 times in three months.
August 2025, Cloudflare. Cloudflare published tests using newly registered domains that were not publicly linked and that disallowed all crawling. Perplexity still answered detailed questions about their content. Cloudflare said that when the declared agents were blocked, it saw a generic Chrome-on-macOS user-agent fetching from IPs outside Perplexity's published ranges, at 3 to 6 million requests a day, compared with 20 to 25 million a day from the declared agent. Cloudflare removed Perplexity from its verified bots list and added signatures for the undeclared traffic to its managed AI-crawler rules, including on free plans.
Perplexity's answer. In its response, Perplexity said Cloudflare had misattributed the 3 to 6 million daily requests, which it said came from BrowserBase, a third-party cloud browser service that Perplexity uses occasionally for fewer than 45,000 requests a day. It also argued that user-requested fetches are a different thing from crawling and should not be treated like bots.
Note what the dispute is about. Both reports concern traffic that did not identify itself as PerplexityBot. Neither showed the declared PerplexityBot agent ignoring a disallow. In practice that means a robots.txt rule reliably controls the declared crawler and nothing more.
Picking a setup
You want Perplexity citations. Allow the crawler explicitly. This matters when you also have a broad AI block, because a wildcard Disallow catches PerplexityBot too:
User-agent: PerplexityBot
Allow: /
User-agent: *
Disallow: /private/
If you sit behind Cloudflare, check whether its AI-crawler blocking or Bot Fight Mode is turned on, since either can stop PerplexityBot regardless of your robots.txt. Our guide to optimizing for Perplexity covers what gets pages cited once the crawler can reach them.
You want out of Perplexity. Disallow both declared agents. The Perplexity-User line costs nothing even though it is documented as generally ignored:
User-agent: PerplexityBot
Disallow: /
User-agent: Perplexity-User
Disallow: /
Then enforce it at the edge using both JSON IP lists, because robots.txt is a request, not a block. Going by the reports above, undeclared traffic will not match either list, so the only defense against it is bot detection at your CDN. The AI crawler access checker shows how your current robots.txt treats PerplexityBot, and the AI bot log analyzer helps confirm what is actually reaching your server.
Copy-paste rules for PerplexityBot
User-agent: PerplexityBot Disallow: /
User-agent: PerplexityBot Allow: /
Server and CDN rules (nginx, Apache, Cloudflare, log grep)
if ($http_user_agent ~* "PerplexityBot") {
return 403;
}RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} PerplexityBot [NC]
RewriteRule .* - [F,L](http.user_agent contains "PerplexityBot")
grep -i "PerplexityBot" /var/log/nginx/access.log | wc -l
Check your live robots.txt with the AI Crawler Access Checker, or count real PerplexityBot hits with the AI Bot Log Analyzer.
Sources
- Perplexity Crawlers (official documentation)
- PerplexityBot IP ranges (perplexitybot.json)
- Cloudflare: Perplexity is using stealth, undeclared crawlers to evade website no-crawl directives (Aug 4, 2025)
- Perplexity: Agents or bots? Making sense of AI on the open web (Aug 4, 2025)
- MacStories: Wired confirms Perplexity is bypassing efforts by websites to block its web crawler (June 2024)
Frequently asked questions
Is PerplexityBot used to train AI models?
Perplexity says no. Its crawler documentation describes PerplexityBot as the agent that surfaces and links websites in Perplexity search results, and states it is not used to crawl content for AI foundation models.
If I disallow PerplexityBot, will Perplexity stop reading my pages?
Not necessarily. The robots.txt rule only addresses the index crawler. Perplexity-User, which fetches pages live when someone asks a question, is documented as generally ignoring robots.txt, so your pages can still be fetched and cited that way.
How long does a robots.txt change take to apply to PerplexityBot?
Perplexity's documentation says it may take up to 24 hours for its systems to reflect robots.txt changes. Wait at least a day before reading your logs to judge whether a new rule is working.
How do I tell real PerplexityBot traffic from an impostor?
Check both the user-agent and the source IP. A genuine request carries the PerplexityBot/1.0 token and comes from an address listed in perplexity.ai/perplexitybot.json. A request with the right user-agent from any other IP should be treated as unverified.
Did Cloudflare block Perplexity?
In August 2025 Cloudflare said it had removed Perplexity from its verified bots list and added signatures for the undeclared crawler it described to its managed AI-crawler rules. Perplexity disputed the findings and said Cloudflare had misattributed third-party traffic to it.
Commonly confused with
Other AI crawlers
- Perplexity-UserFetches a page a user asks Perplexity to browse live.
- Meta-ExternalFetcherFetches specific links for Meta AI when users share or request them.
- DuckAssistBotFetches pages to generate DuckDuckGo's AI-assisted answers.
- YouBotCrawls and fetches pages for You.com's AI search answers.
- TimpibotCrawler for Timpi's decentralized search index.
- OAI-SearchBotPowers search-style results surfaced in ChatGPT.
Part of our directory of every known AI crawler, refreshed monthly. Last verified: 2026-09-13.