Home / How to check if a website uses Cloudflare

Guide · Detection

How to check if a website uses Cloudflare

By SearchWebCode · Updated November 7, 2026 · Detection · 2 min read

Check the main document response for cf-ray. In source, inspect /cdn-cgi/ references. Cloudflare nameservers, Turnstile and cdnjs answer different questions about the site's setup.

To check whether a page's traffic passes through Cloudflare, start with its response headers. DNS and source-code references help identify other Cloudflare services, but they should not be treated as equivalent evidence.

Read the page's response headers

In DevTools → Network, select the main document and inspect Response Headers. From a terminal:

curl -sS -L -D headers.txt -o /dev/null https://example.com/
grep -iE '^(cf-ray|cf-cache-status|server):' headers.txt

cf-ray is Cloudflare's request identifier. Its presence on the document response is evidence that the response passed through Cloudflare. server: cloudflare and cf-cache-status can provide additional context. See Cloudflare's header reference.

If the URL redirects, check which response each header belongs to. Also record the hostname: the main site and a shop subdomain can use different infrastructure. A hosting platform may supply Cloudflare on its customers' behalf, so the headers do not identify who controls the Cloudflare account.

Interpret the source markers

ReferenceWhat it tells you
/cdn-cgi/A Cloudflare endpoint or injected feature. Check whether the URL belongs to the page's hostname.
/cdn-cgi/l/email-protection, data-cfemailEmail-obfuscation markup associated with Cloudflare processing.
/cdn-cgi/challenge-platform/Challenge or bot-check code in the captured page.
challenges.cloudflare.com/turnstile/A Turnstile widget, which can be used without Cloudflare's proxy.
static.cloudflareinsights.com/beacon.min.jsA Web Analytics beacon; its presence alone does not prove proxying.
cdnjs.cloudflare.comA public library CDN that any site can reference.

The /cdn-cgi/ sample reports 7,083,965 estimated matches. Retained examples from medium.com and stackoverflow.com contain challenge-platform paths. This source count misses proxied pages with no visible injected feature; it is not a count of every Cloudflare customer.

Check DNS without confusing it with the proxy

dig +short NS example.com shows authoritative nameservers. Names ending in ns.cloudflare.com identify a Cloudflare DNS setup, but an individual hostname can still be configured as DNS-only. Check the document response to establish whether that request was proxied.

Custom nameservers and partial setups can obscure the provider's name. If you inspect an address, compare it with Cloudflare's current IP ranges rather than a hard-coded list.

Find Cloudflare references across websites

Search "/cdn-cgi/" for general endpoint references, "/cdn-cgi/challenge-platform/" for challenge markup, or "challenges.cloudflare.com/turnstile/" for Turnstile. Inspect the matched context and then check live headers for the domains where proxy status matters.

The Next.js guide checks the application framework separately. The HubSpot guide shows how CMS evidence can coexist with Cloudflare headers. Other providers' source markers are in the CDN and hosting directory.

Source counts checked 2026-10-14. They describe stored homepages, not live installations. How the counts are measured.

Frequently asked questions

Does cdnjs.cloudflare.com mean the site is behind Cloudflare?

No. It is a public CDN for libraries. The page can load a file from it while using another provider for its own traffic.

Can a site use Turnstile without Cloudflare DNS or proxying?

Yes. A Turnstile widget is a standalone product reference. Check the site's own response headers and DNS separately.

Does an absent /cdn-cgi/ path rule out Cloudflare?

No. A proxied page may contain no feature that injects such a path. Use the current document response for the proxy check.