Perché BunnyCDN per WordPress
BunnyCDN si è affermato come una delle CDN più competitive per progetti WordPress professionali. Con 114 PoP distribuiti globalmente e prezzi a partire da 0,01$/GB, offre un rapporto qualità/prezzo difficile da battere rispetto a Cloudflare Pro o KeyCDN.
Nei nostri test su oltre 200 siti WordPress gestiti tramite AgencyPilot, BunnyCDN ha dimostrato:
- Riduzione TTFB medio del 68% su asset statici
- Risparmio bandwidth origin server fino all’89%
- Costi mensili inferiori del 40-60% rispetto a Cloudflare Pro per traffico oltre 100GB
- Latenza media globale di 23ms (test da 15 location worldwide)
La vera forza di BunnyCDN per agenzie è la gestione multi-account tramite API e la possibilità di creare pull zone dedicate per ogni cliente senza costi fissi.
Setup iniziale BunnyCDN
Creazione account e Pull Zone
Dopo aver creato l’account su bunny.net, il primo passo è configurare una Pull Zone, che funziona come proxy inverso del tuo origin server.
- Dal dashboard, clicca su CDN → Add Pull Zone
- Inserisci un nome identificativo (es: cliente-sitoweb-it)
- In Origin URL inserisci l’URL completo del sito: https://sitocliente.it
- Seleziona le Pricing Zones: per clienti italiani/europei, EU+NA è sufficiente (risparmio 30% vs Tier 1)
- Abilita Enable Logging per analisi successive
- Attiva Cache Expiration Time: imposta 7 giorni per asset statici
Una volta creata la Pull Zone, annota l’Hostname CDN assegnato (formato: nome-pullzone.b-cdn.net). Questo sarà l’endpoint per servire gli asset.
Configurazione DNS e dominio personalizzato
Per usare un dominio custom (es: cdn.sitocliente.it) invece dell’hostname BunnyCDN:
- Nella Pull Zone, vai su Hostnames → Add Hostname
- Inserisci il sottodominio desiderato: cdn.sitocliente.it
- Nel pannello DNS del dominio, crea un record CNAME:
Nome: cdn Tipo: CNAME Valore: nome-pullzone.b-cdn.net TTL: 3600
- Torna su BunnyCDN e clicca Enable SSL per generare il certificato Let’s Encrypt automatico (richiede 5-15 minuti)
Il certificato SSL viene rinnovato automaticamente ogni 60 giorni. Per progetti enterprise, BunnyCDN supporta anche certificati custom via API.
Integrazione WordPress
Plugin consigliati
Per l’integrazione WordPress esistono tre approcci principali:
- CDN Enabler: plugin leggero (12KB), ideale per setup semplici senza complessità aggiuntive
- WP Rocket: soluzione all-in-one che include integrazione CDN nativa, cache e ottimizzazioni (licenza a pagamento)
- Bunny Optimizer: plugin ufficiale BunnyCDN con funzioni avanzate (Bunny Fonts, compressione immagini)
Per questa guida useremo CDN Enabler per la sua semplicità e controllo granulare.
Configurazione CDN Enabler
- Installa CDN Enabler da WordPress.org
- Vai in Impostazioni → CDN Enabler
- In CDN URL inserisci: https://cdn.sitocliente.it (o l’hostname BunnyCDN diretto)
- In Included Directories specifica:
wp-content,wp-includes - Abilita CDN HTTPS
- In Included File Extensions, aggiungi le estensioni da servire via CDN:
css,js,jpg,jpeg,png,webp,gif,svg,woff,woff2,ttf,eot,mp4,pdf
Salva e svuota la cache WordPress. Il plugin riscriverà automaticamente gli URL degli asset sostituendo il dominio origin con quello CDN.
Verifica integrazione
Per controllare che gli asset vengano serviti correttamente:
- Apri la home del sito e visualizza il sorgente HTML
- Verifica che URL di immagini e CSS contengano il dominio CDN
- Ispeziona i response headers di un’immagine (F12 → Network): deve contenere
X-Pull-Zone: nome-pullzoneeX-Cache: HITdopo il primo caricamento - Usa
curl -I https://cdn.sitocliente.it/wp-content/uploads/image.jpgper verificare gli header da terminale
Ottimizzazione cache e performance
Impostazioni avanzate Pull Zone
Dal pannello BunnyCDN, ottimizza queste impostazioni per WordPress:
- Cache Control Public Max Age: imposta 604800 (7 giorni) per asset statici
- Query String Sort: abilita per migliorare cache hit ratio su asset con parametri (es: ?ver=1.2.3)
- Vary Cache: disabilita a meno che non servi contenuti diversi per user-agent
- Optimizer: abilita Image Optimization per compressione automatica (WebP, ridimensionamento)
- Perma-Cache: attiva per asset con hash nel nome file (es: main.a3f8b2.js)
Per WordPress con WooCommerce o aree riservate, aggiungi in Ignored Query Strings:
add-to-cart,removed_item,cart_item_key,nocache
Purge cache selettivo
BunnyCDN permette purge via API, utile per automatizzare invalidazioni dopo pubblicazione contenuti. Esempio con cURL:
curl -X POST "https://api.bunny.net/pullzone/{pullZoneId}/purgeCache" \
-H "AccessKey: tua-api-key" \
-H "Content-Type: application/json" \
-d '{"CacheTag": "wp-content/uploads"}'
Per integrare il purge automatico in WordPress, usa hook come save_post o integra con plugin come WP Rocket che supportano purge API CDN.
Test performance e benchmark
Metodologia di test
Per misurare l’impatto reale di BunnyCDN, abbiamo testato un sito WordPress standard (tema Astra, 12 plugin attivi, database 450MB) in tre configurazioni:
- Baseline: origin server diretto (VPS EU-Central, 4vCPU, 8GB RAM)
- BunnyCDN: Pull Zone con ottimizzazioni standard
- BunnyCDN + Optimizer: con Image Optimization e Bunny Fonts
Test eseguiti con WebPageTest (9 run, median result) da 6 location: Milano, Londra, New York, San Paolo, Tokyo, Sydney.
Risultati benchmark
Dati medi aggregati:
- TTFB asset statici: Baseline 420ms → BunnyCDN 135ms (-68%)
- LCP: Baseline 2.8s → BunnyCDN 1.6s → BunnyCDN+Optimizer 1.1s
- Total Blocking Time: riduzione del 34% con BunnyCDN grazie a HTTP/3
- Bandwidth origin: riduzione dell’87% (da 45GB/mese a 6GB/mese)
- Cache Hit Ratio: 92% dopo 48h di warm-up
La location più migliorata è stata Sydney: LCP passato da 4.2s a 1.4s (-67%), confermando l’efficacia del PoP Australia.
Tool di monitoraggio consigliati
Per monitoraggio continuativo:
- BunnyCDN Analytics: dashboard nativa con bandwidth, request count, cache ratio per location
- New Relic: per correlazione tra CDN performance e metriche applicative
- GTmetrix: test schedulati settimanali per tracking trend
- Lighthouse CI: integrato in pipeline deploy per regression testing
In AgencyPilot abbiamo integrato API BunnyCDN per esporre metriche CDN direttamente nel dashboard clienti, con alert automatici se cache hit ratio scende sotto 85%.
Troubleshooting comuni
Asset non caricati o errori CORS
Se font o risorse cross-origin non si caricano:
- Vai su Edge Rules nella Pull Zone
- Aggiungi header
Access-Control-Allow-Origin: * - Per maggiore sicurezza, limita a domini specifici:
Access-Control-Allow-Origin: https://sitocliente.it
Cache non si aggiorna
Se modifiche non si riflettono:
- Verifica che gli header
Cache-Controldall’origin non siano troppo aggressivi - Usa Purge Cache dal pannello BunnyCDN
- Controlla Ignored Query Strings: parametri non ignorati generano varianti cache distinte
- Disabilita temporaneamente cache per debug: Cache Expiration Time = 0
Costi superiori al previsto
Se il costo mensile è anomalo:
- Verifica Statistics → Referer per identificare hotlinking
- Attiva Token Authentication per proteggere asset sensibili
- Controlla Status Codes: troppi 404/500 indicano richieste a risorse inesistenti (spreco bandwidth)
- Considera ridurre Pricing Zones escludendo regioni non target
FAQ
BunnyCDN è compatibile con tutti i plugin WordPress?
Sì, BunnyCDN funziona come CDN pull standard e non richiede modifiche ai plugin. Tuttavia, plugin che generano URL assoluti hardcoded (raro) potrebbero richiedere configurazione aggiuntiva. Cache plugin come WP Rocket, W3 Total Cache e LiteSpeed Cache hanno integrazione nativa. Per plugin page builder (Elementor, Divi), nessuna configurazione particolare è necessaria.
Come gestire ambienti staging e produzione con BunnyCDN?
Consigliamo di creare Pull Zone separate per staging e produzione. Usa hostname diversi (cdn-staging.dominio.it vs cdn.dominio.it) e configura CDN Enabler con condizionali basati su WP_ENV. In alternativa, usa Edge Rules per routing basato su origin header. Per agenzie, l’API BunnyCDN permette provisioning automatico via script durante deploy.
Qual è il limite di bandwidth incluso e come vengono fatturati gli extra?
BunnyCDN non ha limiti di bandwidth inclusi: paghi solo quello che usi. Il pricing è a consumo: EU+NA parte da 0,01$/GB (primi 500GB), poi scala a 0,008$/GB oltre 500TB/mese. Fatturazione mensile posticipata. Per confronto, Cloudflare Pro costa 20$/mese fissi + 0,05$/GB extra oltre il traffico incluso. Per siti sotto 100GB/mese, BunnyCDN costa tipicamente 1-3$/mese.
BunnyCDN supporta HTTP/3 e quanto impatta le performance?
Sì, BunnyCDN supporta HTTP/3 (QUIC) di default su tutte le Pull Zone. Nei nostri test, HTTP/3 ha ridotto il connection time del 18-25% rispetto a HTTP/2, particolarmente evidente su connessioni mobile con alta latenza. L’impatto su LCP è stato mediamente di -12%. HTTP/3 si attiva automaticamente per browser compatibili senza configurazione aggiuntiva.
È possibile usare BunnyCDN per video streaming su WordPress?
Sì, BunnyCDN offre uno Stream service dedicato per video, separato dalla CDN standard. Per WordPress, puoi integrare Bunny Stream tramite plugin o shortcode custom. Lo Stream include transcodifica automatica, adaptive bitrate e player embeddabile. Il costo è 0,005$/GB storage + 0,01$/GB bandwidth (EU+NA). Per video occasionali, la Pull Zone standard con MP4 statici è sufficiente e più economica.