Come pulire un sito WordPress infetto senza peggiorare la situazione
Pulire WordPress non significa cancellare file a caso. Devi contenere, capire cosa è stato toccato, bonificare e chiudere il vettore prima di tornare online.

Pulire un sito WordPress infetto è uno di quei lavori che sembrano semplici finché non rompi qualcosa di importante. Cancellare il file sbagliato, ripristinare dal backup sbagliato o lasciare aperto il vettore di ingresso sono tre modi perfetti per peggiorare la situazione.
Questa guida non sostituisce un intervento professionale nei casi complessi, ma ti dà un ordine di lavoro sensato. L'obiettivo non è sembrare eroici. È tornare online senza lasciare la porta spalancata.
TL;DR
- Prima contieni, poi pulisci.
- Conserva uno stato minimo di lavoro prima di cancellare file.
- Confronta core, plugin e tema con versioni pulite.
- Verifica utenti, cron,
wp-config.php, upload e database. - Dopo la bonifica fai hardening, altrimenti il sito si ricompromette.
1. Contenimento: riduci il danno attivo
Se il sito reindirizza traffico, invia spam o mostra contenuti malevoli, la prima priorità è ridurre impatto e propagazione.
Cosa fare:
- limita accessi amministrativi
- cambia password degli account sensibili
- se necessario metti il sito in maintenance o blocca temporaneamente parti esposte
- sospendi task o cron evidentemente anomali
Cosa non fare:
- cancellare file senza elenco o criterio
- aggiornare tutti i plugin “per provare”
- cambiare hosting senza aver capito cosa stai spostando
2. Salva uno stato minimo prima della pulizia
Anche se il sito è sporco, prima di toccare tutto conserva almeno:
- lista file modificati di recente
- copia del database applicativo
- elenco utenti WordPress
- plugin e temi presenti
- log essenziali web server o pannello
Non serve fare forensics da enterprise. Serve non lavorare al buio.
3. Parti dal core WordPress
Il core WordPress va confrontato con una versione pulita e nota.
Cosa controllare
- file PHP estranei nella root
- file core modificati fuori da patch note note
index.php,wp-blog-header.php,wp-load.php,wp-settings.phpwp-config.php
Se il core è alterato in modo diffuso, spesso conviene sostituirlo con una copia pulita della stessa versione, lasciando fuori wp-content e wp-config.php fino a verifica.
4. Poi passa a plugin e tema
Qui si annida una grossa parte dei problemi reali.
Plugin
- rimuovi quelli dismessi o inutilizzati
- sostituisci con copie pulite quelli essenziali
- elimina plugin nulled o premium di provenienza dubbia
- verifica eventuali mu-plugin non previsti
Tema
- controlla
functions.php,header.php,footer.php - cerca inclusioni sospette, eval, base64, chiamate remote non giustificate
- se il tema è custom, confrontalo con il repository o l'ultima versione affidabile
5. Controlla wp-content/uploads/
È una delle aree più usate per nascondere file PHP e dropper. In molte installazioni WordPress non dovrebbe contenere eseguibili.
Cerca:
- file
.php,.phtml,.icosospetti - nomi casuali
- cartelle nidificate senza senso
- file recenti in date coerenti con l'incidente
6. Verifica utenti, ruoli e autenticazione
Una pulizia senza controllo account è incompleta.
Controlla:
- utenti admin sconosciuti
- mail utente cambiate
- ruoli elevati di recente
- API key, token, sessioni persistenti, accessi pannello hosting
Se trovi utenze abusive, non limitarti a disattivarle. Chiediti come sono state create.
7. Controlla cron e persistenza
Un sito apparentemente pulito che si ricompromette dopo poche ore spesso ha una persistenza semplice ma efficace.
Guarda:
- cron WordPress custom
- cron di sistema
- task pianificati in pannello hosting
- script richiamati a intervalli regolari
8. Database: non sempre è il primo punto, ma va verificato
Nel database possono restare:
- utenti creati da codice malevolo
- option o transient sospetti
- payload in campi content, widget o opzioni
- redirect o script iniettati
Qui serve rigore. Non fare replace casuali se non sai esattamente cosa stai toccando.
9. Quando usare un backup pulito
Usare un backup ha senso se:
- è verificato
- sai che punto temporale è pulito
- puoi confrontare le differenze legittime da recuperare
- il vettore è stato individuato o almeno ridotto
Usare un backup non ha senso se:
- non sai quando l'infezione è iniziata
- il backup non è testato
- ripristini e poi lasci gli stessi plugin vulnerabili, accessi deboli o permessi errati
Per questa parte torna utile anche Backup 3-2-1 per WordPress e l'hub Backup & DR.
10. Hardening finale: la parte che tutti saltano
Dopo la pulizia devi chiudere il giro:
- aggiornamenti reali di core, plugin e tema
- riduzione plugin inutili
- hardening accessi e admin
- backup verificati
- monitoring di log, uptime e anomalie
- revisione permessi file e aree scrivibili
Se salti questo passaggio, non hai bonificato. Hai solo guadagnato qualche giorno.
Errori che vediamo più spesso
- il sito torna online ma nessuno verifica gli utenti admin
- si pulisce
wp-contentma non il server o i cron - si ripristina il backup e si lascia il plugin vulnerabile
- si confonde “nessun redirect visibile” con “sito pulito”
Quando questa guida non basta
Questa guida non basta se:
- il server ospita più siti sospetti
- il sito gestisce pagamenti o dati sensibili
- il provider ha rilevato malware sistemico
- non riesci a distinguere file legittimi da file malevoli
- il sito si reinfetta dopo una prima pulizia
In quei casi ha senso fermarsi e aprire un intervento vero su Pulizia sito hackerato o SOS.
Pronto a smettere di occuparti dei server?
Audit scritto, zero impegni, report PDF con assessment della tua situazione.
Altri playbook collegati.
Guide che completano questo scenario operativo e ti aiutano a chiudere il cerchio tra diagnosi, prevenzione e continuità.
Hardening Linux 2026 per web agency: baseline seria per server di produzione
L'hardening non è una checklist cosmetica. È la baseline che decide quanto un server è facile da compromettere e quanto sei veloce a reagire quando succede qualcosa.
Joomla compromesso: checklist rapida di analisi e recovery
Joomla compromesso non va trattato come semplice errore CMS. Serve una checklist rapida per capire perimetro, accessi, file alterati e recovery sensato.
Magento lento o compromesso? I segnali da non ignorare
Quando Magento rallenta senza spiegazioni credibili, soprattutto su checkout, admin o cron, devi escludere subito che il problema sia una compromissione e non solo tuning.