ServerBudget

Hetzner vs DigitalOcean: the numbers agree, the benchmarks don't

By Marcus Reid · Published Oct 25, 2026 · Last updated Oct 25, 2026 · 8 min read

The short answer. Choose DigitalOcean when the box has to sit near users on more than one continent, or when you want a managed database in the same console. Choose Hetzner when the workload runs hot for hours and Europe is an acceptable home. The price gap is genuine — at 2 vCPU and 4 GB, DigitalOcean's Basic Droplet is $24 and Hetzner's CX23 is €5.99 — but three things vanish from almost every comparison you will read. Hetzner hands you exactly half the disk at every matching tier. Both vendors' cheap plans are bursty shared CPU, so "Hetzner shares cores" is not an argument. And the load tests that get passed around reach opposite conclusions, because they measured different applications, not different hosts.

The two price tables, matched

Cores / RAMDigitalOcean Basic (Regular)Hetzner Cost-Optimized
1 vCPU / 1 GiB$6 — 25 GB SSD, 1 TB transferno equivalent
2 vCPU / 2 GiB$18 — 60 GB SSD, 3 TBno equivalent
2 vCPU / 4 GiB$24 — 80 GB SSD, 4 TBCX23 — €5.99, 40 GB NVMe, 20 TB
4 vCPU / 8 GiB$48 — 160 GB SSD, 5 TBCX33 — €8.99, 80 GB NVMe, 20 TB
8 vCPU / 16 GiB$96 — 320 GB SSD, 6 TBCX43 — €16.49, 160 GB NVMe, 20 TB
2 vCPU / 8 GiB, dedicated$63 (General Purpose)from €43.49 (General Purpose)

Read across the matched rows and a pattern appears that nobody prints: at equal cores and RAM, Hetzner's disk is exactly half — 40 against 80, 80 against 160, 160 against 320. The discount is partly a storage trade, and if your app is disk-hungry the saving shrinks in ways the headline number will not tell you.

The multiple also drifts with size. Assume a euro equals a dollar, which is generous to DigitalOcean and removes the exchange-rate argument entirely: 2 vCPU / 4 GiB is roughly four to one, 4 vCPU / 8 GiB is about five to one, 8 vCPU / 16 GiB is close to six to one. "Cheaper at the entry level" understates what happens when you scale.

Then there is the trap that manufactures most of the "3x cheaper" claims. Hetzner has no 2 vCPU / 2 GiB plan. Pair DigitalOcean's $18 2/2 Droplet with Hetzner's €5.99 2/4 box — as nearly every comparison does — and you are quoting twice the RAM for a third of the money. The honest pairing is $24 against €5.99. Still lopsided. Just not by the number in the post. And if you are working from a figure in the low fours for that class of Hetzner box, it is stale: the list price today is €5.99, with the IPv4 address billed on a separate line.

The two load tests disagree, and both are right

The first one ramps until something breaks. One Next.js app, deployed twice: on a $6 Droplet with 1 vCPU and 1 GiB, and on a Hetzner box with 2 vCPU and 4 GB that cost about €4.50 at the time. Traffic climbs from 50 concurrent users to 100, then 250, then 500. At 50 the two servers are within a rounding error of each other. By 100 the cheaper box is already ahead, but by a margin nobody would migrate for. At 250 the Droplet's average response time jumps by more than an order of magnitude while the Hetzner box is still under a second. At 500 the Droplet is returning failed requests in bulk; the Hetzner box finishes the run with a handful of failures and an average under two seconds. The cheap box wins, and the $6 box is not a serious host.

The second one holds a fixed load and finds nothing wrong. A WordPress site behind a hosting panel, identical content on both, 200 concurrent sessions held steady with k6. DigitalOcean's 2 vCPU / 2 GiB Regular tier against a Hetzner 2 vCPU / 2 GiB in Ashburn. Zero failed requests on both. Average load time around 1.4 seconds on both. GTmetrix and PageSpeed: a tie. Either will do; Hetzner is the better buy for the money, but nothing falls over.

Both runs are honest. What changed between them is everything except the vendor: a server-rendered app against a cached WordPress install, a ramp to destruction against a fixed 200 sessions, and a 1 GiB Droplet against a 2 GiB one. A load test measures the whole stack, and the stack is what moved.

What survives both is the shape of the failure, not its position. The $6 Droplet does not degrade gently as users arrive; it holds, holds, then drops off a ledge somewhere between 100 and 250 concurrent. That is why "it was fine at 100 users" is the most expensive sentence in this decision — it is true and it predicts nothing about 300.

Which CPU wins depends on which DigitalOcean you bought

A single-core Geekbench run put a Hetzner instance costing about $3.50 — 1 vCPU, 2 GiB — ahead of a DigitalOcean 2 vCPU / 2 GiB box costing several times as much, and within reach of it on multi-core. A second comparison, run the same way, put the cheap Hetzner box at roughly double DigitalOcean's Regular tier on both single and multi-core.

Then a six-instance WordPress benchmark landed the opposite way: DigitalOcean's Premium Intel scored above Hetzner overall, and a high-frequency Vultr instance beat both. Disk results flipped too — one run had Hetzner's NVMe well ahead of DigitalOcean's SSD on read and write, another had Hetzner posting the weakest 4K random numbers in the group.

The reconciliation is dull and decisive. "DigitalOcean" is not one machine. Basic Droplets come in three CPU variants — Regular, Premium Intel, Premium AMD — at three different prices for the same nominal spec, and the pricing page opens on Regular. Hetzner does the same thing with CX (Intel or AMD) and CAX (Ampere) at different prices for identical core counts. A benchmark that does not name the SKU is measuring a coin flip.

Shared is shared, and the objection is dead

The standard dismissal of Hetzner's prices runs: sure, but those are shared vCPUs, and DigitalOcean gives you dedicated ones. DigitalOcean's own documentation ends that argument — its Droplet feature table lists the CPU for the Basic plan in one word: Shared. The pricing page says the same thing in prose, selling Basic Droplets for "workloads that underuse dedicated threads" and for "bursty applications that can handle variable levels of CPU". Dedicated cores start at $42 for a CPU-Optimized 2 vCPU / 4 GiB, or $63 for General Purpose at 2 vCPU / 8 GiB. Hetzner draws the line in the same place: Cost-Optimized and Regular Performance are labelled shared, and dedicated starts with General Purpose at €43.49.

At the bottom of both catalogues you are comparing shared to shared. What actually differs is the mechanism, and Hetzner's page says it plainly — on shared plans, hardware resources are shared with "neighbors". Idle cores go to someone else's workload. That is the product, not a defect, and it is the same bargain DigitalOcean sells under a different adjective. If you need cores that are yours at three in the morning, neither cheap tier is that purchase.

Small lines that move the invoice

Datacenter, not country. Inside Germany, Nuremberg and Falkenstein are about a millisecond apart for a request that originates in Europe — and about ten milliseconds apart for one that originates in the United States. If your users are in North America and you deploy in Germany, that single choice outweighs the plan you picked.

The distro is a line item in RAM. On a 2 GiB box, a bare Debian image leaves visibly more headroom than a default Ubuntu install. At 4 GB this is trivia. At 2 GB it is the difference between a comfortable box and a swap file.

Backups are priced as a percentage on both sides. Hetzner charges 20% of the server price, flat, per month. DigitalOcean charges 20% weekly or 30% daily of the Droplet. On a €5.99 server that is about €1.20 — not a ranking change, but it is the line people forget when they quote the plan price.

Local SSD and network volumes are different products. Hetzner sells both on the same plan. Local storage is attached to the host; the network option is served from a distributed cluster, which is where the redundancy lives. The cheap configuration is cheap because you own the failure mode and the restore.

The IP address is a separate line. Hetzner's plan cards carry a "price incl. IPv4" switch. The headline is not the invoice.

Skip the SSH key and the root password arrives by email. Convenient for a throwaway test box, and the reason to add the key before you click create on anything that will hold data.

20 TB is a European number. Hetzner's own plan page scopes the allowance to EU-Central locations. If you deploy in Ashburn or Hillsboro, read the traffic figure on the order screen rather than assuming the European one travels with the plan.

The cheapest tier is not the same silicon everywhere. Hetzner's cost-optimized line runs on Intel or AMD depending on the plan, and the CAX variants swap in Ampere. Same price band, different chip, different benchmark result. Pick the architecture deliberately rather than taking whatever the region offers that day.

What would flip this answer

If most of your users are in North America, the 20 TB allowance is not your allowance, and the European price advantage has to be re-earned at US list prices before it means anything.

If you need a managed database on day one, the comparison stops being about compute. Hetzner's catalogue has no managed database product; DigitalOcean's does. Self-hosting Postgres on a €5.99 box is cheaper on paper and more expensive in the calendar.

If your load is sustained rather than spiky, both cheap tiers are the wrong purchase and the interesting comparison is General Purpose against General Purpose — a different gap, in a different place.

And if you plan to benchmark before committing, benchmark the exact SKU in the exact region you intend to buy. A Regular Droplet and a Premium Intel Droplet at the same spec are not the same machine, and neither are a CX23 and a CAX11.