Orange Book
CDN and web performance

15 · End-to-end performance verification and diagnosis

Use evidence from DNS, TLS/protocol, cache, origin transit, application, and Core Web Vitals to locate where a site is actually slow.

Edited and verified by Orange Book Editorial Team ·

CDN · PHASE 5TROUBLESHOOTINGAbout 34 minutesDNS · Cache · Origin · CWV

Outcome

Every "the site is slow" report will produce the same evidence packet: URL, UTC time, region and network, protocol, CF-Ray, cache status, curl phase timings, browser HAR, Origin Analytics, and origin logs. The team can locate the layer instead of toggling features in turn.

Performance diagnosis from DNS through Cloudflare edge, cache, origin network, application, and browser experience
A page can be slow in lookup, connection, cache, network, application, or rendering. Locate the layer before changing a setting.Open original
Detailed description
A browser resolves through Cloudflare DNS, then connects to the Cloudflare edge using TLS and an HTTP protocol. The edge checks cache and contacts the origin application through the origin network when needed. The evidence layer maps protocol and Ray ID, CF-Cache-Status, Origin Analytics, and real-user Core Web Vitals to those stages.
  1. 01
    DNS and connection

    Inspect authoritative resolution, client network, TCP/QUIC, TLS, and HTTP protocol.

  2. 02
    Edge and cache

    Use CF-Ray, CF-Cache-Status, Age, and rules to explain whether the origin was contacted.

  3. 03
    Origin path and application

    Align Origin Analytics and origin APM to separate transit from server processing.

  4. 04
    Real page experience

    Use p75 LCP, INP, CLS, and HAR to locate resource and main-thread problems.

Generate a command-line timing profile first

curl -sS -o /dev/null -D response.headers \
  -w 'dns=%{time_namelookup}\nconnect=%{time_connect}\ntls=%{time_appconnect}\nttfb=%{time_starttransfer}\ntotal=%{time_total}\nremote_ip=%{remote_ip}\nhttp=%{http_version}\n' \
  https://www.example.com/test-path

Run the same URL at least three times and retain first and subsequent samples. Record UTC, test region, network type, and VPN use. Preserve CF-Ray, CF-Cache-Status, Age, Cache-Control, status, and Server-Timing when the application provides it.

Locate the layer from the symptom

SymptomMore likely layerFirst evidence
High dns or intermittent resolutionDNS/local resolverdig, authoritative NS, DNSSEC, another resolver
High connect/tlsClient network, protocol, TLSRegion, HTTP version, certificate, UDP fallback
Static object always DYNAMICCache eligibility/ruleExtension, Trace, response headers, Proxied state
Same colo gets much faster after MISS → HITEdge CacheCF-Ray suffix, Age, object version
Fast HIT, slow page LCPFrontend resources/main threadHAR, LCP element, JS long tasks, image
High dynamic TTFB, low origin APMOrigin transitSame-window difference between Origin Analytics and APM
High dynamic TTFB and high APMApp/database/external APIPath-level p95/p99, query and dependency traces
One region onlyClient or long-distance pathRegion grouping, Argo Analytics, mobile/Wi-Fi comparison

Six-layer diagnostic workflow

Fix the problem definition

Write one URL, one observable symptom, its UTC window, affected region, and success threshold. "The whole site is slow" cannot produce a testable hypothesis.

Inspect DNS and proxy path

dig NS example.com +short
dig A www.example.com +short

Confirm nameservers, DNSSEC, and orange-cloud behavior. If one subdomain fails, do not switch the entire zone's nameservers.

Inspect TLS and HTTP protocol

Confirm HTTPS, HTTP/2 or HTTP/3 negotiation, and certificate state with curl or the browser. When HTTP/3 falls back to h2, inspect client and UDP network support before disabling the zone feature.

Inspect cache and rules

Request the same static URL repeatedly and combine Trace with DYNAMIC/BYPASS/MISS/HIT/UPDATING. A dynamic identity route remaining uncached can be the correct outcome.

Align Origin Analytics and origin logs

Origin Analytics includes Cloudflare's complete upstream round trip, while origin APM often measures only server processing. Align the same Path, UTC time, status, and Ray ID to separate transit from application work.

Return to real-user page experience

Observatory synthetic tests provide repeatability. Web Analytics/RUM p75 LCP, INP, and CLS reflect real visitors. Segment by Country, Browser, OS, URL, and Element rather than replacing a trend with one Lighthouse score.

Report cold and warm cache separately

The first Cloudflare test can be a MISS while a later run represents a stable HIT. Keep both. Cold-cache results answer what a new region or post-release request experiences; warm-cache results answer normal repeat traffic. Choosing only the fastest run hides origin and tiered-cache problems, while choosing only the first understates normal CDN benefit.

Minimum evidence packet

  • Full URL with sensitive query values redacted, UTC window, region, ISP, and network type.
  • At least three curl timing profiles and complete response headers.
  • Browser HAR, Protocol column, LCP element, and Console errors.
  • Cloudflare Trace plus Cache Analytics, Origin Analytics, or Argo Analytics export/screenshot.
  • Origin access logs and application/database trace aligned by Ray ID or application request ID.
  • Recent DNS, TLS, Cache Rules, release, origin, and third-party dependency changes.

Change one layer at a time

Enabling Argo, HTTP/3, Early Hints, Cache Everything, and image transformations together destroys attribution and expands rollback. Every experiment needs a hypothesis, metric, observation window, and stop condition.

For cache states, use the CF-Cache-Status handbook. For 5xx, use layered Cloudflare 5xx diagnosis. Completing this page finishes the 15-topic CDN learning path.

Primary sources

Did this page help you complete your goal?

Beta feedback is generated in this browser and is never uploaded automatically.

On this page