When you score CDN alternatives, treat origin egress and cacheability as first-class columns next to POP count. A “cheaper” edge that cannot honour public + s-maxage (or that fragments the key on Cookie / Authorization / overly wide Vary) still walks most traffic to origin, so you pay edge request fees plus full origin bytes. Compare how each provider surfaces HIT/MISS/BYPASS, whether Tiered Cache / origin shield collapses multi-POP stampedes, and how purge granularity works — path-only versus Surrogate-Key / cache-tag style invalidation for HTML shells that change every deploy while hashed assets stay immutable.
Ops prove-out on a real host before migrating: publish one document route with short s-maxage and one content-hashed asset with long immutable Cache-Control, request each twice from a clean client, and read the provider’s cache-status header. If the document never HITs, fix headers and keying before blaming the vendor list. Watch origin request rate and egress for that hostname across a deploy window; a switch that only moves MISS traffic to a new brand rarely shrinks the invoice.