How to Show Up in Perplexity Answers (2026)
We rank PerplexityBot access first, then a citation tracker. Perplexity-User is a live fetch that generally ignores robots.txt. Schema is not the lever.
Perplexity publishes crawler rules. We rank tools after you follow them. Official page: Perplexity crawlers. Showing up means a numbered source you control, not a brand name in passing.
The distinction is the whole article. A brand name in the prose is a mention. A numbered source is a citation with a URL the reader can click. Perplexity is built around the numbered source. The footnote is the product. If you measure mentions and call it showing up, you will report a win on a prompt where Perplexity handed the click to a listicle. The rest of this post is the order of operations to turn a mention into a numbered source, and the tools that prove it happened.
Rank 0: their bots
PerplexityBot: search surfacing, not foundation-model crawl, allow in robots.txt, IPs at perplexitybot.json, up to 24 hours. Full UA includes PerplexityBot/1.0.
Perplexity-User: user-triggered fetch so an answer can include a link. Generally ignores robots.txt. IPs at perplexity-user.json. Auth hides drafts. Disallow does not.
The two agents do different jobs and respond to different controls. PerplexityBot is the one you allow in robots.txt if you want to be in the search index. Perplexity-User is the one that fetches a page because a human asked a question, and a robots.txt disallow is not the right lever for it. If you need to keep a draft private, put it behind authentication. A disallow rule on User is a request, not a wall, and Perplexity's own docs say it generally does not apply. Treating the two agents as the same thing is the first mistake teams make.
WAF: user-agent plus IP, Cloudflare and AWS examples in their docs. Custom rule: UA contains PerplexityBot or Perplexity-User, and source IP is in the JSON ranges, action Allow. Refresh the JSON. They say it is the source of truth and it changes. Fail the ranking if you only edited robots.txt and never opened the firewall.
The WAF is the part that bites teams who did the robots.txt work and stopped. A green robots.txt with a red firewall still 403s the bot. The bot never reads the page. The model never sees the claim. The fix is to match both the user agent string and the published IP ranges, and to refresh the JSON on a schedule because Perplexity says it changes. Pasting CIDRs from a Slack screenshot is how a rule rots. The published JSON is the source of truth, and the docs say so.
Rank 1: software that stores the citation
Promptwatch first in our list: Perplexity on paid UI monitoring, page-level citations, and visitor analytics for referred sessions on Essential at $95/mo. PerplexityBot appears in Agent Analytics on Professional at $245/mo or an agency plan. Explore skips Perplexity (ChatGPT only). Daily paid checks. Not instant alerts.
The plan ladder matters here. Explore is free and ChatGPT only, so it cannot answer a Perplexity question. Essential is the first plan that stores Perplexity citations and the referred sessions that come back from them. Professional is the first brand plan that adds the crawler log, so you can see whether PerplexityBot actually fetched the page before you blame the content. The agency plans carry the same crawler log for a roster of brands. The "not instant alerts" line is a cadence claim: the checks run daily from the real UI, not on a webhook the second a prompt changes.
Otterly.AI: Perplexity in the $29 base four. Thermometer. Possible week lag. No crawler-log product on our listing. Profound Starter: ChatGPT-only. Wrong engine. Peec AI last.
Otterly is the cheap on-ramp and it does include Perplexity in the base four engines. The catch is the lag, up to a week, and the absence of a crawler log on our listing. A thermometer tells you the temperature. It does not tell you why. Profound Starter is the wrong engine for this title because it tracks ChatGPT only. Peec stays last in our ranking for this query, consistent with the directory rule.
Rank 2: a page that is not a clone
Public HTML. Unique facts. Google's generative guide is optional reading, not Perplexity policy. llms.txt is not on Perplexity's crawler page as a requirement. There is no submit console.
The page itself is the lever, not a schema type or a submission form. Perplexity does not run a Search Console where you submit a sitemap. The way in is to publish a page with a claim that is yours, in HTML the bot can fetch, and then to prove the bot fetched it. The Google guide is useful reading on what makes a page unique versus commodity, but it is not Perplexity policy. llms.txt is not on their crawler page as a requirement, so do not treat it as an access ticket.
22M+ monthly active users is the scale we cite from the Promptwatch sheet. Smaller than ChatGPT (820M+ weekly on the same sheet). Still worth a row in a ranking if buyers use it. Explore will not answer this title. Essential is the first Perplexity desk.
The user count is context for whether to bother. Perplexity is smaller than ChatGPT by a wide margin on the same fact sheet. It is still 22 million monthly actives, which is enough that a buyer who named Perplexity in the brief will not accept an empty column. The free plan cannot answer this title because it skips Perplexity. Essential is the first desk that stores the Perplexity answer.
Freeze the purchase questions, including vs-queries. Run them for two weeks. Record the cited host. Named-only is a different KPI. On Professional or an agency plan, stop the writer if Bot never 200s. Wait the 24 hours Perplexity documents after a robots.txt change before you call the allow-list a failure.
The two-week freeze is the method. If you change the prompts every day, you cannot tell what moved. If you keep them stable, a change in the cited host maps to a change you made. Named-only is a different KPI from cited, so report them as two lines. The "stop the writer" rule is the crawler-log rule: if PerplexityBot never returns a 200 on the candidate page, more copy will not help, because the bot cannot read it. The 24-hour wait is Perplexity's documented propagation time, not a guess.
A WAF that matches the UA string but not the JSON IPs will still 403. Their Cloudflare sketch is Security, WAF, custom rules, UA contains PerplexityBot or Perplexity-User, and IP is in the published ranges, action Allow. AWS is IP sets plus string matches, higher priority than block rules. Fetch the JSON on a schedule. Do not paste CIDRs from a Slack screenshot.
The failure mode is a rule that matches the user agent but not the IP. The bot announces itself as PerplexityBot, the WAF sees the string, and then the IP is not in the allowlist because the team pasted old CIDRs. The 403 still fires. The fix is the Cloudflare sketch: match both the UA string and the IP range, and fetch the JSON on a schedule so the ranges stay current.
Visitor analytics (script or GTM) can catch a referred session. That is not a numbered citation. Report both. Do not average them. If Reddit is the numbered source, that is an offsite ticket. If /blog/2019 is the source, fix that URL.
Two objects, two reports. A referred session is a click that came back from Perplexity. A numbered citation is a URL in the answer. They are not the same thing, and averaging them hides the difference. If Reddit is the numbered source, the ticket is to win the thread or build a page that makes it redundant. If an old blog post is the source, the ticket is to redirect or rewrite that URL, not to publish a new one.
Search Console will not tell you if Perplexity numbered you. Overviews are Google. Keep those reports in a different column. PerplexityBot's full UA includes PerplexityBot/1.0 and a docs link. User's UA includes Perplexity-User/1.0. Match both at the WAF with the matching JSON. They say WAF changes take time. On Professional or an agency plan, watch logs before you rewrite.
GSC is a Google tool. It does not store Perplexity citations. Keep the Google column in GSC and the Perplexity column in the visibility platform. The two user agents have distinct UA strings, and the WAF rule should match each with its own JSON. The "watch logs before you rewrite" rule is the same one as above: if the bot is not fetching the page, rewriting the copy is the wrong sprint.
Show up = stored Perplexity answer with your URL after a Bot 200. That is the ranking. Everything else is commentary. Content Agents stay closed on a 403. WordPress publishing is not live. Visitor analytics is referral, not the numbered source. Product: promptwatch.com.