For Perplexity SEO, Perplexity’s own advice starts with access. Its crawler documentation page recommends allowing PerplexityBot in robots.txt and permitting requests from its published IP ranges “to ensure your site appears in search results”; the list held 13 ranges when I read it on 5 November 2026. Then audit what arrives under that name. In the 30 days to 5 November 2026, Cloudflare counted about 4,310 successful responses to requests it labeled PerplexityBot on imisofts.com, and requests carrying the name also asked for .env files. In the 28 days to 4 November, GA4 credited perplexity.ai with 2 sessions.

My view: Perplexity SEO should start with the crawl report, not with content. The mistake I want to avoid is reading a busy PerplexityBot line as progress, then letting anything that calls itself PerplexityBot through the firewall.
About 4,310 successful PerplexityBot fetches in 30 days. GA4 credited Perplexity with 2 sessions in 28. In my view, a fetch count is not a result.
Key numbers
| Item | Number |
|---|---|
| Successful PerplexityBot fetches, 30 days to 5 Nov 2026 (requests labeled PerplexityBot on imisofts.com, as Cloudflare AI Crawl Control rounds them) | About 4,310 |
| PerplexityBot-labeled 404 responses, same 30 days (about 27% of a summed 6,600 requests) | About 1,790 |
| Perplexity-User-labeled requests answered 200, same 30 days (of about 2,100, all for /blog/blog.js) | About 10 |
| GA4 sessions credited to perplexity.ai, 8 Oct to 4 Nov 2026 (against 94 from chatgpt.com) | 2 |
| 404s for a missing preview image of ours, same 30 days (PerplexityBot-labeled, /og-image-cold-email.jpg) | About 260 |
| Published PerplexityBot IP ranges (perplexitybot.json, read 5 November 2026) | 13 |
| Published Perplexity-User IP ranges (perplexity-user.json, read 5 November 2026) | 10 |
| Creation time on both Perplexity IP lists | 28 October 2026 |
| Time for a robots.txt change to reach Perplexity | Up to 24 hours |
| Cloudflare post saying it de-listed Perplexity as verified (Perplexity disputed Cloudflare’s account the same day) | 4 August 2025 |
| Cloudflare AI referral reports | Paid plans only |
Read on 5 November 2026 from Cloudflare AI Crawl Control and GA4 for imisofts.com, Perplexity’s crawler page and IP lists, Cloudflare’s docs, blog and Radar bot directory, and Perplexity’s blog.
What Perplexity documents about its two crawlers
Perplexity’s crawler page documents two crawlers. PerplexityBot “is designed to surface and link websites in search results on Perplexity” and “is not used to crawl content for AI foundation models.” Perplexity-User might visit a page when someone asks Perplexity a question, and Perplexity says: “Since a user requested the fetch, this fetcher generally ignores robots.txt rules.” Robots.txt changes, it says, can take up to 24 hours to reach its systems.
Each crawler has its own published IP list: perplexitybot.json held 13 ranges and perplexity-user.json held 10 when I read them, both with a creation time of 28 October 2026. For Cloudflare, Perplexity’s firewall guidance is to “match each User-Agent against its own IP ranges” in a Skip rule placed above any custom rules that block or challenge requests, and it warns that Bot Fight Mode can’t be skipped that way. It adds: “Free plans allow only one custom list, which isn’t enough for both bots.” For AWS WAF, it says to “create IP sets and rules that match them together with the User-Agent header.”
The page gives no ranking or citation factor, and I read no other Perplexity page on how it picks sources, so my advice beyond access is inference, and I label it that way.
What our 30-day audit found
On 5 November our robots.txt allowed both crawlers by name, Bot Fight Mode was off and Browser Integrity Check was on. Cloudflare’s AI Crawl Control dashboard groups requests by crawler; its docs do not say how it decides which crawler a request belongs to. For the 30 days to 5 November 2026, as the dashboard rounds them:
| Response | PerplexityBot | Perplexity-User |
|---|---|---|
| Success (2xx) | 4,310 | 10 |
| Redirect (3xx) | 240 | 420 |
| Not found (404) | 1,790 | 1,220 |
| Forbidden or not allowed (403, 405) | 240 | 450 |
| Server error (5xx) | 20 | none shown |
| Sum of rows, about | 6,600 | 2,100 |
The dashboard’s own totals read 7k and 2k. To run the same read on your zone, open AI Crawl Control, then Metrics, set 30 days, filter by crawler, and switch the Most crawled paths table between 2xx and 4xx. Referral columns stay empty on the Free plan.
For scale, the crawlers with the most successful fetches in those 30 days were Meta-ExternalAgent (about 12,010), ChatGPT-User (5,530), PetalBot (4,460), PerplexityBot (4,310) and OAI-SearchBot (3,820).
About 27% of the requests Cloudflare attributed to PerplexityBot ended in a 404. Their top 2xx paths were a post on Acuity Scheduling pricing (110), the blog index (80), and my author page and a Claude Code pricing post (60 each). I have not matched any of these requests to Perplexity’s IP ranges, the 200s included. One fault was ours: 260 of the 404s were for /og-image-cold-email.jpg, a preview image that three of our cold email service pages name in their tags and that does not exist. Our FAQ page names another missing image, which drew 50 more.

Requests I read as borrowing the name
The rest of the 4xx list is what I would read first. Under PerplexityBot’s name: /.env (60), /firebase-credentials.json (60), /.env.production (60) and a path-traversal attempt on /proc/self/environ (120). Under Perplexity-User, about 10 of roughly 2,100 requests got a 200, all for /blog/blog.js, and the most requested paths among its 4xx responses were /ngsw.json (140), /.next/.env (100) and a Kubernetes service-account token (100). Its top redirect, 300 of them, was /.github/.env.
PerplexityBot is built to “surface and link websites”, and a credentials file is not a page to link. I cannot prove where each request came from, because our Free plan dashboards do not show source IPs by crawler. My reading is that these were scanners using Perplexity’s names. Perplexity’s own advice is to combine user-agent matching with IP verification “for enhanced security”.
Cloudflare will not settle it for you. On 4 August 2025, Cloudflare wrote that, “Based on Perplexity’s observed behavior”, it had “de-listed them as a verified bot”. Perplexity replied the same day that it appeared Cloudflare had confused Perplexity with traffic from BrowserBase, a third-party cloud browser service Perplexity “only occasionally uses for highly specialized tasks.” Cloudflare, whose dashboard I am quoting and which sells its AI referral reports on paid plans, is a party to that dispute. When I searched Cloudflare Radar’s bot directory on 5 November 2026, it listed no Perplexity crawler, while GPTBot and Claude-SearchBot showed as verified.
Allow anything that says PerplexityBot.
In our Cloudflare dashboard, requests using that name asked for .env files.
Allow each Perplexity crawler only from its own published ranges.
On 5 November 2026 Perplexity published 13 PerplexityBot and 10 Perplexity-User ranges, both with a creation time of 28 October 2026.
A Perplexity SEO audit in four checks
Allow both names, then check the IPs
Robots.txt changes can take up to 24 hours to reach Perplexity. On Cloudflare, use Perplexity’s Skip rule, which matches user agent and IP range together, and check Bot Fight Mode, which that rule cannot skip. Re-check both lists’ creation time; on 5 November both read 28 October 2026.
Split the 4xx list into yours and theirs
Fix the errors your own pages cause, like our missing preview image. In my view, scanner paths should be handled in your firewall, never with new pages; ours drew 404s, 403s, 405s and redirects.
Read what PerplexityBot-labeled requests fetch
Our top 2xx paths under that name were a post on Acuity Scheduling pricing, the blog index, my author page and a Claude Code pricing post. In my view, the pages you want cited should answer the question in the first paragraph, with the number and the date.
Count sessions, not fetches
Cloudflare’s AI referral reports are for paid plans only. In our GA4 property, a custom channel group with an AI assistants channel and the session source report showed 2 sessions from perplexity.ai, 8 October to 4 November 2026, against 94 from chatgpt.com.
GA4 can credit perplexity.ai only when a click arrives with a referrer, and the Perplexity pages I read do not say whether it always sends one, so 2 is what GA4 recorded, not necessarily everything Perplexity sent.
My team’s record: 500+ projects delivered across 30 countries. Our AI search optimization page covers this kind of crawl and access check; what Perplexity cites is its decision. If you are still deciding which AI crawlers to block, start there, and read Cloudflare’s AI bot settings if your site sits behind Cloudflare. For the assistant GA4 credited with 47 times as many sessions over the same 28 days (94 against 2), see getting ChatGPT to recommend you.
The bottom line
In my view, Perplexity SEO is an access problem before it is a content problem. Allow PerplexityBot by name and by IP range, fix the errors that are yours, firewall the ones that are not, and judge the work by sessions. Ours read about 4,310 successful fetches in 30 days against 2 GA4 sessions in 28, so for now I weigh ChatGPT more.