Cookie Consent by Free Privacy Policy Generator Perplexity-User User Agent - Perplexity AI Bot Details | CL SEO

Perplexity-User

Perplexity AI Since 2024
Ai Search Respects robots.txt
#ai #perplexity #search #browsing
Quick Actions
Official Docs

What is Perplexity-User?

Perplexity-User is the user agent used when Perplexity AI's search engine fetches web content in real-time to answer user queries. Unlike PerplexityBot which performs background crawling for indexing, Perplexity-User is triggered by specific user questions and retrieves content on demand. It respects robots.txt directives and operates transparently. Website owners can distinguish between Perplexity's indexing crawler and its user-facing search fetcher to make separate access decisions.

User Agent String

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user)

How to Control Perplexity-User

Block Completely

To prevent Perplexity-User from accessing your entire website, add this to your robots.txt file:

# Block Perplexity-User User-agent: Perplexity-User Disallow: /

Block Specific Directories

To restrict access to certain parts of your site while allowing others:

User-agent: Perplexity-User Disallow: /admin/ Disallow: /private/ Disallow: /wp-admin/ Allow: /public/

Set Crawl Delay

To slow down the crawl rate (note: not all bots respect this directive):

User-agent: Perplexity-User Crawl-delay: 10

How to Verify Perplexity-User

Verification Method:
Verify requests originate from Perplexity AI IP ranges

Learn more in the official documentation.

⚠️ AI Training Notice
This bot may collect and use your website content for AI model training. Consider whether you want your content used for this purpose before allowing access.

Detection Patterns

Multiple ways to detect Perplexity-User in your application:

Basic Pattern

/Perplexity\-User/i

Strict Pattern

/^Mozilla/5\.0 AppleWebKit/537\.36 \(KHTML, like Gecko; compatible; Perplexity\-User/1\.0; \+https\://perplexity\.ai/perplexity\-user\)$/

Flexible Pattern

/Perplexity\-User[\s\/]?[\d\.]*?/i

Vendor Match

/.*Perplexity AI.*Perplexity\-User/i

Implementation Examples

// PHP Detection for Perplexity-User function detect_perplexity_user() { $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? ''; $pattern = '/Perplexity\\-User/i'; if (preg_match($pattern, $user_agent)) { // Log the detection error_log('Perplexity-User detected from IP: ' . $_SERVER['REMOTE_ADDR']); // Set cache headers header('Cache-Control: public, max-age=3600'); header('X-Robots-Tag: noarchive'); // Optional: Serve cached version if (file_exists('cache/' . md5($_SERVER['REQUEST_URI']) . '.html')) { readfile('cache/' . md5($_SERVER['REQUEST_URI']) . '.html'); exit; } return true; } return false; }
# Python/Flask Detection for Perplexity-User import re from flask import request, make_responsedef detect_perplexity_user(): user_agent = request.headers.get('User-Agent', '') pattern = r'Perplexity-User' if re.search(pattern, user_agent, re.IGNORECASE): # Create response with caching response = make_response() response.headers['Cache-Control'] = 'public, max-age=3600' response.headers['X-Robots-Tag'] = 'noarchive' return True return False# Django Middleware class PerplexityUserMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): if self.detect_bot(request): # Handle bot traffic pass return self.get_response(request)
// JavaScript/Node.js Detection for Perplexity-User const express = require('express'); const app = express();// Middleware to detect Perplexity-User function detectPerplexityUser(req, res, next) { const userAgent = req.headers['user-agent'] || ''; const pattern = /Perplexity-User/i; if (pattern.test(userAgent)) { // Log bot detection console.log('Perplexity-User detected from IP:', req.ip); // Set cache headers res.set({ 'Cache-Control': 'public, max-age=3600', 'X-Robots-Tag': 'noarchive' }); // Mark request as bot req.isBot = true; req.botName = 'Perplexity-User'; } next(); }app.use(detectPerplexityUser);
# Apache .htaccess rules for Perplexity-User# Block completely RewriteEngine On RewriteCond %{HTTP_USER_AGENT} Perplexity\-User [NC] RewriteRule .* - [F,L]# Or redirect to a static version RewriteCond %{HTTP_USER_AGENT} Perplexity\-User [NC] RewriteCond %{REQUEST_URI} !^/static/ RewriteRule ^(.*)$ /static/$1 [L]# Or set environment variable for PHP SetEnvIfNoCase User-Agent "Perplexity\-User" is_bot=1# Add cache headers for this bot <If "%{HTTP_USER_AGENT} =~ /Perplexity\-User/i"> Header set Cache-Control "public, max-age=3600" Header set X-Robots-Tag "noarchive" </If>
# Nginx configuration for Perplexity-User# Map user agent to variable map $http_user_agent $is_perplexity_user { default 0; ~*Perplexity\-User 1; }server { # Block the bot completely if ($is_perplexity_user) { return 403; } # Or serve cached content location / { if ($is_perplexity_user) { root /var/www/cached; try_files $uri $uri.html $uri/index.html @backend; } try_files $uri @backend; } # Add headers for bot requests location @backend { if ($is_perplexity_user) { add_header Cache-Control "public, max-age=3600"; add_header X-Robots-Tag "noarchive"; } proxy_pass http://backend; } }

Should You Block This Bot?

Recommendations based on your website type:

Site TypeRecommendationReasoning
E-commerce Allow Essential for product visibility in search results
Blog/News Consider Blocking Your content may be used for AI training without compensation
SaaS Application Block No benefit for application interfaces; preserve resources
Documentation Allow Improves documentation discoverability for developers
Corporate Site Allow Allow for public pages, block sensitive areas like intranets

Advanced robots.txt Configurations

E-commerce Site Configuration

User-agent: Perplexity-User Crawl-delay: 5 Disallow: /cart/ Disallow: /checkout/ Disallow: /my-account/ Disallow: /api/ Disallow: /*?sort= Disallow: /*?filter= Disallow: /*&page= Allow: /products/ Allow: /categories/ Sitemap: https://example.com/sitemap.xml

Publishing/Blog Configuration

User-agent: Perplexity-User # Blocking AI training bot Disallow: /

SaaS/Application Configuration

User-agent: Perplexity-User Disallow: /app/ Disallow: /api/ Disallow: /dashboard/ Disallow: /settings/ Allow: / Allow: /pricing/ Allow: /features/ Allow: /docs/

Quick Reference

User Agent Match

Perplexity-User

Robots.txt Name

Perplexity-User

Category

ai, search

Respects robots.txt

Yes
Copied to clipboard!