Platforms

Cloudflare

A site proxied by Cloudflare is recognisable from the `cf-ray` header and a `Server: cloudflare` header on its responses, and its cache behaviour is readable in `cf-cache-status`. What those headers cannot show matters as much: whether the connection from Cloudflare to the origin is encrypted — in Flexible mode it is not — and whether every web-serving DNS record is proxied, since a DNS-only record answers with the origin's real address.

How the engine recognises it

A `cf-ray` header — weight 90. Cloudflare's documentation describes it as a hashed value identifying the data center that processed the request, ending in a three-letter location code.

A `Server: cloudflare` header — weight 90.

Nameservers under Cloudflare are read separately and reported as Cloudflare DNS.

DNS on Cloudflare and proxying through Cloudflare are different setups, and the diagnostic check reports them as separate facets.

Reading cf-cache-status

`HIT` means the response came from Cloudflare's cache; `MISS` means it was eligible for cache and fetched from the origin because it was not there yet.

`BYPASS` means the asset was eligible but the origin response was not cacheable — for example `no-store` in a CDN cache header, or, in some configurations, a `Set-Cookie` header.

`DYNAMIC` means the asset was not eligible for cache at all: by default HTML and JSON are not among the file extensions Cloudflare caches, unless a rule says otherwise.

So `DYNAMIC` on HTML pages is the default, not a fault, while `BYPASS` everywhere usually points to cache directives or cookies the origin sends with every response.

Proxied and DNS-only records

A proxied record is answered with Cloudflare's shared anycast addresses, so web traffic goes through Cloudflare.

A DNS-only record is answered with the origin's actual address, which, in Cloudflare's own words, exposes the origin IP to anyone who queries it.

Only A, AAAA and CNAME records can be proxied; MX and TXT records are always DNS-only.

One DNS-only name pointing at the same server as the proxied site is enough for someone to reach the origin directly and bypass the protection.

What the edge hides: the origin connection

In Flexible encryption mode, Cloudflare's documentation says visitors connect to Cloudflare over HTTPS while all connections between Cloudflare and the origin use plain HTTP.

The visitor still sees a valid certificate and a padlock, so nothing on the public side reveals it.

In Full mode Cloudflare matches the visitor's protocol when connecting to the origin and does not validate the origin's certificate; Full (strict) adds that validation.

This is the one Cloudflare setting that matters most and that no external audit can observe: it must be checked in the dashboard.

Which checks apply

`infrastructure.cloudflare` reports each facet separately: DNS, proxy, cache status, and Workers and WAF only where signals exist.

`infrastructure.cdn` and `infrastructure.cache_state` report the edge and whether a response really came from cache.

`performance.cdn_cache_status` reports cache status across the pages crawled.

`infrastructure.origin_exposure` and `infrastructure.ip_dns_consistency` report signs that the origin is reachable around the edge.

`infrastructure.waf` and `infrastructure.ddos_protection` report protection signals, and say when they are not publicly verifiable.

The Ray ID in both directions

Cloudflare's header reference says the `Cf-Ray` value is also sent to the origin, and recommends adding it to the origin's logs to match proxied requests with server log lines.

It notes that with Argo Smart Routing or tiered caching, the location code may reflect the data center that connected to the origin rather than the one the visitor reached.

When an audit reports an error on a Cloudflare-proxied page, the Ray ID in its evidence is what locates the same request in both Cloudflare's and the origin's logs.

Frequently asked questions

Why do my HTML pages show cf-cache-status: DYNAMIC?
Because HTML is not among the file extensions Cloudflare caches by default. Pages are cached only if a rule makes them eligible.
Can someone reach my server without going through Cloudflare?
Yes, if they learn its address — a DNS-only record pointing at the same server is the usual way. Proxy every web-serving record and restrict the origin to Cloudflare.
Can an audit tell whether I use Flexible SSL?
No. Visitors see Cloudflare's certificate either way. Check the encryption mode in the dashboard; Flexible leaves the origin connection unencrypted.

Sources

Related

VeriFixScan crawls a site and applies its checks to every page it reaches, keeping the evidence behind each finding. Scanning one website is free.

Scan a website