In short. Perplexity's AWS WAF setup pairs bot IP sets with User-Agent conditions and places Allow rules before blocking rules.
Definition: Allowing Perplexity bots through AWS WAF, Amazon's web application firewall, means matching each bot's published IP addresses together with its User-Agent request header, then applying an Allow action before blocking rules run.
Key facts
- As of October 2026, Perplexity's crawler setup guide specifies separate IP sets and corresponding User-Agent conditions for PerplexityBot and Perplexity-User.
- AWS's IP set documentation says a match uses the request's origin IP address by default.
- AWS's priority documentation places rules with lower numeric priorities earlier in evaluation.
- AWS's action documentation states that Allow stops further evaluation of the matching request within the web ACL, the rule collection that controls access.
How are the IP sets prepared?
An IP set is an AWS resource containing addresses or address ranges for rule matching. Perplexity's official guide supplies these feeds, respectively for PerplexityBot and Perplexity-User:
https://www.perplexity.com/perplexitybot.json
https://www.perplexity.com/perplexity-user.json
AWS's IP set creation procedure starts at IP sets, then Create IP set. The region setting must suit the protected resource: Global (CloudFront) applies to CloudFront distributions; regional sets serve regional resources. The address field accepts one address or range per line in CIDR notation, which expresses an address and its network prefix length.
How are the User-Agent conditions combined?
The User-Agent header identifies the client software in a request. Perplexity's AWS setup instructions pair each bot's IP set with its corresponding header string and assign Allow to the combined rule.
The header search values are:
PerplexityBot
Perplexity-User
AWS's string match reference offers Contains string, which searches anywhere within the selected request component. Applied to the User-Agent header, this matches a bot token within a longer header value. Each allow rule requires both the IP match and its corresponding header match. The same AWS reference distinguishes Exactly matches string, which requires the entire component value to equal the search string.
Where do the allow rules belong?
AWS's evaluation order documentation explains that the console assigns numeric priorities from the order displayed in the rule list. Moving an allow rule above a blocking rule gives it earlier evaluation. Each rule has a unique priority within its web ACL or rule group.
According to AWS's action reference, both Allow and Block terminate evaluation. An earlier Block match therefore prevents a later Allow rule from taking effect. An earlier Allow match also bypasses the remaining rules in that web ACL. This makes the combined IP and header conditions consequential to the scope of the exception.
How is the configuration maintained?
Perplexity's maintenance guidance calls for periodically refreshing the address feeds and monitoring logs after WAF changes. AWS's IP set match reference says updates to a referenced set automatically apply to every rule using it. Maintaining the set therefore updates its consumers without recreating each matching rule.
Related terms
FAQ
Can I use Count while checking the rule?
AWS's action documentation says Count records a match and continues evaluation. If you use Count during testing, later rules can still block the request; the documented access exception uses Allow.
Can I reuse an IP set across rules?
Yes. AWS's IP set match documentation permits multiple rules to reference the same set. When you update that set, AWS WAF applies the change to all referencing rules.
Sources
- Perplexity, "Perplexity Crawlers", undated
- AWS, "Creating and managing an IP set in AWS WAF", undated
- AWS, "IP set match rule statement", undated
- AWS, "String match rule statement", undated
- AWS, "Setting rule priority", undated
- AWS, "How AWS WAF handles rule and rule group actions", undated
Check how a page reads to answer engines. Open the GEO score analyzer