Hetzner VPS + CloudPanel: The Best Value WordPress Hosting Setup in 2026

Run 10-20 WordPress sites on €7/month. How I set up Hetzner Cloud with CloudPanel for client sites — accurate stack details, real cost comparison.

Dobromir Dechev
Dobromir WordPress agency owner

Quick answer

A Hetzner CX32 VPS at €6.57/month with CloudPanel installed handles 10–15 WordPress sites with Nginx, Varnish caching, Redis, and free SSL — the best value self-managed WordPress hosting setup in 2026.

Most hosting comparison articles don't mention Hetzner. That's because Hetzner doesn't have an affiliate program — there's no commission for recommending it.

I'm recommending it anyway, because it's what I actually use for the majority of my agency's client sites.

A Hetzner CX32 server (4 vCPUs, 8GB RAM, NVMe SSD, Frankfurt) costs €6.57/month. With CloudPanel installed, it handles 10–15 WordPress sites with Nginx + Varnish caching, free Redis object cache, and per-site SSL — all included in the control panel at no extra cost.

This guide covers exactly what CloudPanel is, how to set it up on Hetzner, what the stack looks like, and when you should use managed hosting instead.


What is CloudPanel

CloudPanel is a free, open-source server control panel built for PHP applications. The full stack it installs:

  • Web server: Nginx
  • PHP: Multiple versions (7.x–8.3), switchable per site
  • Database: MySQL 8.4 or MariaDB (your choice at install time)
  • Caching: Varnish Cache (built-in, enable per site)
  • Object cache: Redis (included, no extra cost)
  • SSL: Let's Encrypt, automatic renewal
  • OS support: Ubuntu 24.04/22.04, Debian 13/12/11
  • Architecture: x86 and ARM64

Redis being included is a meaningful cost difference from Cloudways, where Redis is a €14/month add-on. On CloudPanel it's part of the stack.

What CloudPanel is not: It does not use OpenLiteSpeed or Apache. It is Nginx-only. If you need OpenLiteSpeed for LiteSpeed Cache's native caching, you'd need a different control panel (CyberPanel) or a fully manual server setup.

What CloudPanel gives you over a raw VPS

The value is operational efficiency. Managing multiple WordPress sites on a raw VPS means manually creating Nginx server blocks, PHP-FPM pools, databases, and Certbot configs for each site. With CloudPanel:

  • New WordPress site in under a minute — domain, PHP version, database, and Nginx config all provisioned automatically
  • Varnish Cache toggle per site — enable from the UI, pre-configured exclusion patterns
  • Redis object cache — included, configure via the WordPress Redis plugin
  • Per-site PHP version switching — change from 8.1 to 8.3 without touching config files
  • Built-in file manager and database manager — routine tasks without SSH
  • Remote backups to S3, SFTP, or Backblaze B2
  • UFW firewall management through the UI
  • ARM64 support — runs on Hetzner's CAX ARM instances (up to 40% better performance at 20% lower cost per CloudPanel's benchmarks)

Choosing the right Hetzner server

Hetzner Cloud offers shared x86 (CX series) and ARM64 (CAX series) instances. Both work with CloudPanel. Frankfurt and Nuremberg are the EU datacenter options — Frankfurt is the right choice for most EU-targeting sites.

x86 shared (CX series):

ServervCPUsRAMStoragePrice/moBest for
CX2224GB40GB NVMe€3.791–5 sites, light traffic
CX3248GB80GB NVMe€6.575–15 sites, mixed traffic
CX42816GB160GB NVMe€14.3915–30 sites or heavy WooCommerce

ARM64 shared (CAX series) — better performance per euro:

ServervCPUsRAMStoragePrice/moNotes
CAX2148GB80GB NVMe€5.49ARM64, good alternative to CX32
CAX31816GB160GB NVMe€9.89ARM64, comparable to CX42 at lower cost

CAX series runs on Ampere Altra ARM processors. CloudPanel supports ARM64 natively. For pure PHP workloads (WordPress), ARM often outperforms x86 clock-for-clock at lower cost. Worth testing if you're setting up a new server.

I use CX32 as the standard for client site batches. The 8GB RAM handles 10–12 active WordPress sites with Nginx workers, PHP-FPM pools, Redis, and Varnish running simultaneously.


The caching stack explained

Understanding how CloudPanel caches WordPress is important before setting it up.

Varnish Cache sits in front of Nginx as an HTTP reverse proxy. When a visitor hits a cached page, Varnish serves it directly from memory — Nginx and PHP never get involved. Varnish is included in CloudPanel and enabled per-site from the UI.

For WordPress and WooCommerce, Varnish needs cache exclusion rules so that logged-in users and cart/checkout pages are served fresh. CloudPanel's Varnish settings let you configure excluded paths and cookies. The minimum WooCommerce exclusions you need to add manually:

  • /cart/
  • /checkout/
  • /my-account/
  • Cookies: woocommerce_items_in_cart, wp_woocommerce_session_*

CloudPanel also has a dedicated WordPress Varnish Cache plugin that handles cache purging when you update posts or change content.

Nginx FastCGI cache is an alternative to Varnish — WordPress caching plugins like WP Rocket can use Nginx's FastCGI cache directly. This requires custom Nginx config but avoids running a separate Varnish process.

Redis object cache is included in CloudPanel's stack. Install the Redis Object Cache plugin by Till Krüss and connect it to the local Redis socket. Add to wp-config.php:

define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_CACHE_KEY_SALT', 'unique_site_key_' );

Redis handles WordPress transients and object cache, reducing database load — particularly useful for WooCommerce session management.


How to install CloudPanel on Hetzner: step by step

Step 1 — Create the Hetzner server

  1. Log in to Hetzner Cloud Console
  2. Create a new project
  3. Click Add Server, select:
    • Location: Frankfurt or Nuremberg
    • Image: Ubuntu 24.04 LTS
    • Type: CX32 (x86) or CAX21 (ARM64)
    • SSH Keys: Add your public key
    • Backups: Enable (+20% cost — worth it for peace of mind)
  4. Click Create & Buy Now — server is ready in ~30 seconds

Step 2 — Prepare the server

SSH in as root:

ssh root@YOUR_SERVER_IP

Update and install prerequisites:

apt update && apt -y upgrade && apt -y install curl wget sudo

Step 3 — Install CloudPanel

Run the official installer. Check cloudpanel.io/docs/v2/getting-started/hetzner-cloud/installation/installer/ for the current command with the latest SHA256 checksum — the checksum changes between releases. The command format is:

curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.sh
# Verify the sha256 checksum from the official docs before running
sudo CLOUD=hetzner DB_ENGINE=MYSQL_8.4 bash install.sh

The CLOUD=hetzner flag configures Hetzner-specific settings. DB_ENGINE=MYSQL_8.4 installs MySQL 8.4 — alternatively use MARIADB_11.4 for MariaDB.

Installation takes 5–10 minutes. When complete, you'll see:

CloudPanel: https://YOUR_SERVER_IP:8443

Step 4 — Initial security setup

Open https://YOUR_SERVER_IP:8443 in a browser (accept the self-signed SSL warning).

Create your admin account. Immediately after:

  1. Go to Admin → Security → IP Whitelist and restrict CloudPanel admin access to your IP address. The admin port 8443 should never be publicly accessible.
  2. Enable Two-Factor Authentication on your admin account.

Step 5 — Add a WordPress site

  1. In CloudPanel: Sites → Add Site → Create a WordPress Site
  2. Fill in: domain name, site title, admin user/password, email, PHP version (8.3)
  3. Click Create — CloudPanel provisions the Nginx vhost, PHP-FPM pool, database, and installs WordPress. Takes under a minute.

Step 6 — Point your DNS to the server

Before issuing SSL, your domain needs an A record pointing to your Hetzner server IP.

The easiest way to manage this is Cloudflare's free plan. Transfer your domain's nameservers to Cloudflare, then add an A record pointing to your Hetzner IP. It takes 2–5 minutes to set up and gives you fast propagation, DDoS protection, and a clean DNS dashboard.

Important: keep the Cloudflare proxy disabled (grey cloud / "DNS only") for your A record. The server already runs Varnish Cache for page caching — routing traffic through Cloudflare's proxy on top of Varnish creates cache conflicts and can pass incorrect headers. Cloudflare DNS-only still gives you fast propagation and the security benefits of being behind Cloudflare's network.

Once your A record is live and propagated, issue the certificate:

Step 6b — Issue the SSL certificate

In the site settings: SSL/TLS → Actions → New Let's Encrypt Certificate

CloudPanel renews the certificate automatically.

Step 7 — Enable Varnish Cache

In the site settings: Varnish Cache → Enable

For WooCommerce stores, add the cart/checkout exclusions in Varnish Cache → Settings → Excludes:

^/cart/
^/checkout/
^/my-account/

Also add the WooCommerce session cookies under Excluded Params to ensure logged-in shoppers bypass cache.

Install the CloudPanel Varnish Cache WordPress plugin to handle automatic cache purging on post updates.

Step 8 — Configure Redis object cache

In the WordPress admin:

  1. Install the Redis Object Cache plugin by Till Krüss
  2. Go to Settings → Redis and click Enable Object Cache
  3. Add to wp-config.php above /* That's all, stop editing! */:
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_CACHE_KEY_SALT', 'yoursite_' );

Redis is already running — CloudPanel installs and starts it automatically.

Step 9 — Set up remote backups

In CloudPanel: Backups → Create Backup Schedule

Connect an S3-compatible destination. Hetzner Object Storage works well — it's in the same network, cheap, and keeps your data in the EU. Create a Hetzner Object Storage bucket, add the credentials to CloudPanel, and set daily backups with 30-day retention.


Performance expectations

CloudPanel uses Nginx + Varnish — the same underlying caching stack as Cloudways (which also runs Nginx + Varnish). Expect similar cached TTFB performance: 30–45ms cached TTFB from EU locations to Frankfurt. Uncached TTFB on Hetzner hardware benchmarks at 140–170ms for a clean WordPress install.

For comparison — the speed test in the WordPress Hosting Speed Test 2026 tested a manually configured OpenLiteSpeed stack on Hetzner (not CloudPanel), which achieved 11ms cached TTFB via LiteSpeed's native cache engine. If you need that level of cached performance, you need OpenLiteSpeed installed manually or via CyberPanel — not CloudPanel.

CloudPanel's actual performance advantage over managed hosting is in the uncached TTFB: Hetzner's bare-metal-class NVMe and generous RAM-per-euro means raw PHP execution is faster than on most shared managed platforms at the same price point.


Real cost comparison: Hetzner + CloudPanel vs managed hosting

Running 10 WordPress sites:

OptionMonthly costPer-site costRedisNotes
Hetzner CX32 + CloudPanel€6.57€0.66Included freeSelf-managed
Cloudways Vultr HF 4GB€42€4.20+€14/mo extraManaged
Cloudways Vultr HF 2GB€25€2.50+€14/mo extraManaged, 5–8 sites
Rocket.net (10 sites)€300€30NoManaged, edge caching
Kinsta Business 2 (10 sites)€230€23+$100/mo extraManaged, premium

The Redis difference is notable: on Cloudways, Redis costs an extra €14/month on top of server cost. On CloudPanel it's included. For WooCommerce stores with heavy session usage, this matters.


When to use managed hosting instead

Hetzner + CloudPanel is not right for every situation. Use Cloudways or Rocket.net when:

You don't have time to maintain a server. CloudPanel handles most routine tasks through the UI, but OS security updates, PHP version upgrades, and server monitoring are your responsibility. Budget 1–2 hours per month. If that's not available, Cloudways manages this for you.

A client site goes down and you need support at 3am. Self-managed Hetzner means you are the support. Managed hosting providers have 24/7 support with WordPress expertise.

The client needs SLA guarantees in writing. Kinsta and WP Engine provide documented SLAs. Hetzner provides infrastructure uptime SLAs (99.9%) but not per-application SLAs.

You're handing the hosting off to the client. When a client manages their own server, CloudPanel makes it easier than raw VPS — but most clients are better served with Cloudways where they have proper account management and support access.

Agency tip: My current setup: Hetzner CX32 + CloudPanel for client sites on retainer where I manage the server as part of the service. Cloudways for clients who want their own hosting account with proper support. Rocket.net for high-traffic stores where Cloudflare Enterprise edge caching is worth the per-site cost.


FAQ

Does CloudPanel support OpenLiteSpeed?

No. CloudPanel uses Nginx exclusively. If you need OpenLiteSpeed for LiteSpeed Cache's native caching, look at CyberPanel (which is built specifically for OpenLiteSpeed) or a fully manual server setup.

Is Redis included in CloudPanel or do I need to install it separately?

Redis is included in CloudPanel's stack and starts automatically on install. You only need to install and configure the Redis Object Cache WordPress plugin to connect WordPress to it.

Does CloudPanel support multiple PHP versions on the same server?

Yes. PHP 7.1 through 8.3 can run simultaneously, assigned per site. Useful when older client sites depend on plugins not yet compatible with PHP 8.3.

How many WordPress sites can I run on a CX32?

10–15 comfortably, depending on traffic. Monitor RAM — if usage stays under 70% during peak hours, you have headroom. A WooCommerce store with 1,000 sessions/day uses significantly more resources than a brochure site.

Is CloudPanel really free?

Yes, CloudPanel Community Edition is free with no site limits and no license fees. There is no paid tier that adds per-site pricing.


Bottom line

Hetzner CX32 + CloudPanel is the best price-to-performance setup for running multiple WordPress sites in 2026. Under €1/site/month, Redis included, Varnish Cache included, and Nginx performance on Hetzner's fast NVMe hardware.

If you need managed hosting without the server responsibility, Cloudways Vultr HF is the best value managed option for agencies. For edge performance on high-traffic sites, Rocket.net (Cloudflare Enterprise) is the top managed pick.

Frequently Asked Questions

What is Hetzner Cloud and why use it for WordPress?
Hetzner is a German cloud provider with data centres in Nuremberg, Falkenstein, Helsinki, and Ashburn. Their VPS pricing is 3–5x cheaper than DigitalOcean or Vultr for equivalent specs. A CX32 (4 vCPU, 8GB RAM, NVMe) costs €6.57/month compared to $48/month on DigitalOcean.
What is CloudPanel and how does it work with Hetzner?
CloudPanel is a free server control panel for Nginx-based stacks. It handles WordPress site creation, SSL certificates (Let's Encrypt), PHP version management, database management, Varnish caching, and Redis — all via a clean web UI. It installs on a fresh Ubuntu or Debian VPS in about 10 minutes.
How many WordPress sites can I run on a Hetzner CX32?
With CloudPanel, Nginx, Varnish page caching, and Redis object caching, a Hetzner CX32 (4 vCPU, 8GB RAM) comfortably runs 10–15 medium-traffic WordPress sites. Resource-heavy WooCommerce stores should be limited to 3–5 per server.
Is Hetzner VPS suitable for client sites?
Yes, if you're comfortable managing your own server. Hetzner offers 99.9%+ uptime SLAs, fast NVMe storage, and excellent European network performance. The trade-off is that you're responsible for server security, updates, and troubleshooting — unlike fully managed hosts like Kinsta.
What are the downsides of Hetzner compared to Cloudways or Kinsta?
Hetzner is self-managed — no hosting support for WordPress issues, no automatic backups (you configure these yourself), and no built-in staging. You also need to handle server hardening, firewall rules, and PHP updates. For agencies comfortable with Linux administration, the cost savings are substantial.

Was this article helpful?