Manutenzione WordPress: case study
Case study: 24 interventi di manutenzione WordPress su crocierevelagrecia.it — PageSpeed da 45 a 90, refactoring JS -61%, PHP 8.4 e sicurezza.
La manutenzione di un sito WordPress non è aggiornare un plugin e sperare che funzioni. È un lavoro tecnico che tocca performance, sicurezza, accessibilità e SEO — e se viene ignorato, i problemi si accumulano fino a diventare critici. In questo case study documento i 24 interventi eseguiti su crocierevelagrecia.it, un sito WordPress per charter a vela in Grecia.
Lo stato iniziale: cosa succede quando non fai manutenzione
Il sito era fermo a WordPress 6.4.2 (1 anno e mezzo di aggiornamenti mancanti), con 15 plugin obsoleti, incompatibilità PHP 8 nascoste e un punteggio PageSpeed mobile di 45/100. Le email di contatto finivano in spam. Lo slider homepage aveva un bug visivo su iPhone. La security era insufficiente.
In sintesi: un sito che dall'esterno "funzionava", ma che accumulava debito tecnico in ogni componente.
I risultati: prima e dopo
| Metrica | Prima | Dopo |
|---|---|---|
| Performance mobile | 45/100 | 90/100 |
| Performance desktop | 54/100 | 96/100 |
| Accessibilità | 89/100 | 100/100 |
| Best Practices | 73/100 | 100/100 |
| SEO | 85/100 | 100/100 |
| JavaScript main.js | 212 KB | 82 KB (-61%) |
| Errori audit tecnico | 230 | 23 (-90%) |
Aggiornamenti core e compatibilità
WordPress e plugin
Il primo passo è stato aggiornare WordPress da 6.4.2 a 6.9.3 — un salto di 1 anno e mezzo di patch di sicurezza. Parallelamente ho aggiornato circa 15 plugin, tra cui Yoast SEO, WP Rocket, UpdraftPlus e Contact Form 7.
Compatibilità PHP 8.4
L'aggiornamento PHP ha rivelato oltre 20 incompatibilità nascoste nel tema custom: funzioni deprecate, tipizzazione mancante, chiamate a metodi rimossi. Le ho corrette tutte, rendendo il sito pronto per PHP 8.4.
Pulizia plugin
Ho rimosso 9 plugin inutilizzati — duplicati, abbandonati o sostituiti da soluzioni migliori. Meno plugin significa meno superficie d'attacco e meno codice da caricare.
Ottimizzazione performance: da 45 a 90
La performance non si migliora con un singolo trucco. Servono interventi mirati su ogni livello dello stack.
Refactoring JavaScript
Il file main.js del tema era cresciuto nel tempo fino a 3.525 righe e 212 KB. Conteneva funzioni duplicate, SVG inline ripetuti 10+ volte e logica ridondante per gallerie, form e slider.
L'ho riscritto da zero mantenendo il 100% delle funzionalità:
| Metrica | Prima | Dopo |
|---|---|---|
| Righe di codice | 3.525 | 2.261 (-36%) |
| Peso sorgente | 212 KB | 82 KB (-61%) |
| Funzioni verificate | 57 | 57 (tutte operative) |
Le ottimizzazioni principali: SVG arrows unificati in buildArrowSvg(), 3 gallerie duplicate → initGallery(config), 6 form handler duplicati → bindFieldValidator(), 6 height equalizers → equalizeChildHeight().
Ottimizzazione immagini
- Poster responsive: l'immagine hero da 311 KB (2560×1175) diventa 102 KB (1024×470) su mobile — -67%
- WebP automatico: 809 immagini servite in WebP via
.htaccess— 30-40% più leggere a parità di qualità - Cache browser: da
no-storea 1 anno per immagini e font, 1 mese per CSS/JS - font-display swap: eliminato il flash di testo invisibile (FOIT) su Montserrat
Hero video ottimizzato
Lo script di gestione del video hero aveva un ritardo di 2 secondi al resize. L'ho riscritto riducendo il JavaScript dell'85% (da 185 a 30 righe) e il tempo di risposta a 250ms.
WP Rocket tuning
Configurato il delay JavaScript di WP Rocket con esclusioni mirate per LCP e hero banner. Risolto un race condition sulla galleria: le variabili PHP inline venivano ritardate dal delay JS, causando intermittenza. Fix con retry logic e typeof guards.
Sicurezza: dalla base al livello A+
SMTP autenticato
Il modulo contatti usava mail() di PHP — le email finivano sistematicamente in spam su Gmail e venivano segnalate come "potenzialmente pericolose". Ho sostituito con SMTP autenticato via PHPMailer con firma DKIM, risolvendo i problemi di deliverability.
reCAPTCHA v3 invisibile
Aggiunto Google reCAPTCHA v3 (invisibile, nessun checkbox) su 4 punti di contatto: form principale, modal contatto, modal prenotazione e widget sidebar.
Security headers
Implementati via .htaccess e functions.php:
X-Frame-Options: DENY— protezione clickjackingX-Content-Type-Options: nosniff— previene MIME sniffingReferrer-Policy: strict-origin-when-cross-origin— privacyPermissions-Policy: camera=(), microphone=()— disabilita API non necessarie
SEO tecnico
Meta tag ottimizzati
Riscritti title e meta description su 11 pagine con keyword mapping mirato tramite Yoast SEO. Corretta la cannibalizzazione keyword su una pagina duplicata con redirect.
Schema.org
Risolti i duplicati Organization, aggiunto VideoObject per l'homepage, arricchito LocalBusiness con coordinate geografiche, orari, contatti e priceRange. Aggiunta sezione FAQPage con 8 domande reali. Risultato: structured data da 61% a 79%, zero errori di validazione.
Accessibilità
Da 89% a 100%: etichette ARIA su form e gallerie, testo alternativo su tutte le immagini, icone social con label accessibili, contrasto testo verificato WCAG AA.
Cosa insegna questo case study
La manutenzione è un investimento, non un costo
24 interventi in un periodo concentrato hanno portato il sito da "funzionante ma fragile" a veloce, sicuro e ottimizzato. L'alternativa era un rifacimento completo — molto più costoso e con tempi più lunghi.
Il debito tecnico si accumula silenziosamente
Un anno e mezzo senza aggiornamenti aveva creato 20+ incompatibilità PHP, email che finivano in spam, uno slider rotto su mobile e un punteggio performance da 45. Dall'esterno sembrava tutto ok.
Le ottimizzazioni si sommano
Nessun singolo intervento ha raddoppiato la performance. Ma la combinazione di refactoring JS (-61%), immagini WebP (-40%), cache aggressiva, CSS critico inline e lazy loading ha portato un miglioramento complessivo del 100% sul mobile (da 45 a 90). Per capire meglio quali metriche misurano la qualità tecnica di un sito, consulta la guida sui Core Web Vitals.
Se ti stai chiedendo quando WordPress sia la scelta giusta e quando convenga passare a una soluzione moderna, leggi il confronto WordPress vs Next.js.
Vuoi una manutenzione professionale per il tuo sito WordPress?
Se il tuo sito WordPress è fermo da mesi senza aggiornamenti, probabilmente ha gli stessi problemi: plugin obsoleti, performance degradata, email in spam e vulnerabilità di sicurezza. Richiedi un audit gratuito — ti invio un report dettagliato con le criticità e le priorità di intervento.