?? Technical Fix Editorial

Why Your Website is Invisible to Perplexity Pro: The CDN & JS Guide (2026)

? Quick Answer

Most websites are invisible to Perplexity Pro due to three solvable problems: Cloudflare Bot Management blocking PerplexityBot, critical content rendered client-side in JavaScript (which Perplexity cannot execute), and robots.txt files that implicitly disallow AI crawlers. Each is fixable in under 30 minutes.

Perplexity Pro now drives over 100 million queries per month for software buyers, agency directors, and technical teams. If your brand is not appearing in Perplexity's sourced answers, you're not just missing traffic — you're being passed over at the exact moment someone is ready to buy.

The 3 Invisible Blockers

1. Cloudflare Bot Management is Blocking PerplexityBot

Cloudflare's Bot Fight Mode is enabled by default on millions of sites. It classifies PerplexityBot — a legitimate, commercially significant crawler — as a malicious automated agent unless explicitly allowlisted via a custom WAF rule.

? Fix: Cloudflare WAF Custom Rule

# Cloudflare WAF ? Custom Rules ? Create Rule
# Expression:
(http.user_agent contains "PerplexityBot")
# Action: Skip ? Bot Fight Mode

# Also add rules for:
(http.user_agent contains "GPTBot")
(http.user_agent contains "ClaudeBot")
(http.user_agent contains "anthropic-ai")
(http.user_agent contains "Google-Extended")

2. Client-Side JavaScript Makes Your Content Invisible

PerplexityBot fetches raw HTML only — it does not execute JavaScript. If your H1, body text, and schema markup are injected by React after page load via useEffect or client-side data fetching, Perplexity sees an empty shell.

? Fix: Server-Side Rendering (Next.js 14+ App Router)

// ? INVISIBLE TO PERPLEXITY
"use client";
useEffect(() => {
  fetch('/api/content').then(r => setContent(r));
}, []);

// ? VISIBLE TO PERPLEXITY — Server Component
// app/blog/[slug]/page.tsx
export default async function Page({ params }) {
  const content = await fetchContent(params.slug); // runs on server
  return <article>{content.body}</article>;
}

3. robots.txt is Silently Blocking AI Crawlers

A restrictive User-agent: * / Disallow: / with only Googlebot and Bingbot explicitly allowed blocks every AI crawler including PerplexityBot, GPTBot, and ClaudeBot.

? Fix: AI-Inclusive robots.txt Template

User-agent: *
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: anthropic-ai
Allow: /

User-agent: Google-Extended
Allow: /

Sitemap: https://yourdomain.com/sitemap.xml

Quick Verification Checklist

1
Cloudflare WAF: PerplexityBot, GPTBot, ClaudeBot, anthropic-ai ? Skip Bot Fight Mode
2
robots.txt: Explicit Allow: / blocks for all major AI User-Agents
3
Rendering: H1, meta description, body copy, and schema in server-rendered HTML
4
JSON-LD: Injected in <head> server-side — not via client JavaScript
5
Validation: Run Optymia AI Visibility Checker to confirm AI-readable output
Free Perplexity Visibility Test

Is PerplexityBot Actually Crawling Your Site?

Run a live diagnostic to check if PerplexityBot, GPTBot, and ClaudeBot can access and read your pages. Instant results, 100% free.

Instant Results
•100% Free Live Diagnostic•Used by 1,400+ SaaS Founders & Agencies

Frequently Asked Questions

Does Cloudflare block Perplexity Pro by default??

Yes. Cloudflare Bot Fight Mode classifies PerplexityBot as a threat unless you create a WAF skip rule.

Does Perplexity execute JavaScript when crawling??

No. PerplexityBot fetches raw HTML only. Client-side React/Vue content is completely invisible to its indexer.

What User-Agent does PerplexityBot use??

PerplexityBot/1.0 (+https://docs.perplexity.ai/bots). Whitelist by matching 'PerplexityBot' in your WAF and robots.txt.

How do I verify Perplexity can read my site??

Use Optymia's free AI Visibility Checker at optymia.xyz to simulate a PerplexityBot fetch and see exactly what's visible.