Perplexity
PerplexityBot
Keeps Perplexity's search index fresh. It is an index, not training.
When you see it: Perplexity is indexing your page. Blocking it costs you visibility in Perplexity results, which is a different decision from blocking training.
How we check it is really Perplexity
- 01
The user agent has to contain PerplexityBot.
Perplexity publishes neither IP ranges nor a reverse DNS record, so this is the honest ceiling: the visit is recorded as a claim. We would rather show you an unverified row than a tick we cannot back.
Perplexity publishes a range file for this bot, but it has not been updated since February 2025 and holds eight generic cloud addresses. We refuse it: checking against a list that stale produces false assurance rather than verification. Perplexity-User has a newer file and can be verified.
What each result means
- verified
- The address matched Perplexity's own published records. This really was them.
- unverified
- We could not confirm it, and that is all it means. The operator may publish nothing to check against, a published list may be behind the addresses actually in use, or DNS may simply have been slow. It is not an accusation.
- spoofed
- The address belongs to somebody else — its own reverse DNS record resolves to a different owner. That is positive evidence of a forgery rather than a failure to find evidence, which is why it is reported as its own result and never folded into the row above.
The distinction costs nothing to make and is the reason these numbers can be shown to someone who will ask where they came from. A report that cannot separate “we do not know” from “this was faked” invites exactly one question it cannot answer.
The lists this is checked against
Published by Perplexity and refetched every six hours. Open them; they are the same files we read.
- Operator
- Perplexity
- Token
- PerplexityBot
- Counted as
- Search indexing
- Verification
- User agent only
- Runs JavaScript
- No
- Operator docs
- Published
User agent
PerplexityBotMatched as a token, not as a full browser string. Perplexity adds and changes the version and product text around it without notice, so a filter pinned to the whole header stops working the first time they bump a version while one matching PerplexityBot keeps working. The same string is what Perplexity names in robots.txt.
One real request
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybotPerplexity's other crawlers
Perplexity sends 2 crawlers, each with its own token and its own job. They are counted separately for that reason — the tokens differ by a few characters and what the fetch means does not, so folding them into one operator row would let indexing look like AI interest.
| Token | Counted as | Verification | What it fetches for |
|---|---|---|---|
PerplexityBotthis page | Indexing | User agent only | Keeps Perplexity's search index fresh. It is an index, not training. |
| Perplexity-User | AI answers | Published IP ranges | Fetches a page Perplexity is about to cite in an answer. |
Your analytics never mentioned PerplexityBot because it cannot see it.
This crawler takes your HTML and leaves without running a line of JavaScript, so a browser tag records nothing. TrueStat reads it server-side, checks the address, and shows you which pages it fetched — including the ones that returned a 404.