The Hosting Decision Your Hetzner Server White-Label Hosting Client Already Has Hosting Client Needs New Hosting Cloudflare (Every Client) Hosting Pricing
Short answer: Host all new clients on your Hetzner server by default. It costs you almost nothing marginal per site, you control everything, and you can charge $25-$50/mo recurring. Only move a client to external hosting if they insist on having their own cPanel/account.

The Hosting Decision Tree

SituationRecommended ApproachYour CostCharge Client
Client has no hosting yetHost on your Hetzner server — white-label managed hosting~$0 marginal (your server is already running)$35/mo managed hosting
Client has GoDaddy/Bluehost/cheap hostingMigrate to your server OR work within their hosting — depends on their preferences$0 if you migrate$35/mo if you host it; $0 if they keep theirs
Client has SiteGround/WPEngine (good hosting)Work within their hosting — it's already solid$0$0 for hosting; charge for maintenance separately
Client wants their own cPanel accountReseller hosting via SiteGround or A2 Hosting — give them their own login$15-$30/mo for a reseller plan$25-$40/mo (small margin built in)
Large client, high trafficRecommend VPS or cloud (Hetzner Cloud or DigitalOcean Droplet) — set it up for them$6-$20/mo$50-$75/mo managed

Hosting on Your Hetzner Server

Your CPX31 server (5.78.182.164) runs HestiaCP and can comfortably host 20-40 WordPress sites. Each site costs you essentially nothing beyond the monthly server fee you're already paying.

Adding a new client site to HestiaCP
  1. Log into HestiaCP at your server IP as fcprngoel
  2. Go to Web tab → Add Web Domain
  3. Enter the client's domain: smithplumbing.com
  4. Check: Create Mail Domain (if they want email)
  5. Check: Enable SSL → Let's Encrypt (free, auto-renewing)
  6. Click Save
  7. Go to Web → find the domain → click Quick Install → WordPress
  8. Set admin username, password, site title
  9. Note the web directory: /home/fcprngoel/web/smithplumbing.com/public_html/
DNS: Client's domain needs to point to your server IP (5.78.182.164). Either manage DNS through HestiaCP (transfer nameservers to ns1/ns2.keganball.com) or add an A record at their existing registrar pointing to your server IP. Cloudflare is the cleanest option — see below.
Server capacity and performance
CPX31 SpecsValue
vCPUs4
RAM8 GB
Storage160 GB NVMe SSD
Bandwidth20 TB/mo
Comfortable site limit20-40 small WordPress sites
Your monthly cost~$15-20/mo
Revenue at 10 clients @ $35/mo$350/mo for ~$0 marginal cost
If you hit 30+ active sites and notice performance degrading, upgrade to CPX41 (~$30/mo) in the Hetzner console — takes 5 minutes with no downtime.

White-Label Managed Hosting — What to Tell Clients

How to explain managed hosting to a client

Your website lives on a managed server that I maintain. That means: your site is backed up automatically every week, SSL security is handled and auto-renews, the server is monitored 24/7, and if anything goes wrong on the server side, I fix it. You never have to deal with a hosting company's support line. It's $35/month — separate from any WordPress maintenance.

What's included in your managed hosting ($35/mo)

Not included: WordPress plugin/theme updates, content changes, new pages — that's the $75/mo Maintenance plan. You can bundle hosting + maintenance for $100/mo to make it easy for clients to understand.

Client Already Has Hosting — Decision Guide

Their HostQualityYour Recommendation
GoDaddy shared hostingPoor-Mediocre"Your current hosting is pretty slow. I can migrate you to faster managed hosting for $35/mo — your site will load noticeably faster, which helps your Google rankings."
Bluehost / HostGatorPoor-MediocreSame as GoDaddy — suggest migration for speed/reliability improvement
SiteGroundGood"SiteGround is solid — let's just work within your existing account. You'll keep paying them directly." (No hosting revenue for you, but less friction)
WP Engine / Kinsta / FlywheelExcellent"This is managed WordPress hosting — best-in-class. Keep it." (No hosting revenue)
Their IT person manages a serverVariesGet SFTP credentials and work within their environment. Note: longer turnaround if you need IT help.
Wix / SquarespaceN/A (platform sites)Cannot host WordPress there — explain you'll need to move them off the platform. Charge for the migration.
Migrating a site from GoDaddy/Bluehost to your Hetzner server
  1. Get their existing hosting credentials (cPanel login or SFTP)
  2. Install All-in-One WP Migration on their current WordPress site
  3. Export the full site as a .wpress file
  4. Set up their domain on your Hetzner/HestiaCP server (new WordPress install)
  5. Import the .wpress file using All-in-One WP Migration on the new server
  6. Test everything on a staging domain before changing DNS
  7. Point DNS to your server (change A record or transfer nameservers)
  8. Enable SSL on your server (Let's Encrypt)
  9. Confirm old hosting can be cancelled
Migration charge: Add $100-$150 to the project for migrating from bad hosting. Frame it as saving them money long-term (you're removing their $15-$30/mo GoDaddy bill and replacing it with your $35/mo managed hosting).

Client Needs New Hosting — All Options

Your Hetzner Server ⭐ (Recommended)

$0 marginal → charge $35/mo

Best margin, full control, you manage everything. Works for 95% of small trades business sites.

hetzner.com

SiteGround Reseller Hosting

$13.99+/mo for reseller plan

If clients want their own cPanel account under your reseller umbrella. You white-label the hosting, they get their own login but it's your account's infrastructure.

siteground.com/reseller

A2 Hosting Reseller

$18.99+/mo reseller plans

Fast NVMe hosting, good reseller program, competitive pricing. Alternative to SiteGround.

a2hosting.com/reseller

Cloudways (managed cloud)

$14+/mo per app

Managed cloud hosting on DigitalOcean/AWS/GCP. Excellent for higher-traffic clients. Agency plans allow hosting multiple clients.

cloudways.com

Cloudflare — Add to Every Client Site (Free)

Cloudflare is free and gives every site a CDN, DDoS protection, and performance boost. Takes 5-10 minutes per client. Always do this.

Cloudflare setup for each client site
  1. Log into your Cloudflare account at dash.cloudflare.com
  2. Click Add a Site → enter client's domain → select Free plan
  3. Cloudflare scans existing DNS records — review and confirm they're correct
  4. Change the client's domain nameservers to the Cloudflare nameservers shown (e.g., alicia.ns.cloudflare.com)
  5. In Cloudflare dashboard → SSL/TLS → set to Full (Strict)
  6. In Speed → enable Auto Minify (HTML, CSS, JS)
  7. In Caching → set Browser Cache TTL to 4 hours
  8. Test: visit the site and confirm the Cloudflare orange cloud shows in the DNS tab
After Cloudflare is set up, your client's site gets a free global CDN — pages load from a server close to each visitor. This alone can boost PageSpeed scores by 10-20 points.

Hosting Pricing Summary

ServiceYour CostCharge ClientMonthly Margin
Managed Hosting (your Hetzner server)~$0.50/site (server divided by sites)$35/mo~$34.50/mo
Reseller Hosting (SiteGround)$1-$3/site under reseller plan$30/mo~$27/mo
Domain registration (Namecheap)$10-$15/yr$20/yr or pass-through$5-$10/yr
SSL Certificate$0 (Let's Encrypt)Included in hostingBundled
Cloudflare CDN$0 (free tier)Included in hostingBundled
UptimeRobot Monitoring$0 (free up to 50 sites)Included in hostingBundled
Bundle option: Offer Managed Hosting + Monthly Maintenance together for $100/mo. This is easy for clients to understand (one bill, everything taken care of) and gives you $100/mo recurring per client vs. $35 + $75 sold separately.

Domain Registrar Recommendation

Always register client domains at Namecheap — transparent pricing ($10-$15/yr), good UI, free WhoisGuard privacy. Never GoDaddy (aggressive upselling, higher prices, harder to transfer).

If a client already owns their domain: get registrar login from them, point nameservers to Cloudflare, done. Keep the domain in their name — you don't want to own client domains.