How to rank in Perplexity: 3 checks for PerplexityBot
Short answer: Nobody can promise that you will rank in Perplexity: Perplexity's crawler page says how its bots are meant to be treated, not how pages are chosen or ordered. Three checks cover what you control. robots.txt lets PerplexityBot in, nothing in front of your server turns it away, and the main text is in the HTML without JavaScript. Passing them removes the technical obstacles we know of, and it promises no placement and no citation.
Can you rank in Perplexity? What Perplexity documents
People search for how to rank in Perplexity as if it were a list with positions you can climb. Perplexity's own page about its crawlers describes something narrower. It explains which bots visit your site, what each one is for and which settings you control. It does not say how Perplexity chooses pages for an answer or in which order it shows them, and we know of no source that proves a technical setting changes that. So this article makes no promise about placement and none about citations.
Readable is not the same as cited. A page that PerplexityBot can read can still be left out of an answer, and a page it cannot read gives it nothing to show. Readability is the part you control, and SEOgrinder checks only that. It does not measure whether Perplexity names your site. Services that track mentions do a different job, and our article on the AI visibility checker explains the difference.
PerplexityBot and Perplexity-User: two bots, two jobs
Perplexity's page about its crawlers, which we fetched on 4 November 2026, lists two user agents. It adds that each setting works independently and that it may take up to 24 hours for Perplexity's systems to reflect a change.
| User agent | What Perplexity says it is for | What Perplexity says about robots.txt |
|---|---|---|
| PerplexityBot | Designed to surface and link websites in search results on Perplexity. Not used to crawl content for AI foundation models | Perplexity recommends allowing it in robots.txt and permitting requests from its published IP ranges |
| Perplexity-User | Supports user actions: when a user asks a question, it might visit a page to give an accurate answer and include a link to it. Not used for web crawling or to collect content for training AI foundation models | Since a user requested the fetch, this fetcher "generally ignores robots.txt rules" |
Both bots publish their IP ranges as JSON: perplexitybot.json and perplexity-user.json. PerplexityBot is the one built for search results, so the checks below concern it first.
Check 1: robots.txt lets PerplexityBot in
Perplexity writes that it recommends "allowing PerplexityBot in your site’s robots.txt file and permitting requests from our published IP ranges" (Perplexity). The first half is this check. The second half is Check 2.
- Find out which group applies to PerplexityBot. According to RFC 9309, a crawler uses the group that matches its name, and only if none matches does it use the
*group. With no group of its own, aDisallow: /under*blocks PerplexityBot too. With a group of its own, the*rules no longer apply to it. - Wait before you test. Changes can take up to 24 hours, so a test an hour after the edit looks at the old state.
- Keep the file reachable. RFC 9309 says a crawler must assume complete disallow if robots.txt is unreachable because of a server or network error, such as a 500 status. Perplexity does not say how PerplexityBot handles that, so this is the standard and no Perplexity statement.
A common way to fail this check is the trap in the first bullet. The example below closes /private/ for everyone and repeats that rule in the bot's own group:
User-agent: *
Disallow: /private/
# Own group for PerplexityBot: repeat what must stay closed
User-agent: PerplexityBot
Disallow: /private/
Allow: /
Without the repeated Disallow line, /private/ would be open for PerplexityBot. Our article on robots.txt for AI crawlers shows the other pattern, several User-agent lines above one shared set of rules.
Our own file is an example, not a recommendation. On 4 November 2026 we fetched https://seogrinder.com/robots.txt with curl. It names PerplexityBot in one shared group with * and eight other bots, and it allows everything except /api/. That is our decision for this site, and yours can differ.
Check 2: nothing in front of your server turns PerplexityBot away
A robots.txt can say "allowed" while a firewall, the bot protection of a CDN or your host answers the bot with an error. Then the permission exists, and the page does not arrive. Perplexity gives this its own section: with a web application firewall, "you may need to explicitly allow Perplexity’s bots" (Perplexity). Its page has steps for Cloudflare WAF and AWS WAF. These points carry over to any setup:
- Match the name together with the address. Perplexity's examples combine the user agent (contains
PerplexityBot) with a source address from the published ranges, and Perplexity advises using both for security. - Each bot has its own ranges. Match PerplexityBot against its list and Perplexity-User against its own.
- Update the ranges. Perplexity says the addresses are updated regularly and recommends fetching the JSON files automatically. A copy that nobody refreshes goes stale.
- On Cloudflare, mind the order. Perplexity writes that a Skip rule only bypasses rules that run after it, so it belongs above rules that block or challenge. Bot Fight Mode, it adds, cannot be skipped with WAF custom rules and can still challenge Perplexity bots.
- Your server log is the evidence. Search it for
PerplexityBot, not for a version number, which Perplexity says may change. Anyone can write that name into a header, so a visit only counts if its source address is on the published list. Perplexity does not say how often the bot visits, so an empty log is a reason to recheck Check 1 and Check 2, and no proof of a block.
Check 3: the main text is in the HTML without JavaScript
A bot can be allowed, reach your server and still find nothing to read, if your text only appears after a script has run. Perplexity's page does not say whether PerplexityBot runs JavaScript. One measurement is from Vercel and MERJ, published on 17 December 2024 as The rise of the AI crawler. Its finding: none of the major AI crawlers it measured rendered JavaScript, and PerplexityBot was one of them. Google's crawler, which Gemini uses, and AppleBot did render it.
Read that result with care: it is a snapshot from 2024, we know of no newer measurement that we could cite, and it says what a bot reads, not whether a page is cited. Treat it as a warning.
The read test takes a minute and needs only curl. It sends Perplexity's example user-agent string, prints the status code and shows your headline as it arrives in the HTML, without running any script:
curl -sL -A "Mozilla/5.0 (compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)" \
-w "\nstatus: %{http_code}\n" https://www.example.com/your-page | grep -i -E -A2 "<h1|^status:"
If the status is 200 and the output shows your real headline, the text is in the delivered HTML. If it shows an empty shell with a div and a script tag, or no headline, a bot that skips scripts sees the same. Repeat the test with a sentence from your first paragraph, because text that only sits inside a script element does not count. The fix is to render the page on the server or generate it ahead of time, and our article on AI crawlers and JavaScript has two more one-minute tests and the details.
The test shows how your server reacts to the name, not to Perplexity's real addresses. Many protection rules turn away fake bot names and let real bots through by IP address, which is intended. So a 403 is a reason to look at your rules and no proof that the real bot is blocked, and a 200 does not prove that it gets through. The log from Check 2 is the real evidence.
How SEOgrinder helps with the three checks
SEOgrinder is free and needs no account. Enter an address, start the analysis and open the report. Three places matter here:
- AI readiness tab, "Checks for AI agents": the point "Steer AI bots" shows how many AI crawlers have an explicit rule, how many are allowed and how many are blocked, and names the blocked ones. "Rules for bot behaviour" covers robots.txt itself. This is Check 1.
- Tasks tab, "Server may turn away allowed AI crawlers": SEOgrinder tests how the server answers four fixed bot names (GPTBot, ClaudeBot, OAI-SearchBot and PerplexityBot), only those that robots.txt allows, and compares it with a browser. Perplexity-User is not among them, and the test uses only the name. This is Check 2.
- Tasks tab, "The page is only assembled in the browser": the finding appears for pages that need JavaScript to show their content, because many AI crawlers do not run it. This is Check 3.
Press Copy agent prompt at a point to get an instruction for your coding assistant, and press Check again after a change. Reports stay in the cache for up to 24 hours. SEOgrinder does not read your server log and does not measure whether Perplexity names your site.
Common mistakes
- Blocking PerplexityBot to keep content out of AI training. Perplexity says PerplexityBot is not used to crawl content for AI foundation models. It is the search bot.
- Adding a group for one bot and losing the shared rules. The bot's own group replaces the
*group. - Allowing in robots.txt and turning the bot away at the firewall. Check the log, not only the file.
- Pasting IP ranges once and never updating them. The published lists change.
- Testing too early. Perplexity says a change may take up to 24 hours.
- Treating robots.txt as protection. RFC 9309 says the protocol is not a substitute for valid content security measures.
- Reading a pass as a placement. A pass says nothing about whether Perplexity shows or cites your page.
FAQ
Can I make Perplexity cite my page?
No. Nobody can force a citation, and Perplexity's crawler page does not describe a setting that causes one. You can remove blockers so that PerplexityBot can read your pages. Whether Perplexity shows them is its decision.
Do I need to allow Perplexity-User as well?
Perplexity recommends allowing PerplexityBot; for Perplexity-User its page gives no such recommendation. It says Perplexity-User generally ignores robots.txt rules, and its WAF examples cover both bots.
Does blocking PerplexityBot keep my content out of AI training?
Perplexity says PerplexityBot is not used to crawl content for AI foundation models, so this setting is about search results. The page does not describe a training setting, and we say nothing about one.
Does SEOgrinder show whether Perplexity cites my site?
No. It checks the technical basis: whether AI systems can reach and read the page.
Your next step
Open your robots.txt and look at which group applies to PerplexityBot. Run the read test from Check 3 on your most important page and see whether you get status 200 and your headline. Then run the free scan in SEOgrinder, open the AI readiness tab and the Tasks tab, and fix what is open.