Performance
#Cloudflare Workers#Vercel#Edge Compute#Serverless

Cloudflare Workers vs Vercel Edge: A 2026 Latency and Cost Comparison

Same edge function deployed on both platforms for a quarter. p50/p95/p99 numbers, pricing at 14M requests/day, and where each platform wins.

5 min read
Share

Why a Quarter-Long Comparison

Most "Cloudflare Workers vs Vercel Edge" posts are half-day benchmarks on a hello-world function. They tell you nothing about what happens when real traffic and real pricing hit. So we deployed the same edge function on both platforms for a full quarter, same code, same inputs, same upstream, and measured. Both ran globally, both production-grade. Here is where each wins, where each loses, and what surprised us.


The Numbers

Measurements are p50/p95/p99 of total edge-function execution time, not including upstream-fetch time. Sampled across a quarter, geographic distribution roughly weighted to our user base: ~60 percent NA, ~30 percent EU, ~10 percent rest of world.

  • Cold start (p95): Cloudflare Workers 4ms, Vercel Edge 38ms.
  • Hot p50: Workers 2.1ms, Vercel Edge 9.2ms.
  • Hot p95: Workers 5.4ms, Vercel Edge 21ms.
  • Hot p99: Workers 12ms, Vercel Edge 42ms.
  • KV read p95 (regional): Workers KV 1.8ms, Upstash KV on Vercel 8.4ms.
  • Global PoPs: Cloudflare 330+, Vercel Edge ~70.

Cloudflare wins on raw latency by a wide margin, for two reasons. First, more PoPs: CF runs in 330+ cities, Vercel Edge has fewer locations and routes to its own infrastructure. Second, native KV: CF KV is colocated with the Worker; Upstash KV adds a network hop even when in the same region.


Where the "Edge" Runs

This is the detail that matters most and is glossed over most often. Vercel Edge runs in regional zones, not literally at every CDN PoP. For requests far from those zones, the "edge function" is sometimes 30+ms away from the user. Cloudflare Workers run at the PoP serving the user.

This matters most for users in LATAM, Africa, and parts of Asia. Cloudflare served them from a nearby PoP; Vercel Edge routed them to a zone in another country. If your user base is concentrated in NA and EU, the gap is small. If it is global, the gap is structural.


Cost at Real Volume

For our 14M requests/day workload, we needed paid tiers on both. The math:

  • Cloudflare Workers: 14M × 30 ≈ 420M req/mo. With KV: ~$300/mo total.
  • Vercel Edge: ~$650/mo for the request volume + $120/mo for Upstash KV ≈ $770/mo total.

Cloudflare was about 2.5× cheaper for this workload. The base plans tell the same story: CF Workers Paid is $5/mo + $0.30 per million requests; Vercel Edge is included with hosting but bills ~$2.00 per million once you cross the included volume. KV reads and writes widen the gap further because Upstash is priced per-operation on top of the function cost.


Runtime Constraints

Both platforms run V8 isolates, not full Node.js. Out of the box you get Web APIs: fetch, Request, Response, crypto.subtle, TextEncoder. No native modules, no child processes, no raw TCP in the Node sense. This is a feature for cold starts and security isolation, and a constraint for anything that depends on the Node ecosystem.

Cloudflare's nodejs_compat flag closes much of the gap: Buffer has been available for years and node:fs (backed by a virtual filesystem) landed in 2025, but it is still not a full Node runtime. Vercel's edge runtime is stricter and has no equivalent flag. If you need sharp for image processing, a database driver that uses TCP sockets, or anything that spawns child processes, you need a Node.js function, Vercel Fluid Compute or a separate Worker with a Node binding, not the edge runtime.


Where Vercel Wins

Cloudflare wins on raw edge performance and cost at scale. Vercel wins on developer experience for Next.js teams. The git-to-deploy workflow, preview deployments per PR, framework-level middleware, A/B testing, and auth checks for Next.js routes are tighter on Vercel than anywhere else. If you are already on Vercel for hosting, the edge functions are effectively free to add and the DX is frictionless.

Vercel Fluid Compute (launched February 2025 and the default for new projects since April 2025) also matters here. It runs Node.js with up to 4GB memory and 800s execution time on Pro plans, which covers workloads Cloudflare Workers cannot: heavy compute, image transforms, long-running tasks. Different tool for a different job.


Decision Framework

Choose Cloudflare Workers if:

  • 330-PoP global presence matters and your users are not concentrated in NA/EU.
  • You need WebSockets or Durable Objects for stateful coordination.
  • Cost is decisive at 10M+ requests per month.
  • You want bundled D1, KV, R2, Queues storage on one bill.

Choose Vercel's edge runtime (middleware and edge functions) if:

  • You are already on Vercel and need low-latency middleware, A/B testing, or auth for Next.js routes.
  • DX and git-to-deploy matter more than the last millisecond of latency.
  • Your traffic is NA/EU-concentrated and the PoP gap is small.

Choose Vercel Fluid Compute (or Lambda), not edge, if you need full Node.js, native modules, or long-running compute. Since mid-2025 Vercel itself recommends the Node.js runtime on Fluid over the edge runtime for most new functions, so on Vercel the edge runtime is best kept for thin middleware.


Final Thoughts

There is no single winner. Cloudflare Workers is the default for new edge compute projects in 2026: zero cold starts, 330+ PoPs, an exceptional platform ecosystem, and the best price/performance at volume. Vercel Edge is the right choice when you are already in the Next.js ecosystem and the DX premium is worth the latency and cost premium. Run both on your own traffic for a week before you commit. The numbers in this article are ours; yours will differ, and the only way to know is to measure.

Cloudflare WorkersVercelEdge ComputeServerless