cdn security

How to Migrate from Cloudflare to Bunny.net

Cloudflare Bunny.net
Difficulty: Intermediate Estimated time: 1-3 days for typical web property

Step-by-step guide to switching from Cloudflare to Bunny.net, the Slovenian CDN that competes on every dimension that matters. EU-resident edge compute, transparent pricing, and meaningful sovereignty improvement.

Prerequisites

  • Cloudflare admin access
  • DNS administrator capability
  • Comfort with CDN configuration concepts (cache rules, headers, origins)

Steps

  1. Inventory your Cloudflare configuration

    Document active DNS records, page rules, workers, R2 buckets, security settings, and any Cloudflare-specific features in use.

  2. Sign up for Bunny.net

    Create account at bunny.net. Pay-as-you-go pricing means you can start with $5 deposit; no upfront commitment.

  3. Configure Pull Zones (Bunny's CDN equivalent)

    Create Pull Zones for each origin. Pull Zones are simpler than Cloudflare's site-based model but cover the same use cases.

  4. Migrate DNS

    Either use Bunny DNS or keep your existing DNS provider. Cloudflare DNS doesn't have to migrate with the CDN.

  5. Translate Cloudflare Page Rules to Bunny configuration

    Cache rules, redirects, and security policies need recreating. Most translate directly; complex Workers logic needs separate Bunny Edge Scripting.

  6. Migrate Cloudflare Workers (if applicable)

    Bunny Edge Scripting is the equivalent. Most Workers logic ports cleanly; some Cloudflare-specific APIs need replacement.

  7. Update DNS to point to Bunny

    Change CNAME records from Cloudflare-controlled to Bunny.net pull zones. Reduce TTL beforehand for fast rollback.

  8. Verify functionality

    Test critical paths: SSL, caching behavior, security rules, geographic performance, edge logic.

  9. Run parallel for 1 week

    Keep Cloudflare configured but DNS pointing to Bunny. If issues emerge, fast rollback by pointing DNS back.

  10. Cancel Cloudflare paid plans

    Free Cloudflare DNS can stay if useful; cancel paid features. Document final state.

Why Migrate from Cloudflare to Bunny.net?

Cloudflare is the dominant CDN and edge platform in 2026. The product is genuinely excellent and the company has shipped impressively (Workers, R2, D1, Cloudflare One). It’s also a US-headquartered service that processes your traffic and edge logic on US infrastructure subject to the CLOUD Act.

For European businesses where edge processing handles sensitive data — authentication tokens, A/B test logic, personalization — Cloudflare’s US jurisdiction matters operationally. The “Cloudflare proxies your traffic” implementation creates real legal exposure even if your origin is EU-hosted.

Bunny.net is the Slovenian CDN that competes with Cloudflare on every dimension that matters. Transparent pricing (often substantially cheaper), EU edge compute via Bunny Edge Scripting, exceptional performance on European traffic, and full EU jurisdiction.

For European websites and applications, Bunny.net delivers comparable performance with meaningfully better sovereignty posture. The migration is one of the easier ones in our guide series — most properties complete it in 1-3 days.

Detailed Migration Steps

Step 1: Inventory Cloudflare Configuration

Before migrating, document everything Cloudflare currently does for you:

DNS records: A, AAAA, CNAME, MX, TXT records. Note which are proxied (orange cloud) vs DNS-only (gray cloud).

Page Rules / Configuration Rules: Cache settings, redirects, security overrides, header modifications.

SSL/TLS configuration: Origin server SSL mode, minimum TLS version, certificate type.

Security settings: WAF rules, rate limiting, bot fight mode, security level, IP reputation.

Workers: List all Workers, their routes, and what they do. Workers are the hardest piece to migrate.

R2 storage: Buckets and their access patterns.

Other features: Argo Smart Routing, Image Resizing, Stream, Pages, Email Routing, Zaraz, Access.

This document determines migration scope. Pure CDN/DNS use cases migrate easily. Heavy Workers + multiple Cloudflare products takes longer.

Step 2: Sign Up for Bunny.net

Create account at bunny.net. The signup process is genuinely simpler than Cloudflare:

  • No site-based account model — everything is “pull zones” (CDN configurations) and other resources
  • Pay-as-you-go pricing with no minimum commitments
  • Start with $5 deposit; usage charged from balance
  • Transparent pricing: you can see what every operation costs before using it

The pricing model deserves emphasis: Cloudflare’s free tier is generous but the paid tiers ($20/month Pro, $200/month Business, custom Enterprise) create cliff-edge cost steps. Bunny’s pay-as-you-go means you pay roughly proportionally to usage with no surprise tier upgrades.

Step 3: Configure Pull Zones

In Bunny:

  1. Pull Zones → Add Pull Zone
  2. Configure:
    • Hostname: your-cdn.b-cdn.net (Bunny’s default) or custom domain
    • Origin URL: your origin server (e.g., origin.yoursite.com)
    • Tier: Standard, Volume, or High Volume based on traffic
    • Geographic regions: which Bunny edge regions should serve traffic
  3. SSL: Bunny provisions Let’s Encrypt automatically for custom domains
  4. Caching: configure cache rules, default TTLs, query string handling

The pull zone is your CDN configuration. One pull zone per origin/site is typical.

Step 4: DNS Strategy

Two paths:

Option A: Migrate DNS to Bunny

Bunny DNS is a free product. If you only used Cloudflare for DNS + CDN, migrating to Bunny DNS simplifies your stack.

  1. Add your domain to Bunny DNS
  2. Recreate all DNS records
  3. Update domain registrar’s nameservers to Bunny’s
  4. Wait for propagation (24-48 hours for full DNS propagation)

Option B: Keep DNS where it is, migrate just CDN

If you use Cloudflare DNS but want to migrate just the CDN:

  1. Keep DNS at Cloudflare or another provider
  2. Update CNAME records to point to your Bunny pull zone (e.g., your-cdn.b-cdn.net)
  3. Set Cloudflare records to “DNS only” (gray cloud) to bypass Cloudflare’s CDN

For most migrations, Option B is faster and lower-risk. You can migrate DNS separately later.

Step 5: Translate Page Rules

Most Cloudflare Page Rules have direct Bunny equivalents:

  • Cache TTL rules → Bunny’s cache rules
  • Redirects → Bunny’s redirect rules or Edge Scripting
  • Cache bypass for specific paths → Bunny’s cache rules with bypass
  • Custom headers → Bunny’s response headers
  • Security level → Bunny’s WAF rules

For each Page Rule, recreate equivalent in Bunny. The configuration UI is different but the underlying capabilities largely match.

Step 6: Migrate Cloudflare Workers (If Applicable)

This is the hardest step. Cloudflare Workers run V8 JavaScript at the edge with Cloudflare-specific APIs.

Bunny Edge Scripting is the equivalent — V8 isolates running JavaScript at Bunny’s edge. Most Workers logic ports cleanly:

  • Standard JavaScript / TypeScript: works directly
  • fetch(), Response, Request: standard Web API, identical
  • KV-style storage: Bunny offers similar key-value storage
  • Custom routing logic: identical conceptually

Cloudflare-specific APIs that need replacement:

  • cf.cacheEverything → Bunny’s cache configuration
  • Cloudflare Access integration → reimplement with your own auth
  • Workers KV → Bunny’s storage equivalent
  • Durable Objects → no direct equivalent; redesign needed

For most simple Workers (request manipulation, A/B testing, header modifications), migration takes a few hours. Complex Workers depending on Cloudflare’s broader ecosystem may need substantial redesign.

Step 7: SSL Certificates

Bunny provisions Let’s Encrypt certificates automatically for any custom domain pointing to a pull zone. Configuration steps:

  1. In pull zone, enable “Custom Hostname”
  2. Add your domain (e.g., cdn.yoursite.com)
  3. Bunny provides DNS challenge requirements
  4. Add the challenge record to your DNS
  5. Bunny provisions certificate within minutes

For specific certificate requirements (EV, custom CA), Bunny supports custom certificate upload.

Step 8: Update DNS to Point to Bunny

Before cutover:

  1. Reduce TTL on your CNAME records to 60 seconds (24 hours before cutover)
  2. Verify Bunny is configured correctly with test domain or path

At cutover:

  1. Update CNAME from Cloudflare to Bunny pull zone (e.g., your-cdn.b-cdn.net)
  2. DNS propagates within minutes (due to reduced TTL)
  3. Traffic begins flowing through Bunny

After cutover:

  1. Verify functionality across critical paths
  2. Monitor performance metrics
  3. Restore TTL to standard (3600+ seconds) once stable

Step 9: Test and Verify

For 24-48 hours after cutover, monitor:

  • HTTP error rates (5xx errors should be similar to before)
  • Cache hit ratio (should match or exceed Cloudflare’s after cache warming)
  • TTFB and total response time (should be similar; Bunny often faster on EU traffic)
  • Geographic performance (test from multiple regions)
  • Edge logic correctness (any Workers/Edge Scripting behaving as expected)

Step 10: Run Parallel for One Week

During parallel period:

  • DNS pointing to Bunny
  • Cloudflare configuration kept intact (in case fast rollback needed)
  • Daily verification of metrics

If issues emerge, rollback by pointing DNS back to Cloudflare. The parallel-keep approach makes rollback under 5 minutes.

Step 11: Cancel Cloudflare Paid Plans

After confidence (typically week 2):

  1. Cancel Cloudflare paid plans (Pro, Business, Enterprise)
  2. Free Cloudflare DNS can stay if useful as backup
  3. Document final state
  4. Update internal runbooks

Tips for a Smooth Migration

  • Bunny’s pricing is dramatically more transparent. Whereas Cloudflare’s pricing surprises you when you cross plan thresholds, Bunny lets you see exactly what every operation costs. For most properties, total cost is lower than Cloudflare equivalent.
  • EU traffic performance often improves. Bunny’s network is Europe-strong; latency to European users is typically lower than Cloudflare’s. Less impressive for global traffic but the migration trade-off favors EU-focused properties.
  • Workers → Edge Scripting porting takes most of the time. If you have heavy Workers usage, plan extra time. Simple Workers port in hours; complex ones take days.
  • DNS migration is separate from CDN migration. Don’t mix them. Migrate CDN first, evaluate DNS migration later.
  • Bunny’s customer support is responsive but smaller-team. Cloudflare has 24/7 enterprise support; Bunny has email support during business hours plus community forums. For most use cases, this is fine; for mission-critical 24/7 needs, evaluate.
  • WAF and security features need testing. Cloudflare’s WAF is feature-rich; Bunny’s is simpler but covers core use cases. Test against your specific threat model.
  • Image optimization features differ. Cloudflare Images and Bunny Optimizer have similar capabilities but different pricing and APIs. Check specific feature parity if image optimization is critical.
  • For complex Cloudflare One / Zero Trust use cases, Bunny doesn’t have direct equivalent. Consider keeping Cloudflare One while migrating CDN, or evaluate alternative ZTNA solutions separately.
  • Bunny’s edge regions in 2026 cover all major European cities. Coverage is dense in EU; sparser in some non-EU regions. For EU-traffic-heavy properties, this is irrelevant; for global properties, evaluate per-region.

Was this helpful?