PerplexityBot
PerplexityBot is Perplexity's crawler for surfacing and linking websites in Perplexity search results. Perplexity states that it is not used to crawl content for AI foundation models.
PerplexityBot at a glance
| Owner | Perplexity |
| Purpose | Surfaces and links websites in Perplexity search results |
| User agent string | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot) |
| robots.txt token | PerplexityBot |
| IP verification | Perplexity publishes IP ranges: perplexity.com/perplexitybot.json |
| Runs JavaScript | Not documented by Perplexity |
| robots.txt changes | Perplexity says changes may take up to 24 hours to take effect |
Perplexity also runs a second agent, Perplexity-User, which fetches pages when a Perplexity user asks a question. Perplexity says Perplexity-User generally ignores robots.txt because a user requested the fetch. This page covers PerplexityBot.
What a PerplexityBot visit means for your site
PerplexityBot hits mean Perplexity is indexing your pages so they can be surfaced and linked in its search results. Perplexity recommends allowing PerplexityBot in robots.txt.
PerplexityBot hits do not tell you whether Perplexity cited your page in a particular answer or what the user asked. They tell you whether the bot can reach your pages, which pages it reads, and whether it gets errors.
How to allow or block PerplexityBot
Allow PerplexityBot:
User-agent: PerplexityBot
Allow: /Block PerplexityBot:
User-agent: PerplexityBot
Disallow: /Perplexity notes that a WAF can block its bots even when robots.txt allows them. It recommends allowing requests that match both the user agent and its published IP ranges, and refreshing those rules from the IP list periodically.
Check your site's AI crawler access
How to find and verify PerplexityBot in your logs
- Find requests whose user agent contains
PerplexityBot:
grep -i "perplexitybot" /var/log/nginx/access.log | awk '{print $1, $9}' | sort | uniq -c | sort -rn- Check each IP against Perplexity's published list:
import ipaddress, json, sys, urllib.request
url = "https://www.perplexity.com/perplexitybot.json"
prefixes = json.load(urllib.request.urlopen(url))["prefixes"]
nets = [ipaddress.ip_network(p.get("ipv4Prefix") or p.get("ipv6Prefix")) for p in prefixes]
ip = ipaddress.ip_address(sys.argv[1])
print("on Perplexity's list" if any(ip in n for n in nets) else "not on the list")A PerplexityBot user agent from an IP outside the list is not Perplexity.
How Sitenumbers shows PerplexityBot
PerplexityBot does not appear in JavaScript analytics, so Sitenumbers counts it on your server or CDN with a Cloudflare Worker or an nginx log shipper. The AI crawler table shows PerplexityBot's verified hits, the pages it read, when it was last seen and the last response status. Hits are marked verified when the IP is in Perplexity's published ranges. The IP is used once for that check and then discarded.
| Bot | Verified hits | Pages | Last seen | Status |
|---|---|---|---|---|
| GPTBot | 1,284 | 312 | 2 h ago | 200 OK |
| ClaudeBot | 846 | 207 | 5 h ago | 200 OK |
| OAI-SearchBot | 391 | 118 | 1 day ago | 403 blocked |
| ChatGPT-User | 120 | 34 | 20 min ago | 200 OK |
Visitors who click through from perplexity.ai are counted separately as AI assistant referrals.
FAQ
What is PerplexityBot?
PerplexityBot is Perplexity's crawler for surfacing and linking websites in Perplexity search results.
Does PerplexityBot collect data for AI training?
Perplexity states that PerplexityBot is not used to crawl content for AI foundation models.
Does PerplexityBot respect robots.txt?
Perplexity documents PerplexityBot as controllable through robots.txt and says changes may take up to 24 hours. Perplexity-User, its user-triggered agent, generally ignores robots.txt.
What is the difference between PerplexityBot and Perplexity-User?
PerplexityBot indexes sites for Perplexity search. Perplexity-User fetches a page when a Perplexity user asks about it, and Perplexity says it is not used for web crawling or for training.