Quando arriva la chiamata — “il sito non risponde”, “Google mostra avvisi di sicurezza”, “i clienti segnalano reindirizzamenti strani” — la situazione è già critica. Il danno reputazionale è in corso. Ogni ora conta.
In questo articolo descrivo il processo che abbiamo consolidato su diversi interventi di recovery WordPress, con un’attenzione specifica a preservare il posizionamento organico acquisito negli anni. Perché recuperare il sito è una cosa; recuperarlo senza far sparire tre anni di SEO è un’altra.
Perché WordPress viene compromesso
WordPress alimenta circa il 43% del web, il che lo rende il bersaglio più conveniente per attacchi automatizzati. Le cause più comuni che vediamo:
- Plugin abbandonati con vulnerabilità note e mai corrette
- Temi nulled (copie pirata che contengono backdoor integrate)
- Password deboli su account admin o FTP
- WordPress core non aggiornato da mesi o anni
- Hosting condiviso mal configurato dove un sito compromesso infetta gli altri
Il pattern tipico: un bot automatizzato scansiona migliaia di siti, trova una versione vulnerabile di un plugin popolare, inietta codice malevolo. Non serve essere un bersaglio specifico.
Prima di toccare qualsiasi cosa: la diagnosi
L’errore più frequente è mettere mano al sito live prima di capire cosa è successo davvero. Si rischia di cancellare prove utili e di non rimuovere tutto il malware.
Cosa facciamo prima di ogni intervento:
- Snapshot completo del sito compromesso — file e database — archiviato offline
- Scansione con strumenti specializzati (WPScan, Sucuri SiteCheck, MalCare) per identificare i file infetti
- Analisi dei log di accesso per capire quando è avvenuta la compromissione e da dove
- Verifica in Google Search Console per vedere se Google ha già rilevato e penalizzato il sito
Solo dopo questa fase si procede.
Il processo di recovery: staging prima di tutto
Non si ripristina mai direttamente in produzione. Creiamo sempre un ambiente di staging identico alla produzione dove lavorare in sicurezza:
Produzione (compromessa) → Backup completo → Staging locale → Pulizia → Test → Produzione pulita
Step 1 — Isolamento: se il sito è su hosting condiviso, spostiamolo su un ambiente isolato prima ancora di iniziare. La pulizia su hosting condiviso è spesso inutile perché la reinfection avviene nel giro di ore.
Step 2 — Pulizia del codice: confrontiamo i file del sito con una copia pulita di WordPress della stessa versione. Ogni differenza viene esaminata. I file del tema vengono ricostruiti da zero se necessario.
Step 3 — Pulizia del database: iniezioni SQL nascoste in widget, opzioni, post_meta. Si cercano pattern tipici: base64_decode, eval(, JavaScript offuscato in campi inaspettati.
Step 4 — Cambio credenziali: tutte le password (admin, FTP, database, hosting), chiavi segrete WordPress (wp-config.php), token API attivi.
La parte che nessuno considera: preservare il SEO
Qui sta la differenza tra un recovery frettoloso e uno fatto bene.
Un sito compromesso spesso ha già ricevuto penalizzazioni manuali da Google o è stato etichettato come “sito ingannevole”. Se si ripristina e basta, senza comunicare con Google, il sito resta penalizzato.
Le azioni necessarie sul fronte SEO:
- Verificare e rimuovere le URL spazzatura iniettate dal malware (pagine farma, spam pharma, link directory) dalla Search Console
- Richiedere la revisione manuale a Google dopo il ripristino, spiegando cosa è successo e cosa è stato fatto
- Monitorare il crawl nelle settimane successive per verificare che Google stia reindexando le pagine corrette
- Controllare i redirect — il malware spesso inietta reindirizzamenti 301 verso siti spam che avvelenano il link equity
Se il sito aveva una sitemap, verificare che posti all’indice siano solo le URL legittime.
Hardening post-recovery
Il recovery senza hardening è inutile: il sito viene reinfettato nel giro di settimane. Le misure minime che applichiamo sempre:
- WordPress Firewall (Wordfence o soluzione equivalente) con regole aggiornate automaticamente
- Autenticazione a due fattori su tutti gli account admin
- Aggiornamento automatico di core, plugin e temi (con esclusioni puntuali per i plugin che lo richiedono)
- Rimozione degli utenti admin non necessari e revisione dei ruoli
- Cambio prefisso tabelle database (se era rimasto il default
wp_) - Disabilitazione XML-RPC se non usato
- Header di sicurezza HTTP configurati a livello server
Quanto tempo richiede
Su interventi semplici (un singolo sito, compromissione recente, backup disponibile): 2-4 giorni lavorativi per pulizia, hardening e test.
Su interventi complessi (compromissione vecchia di mesi, nessun backup pulito disponibile, hosting condiviso con più siti infetti): 2-3 settimane, con ricostruzione parziale del codice.
Il fattore che più influenza i tempi è la disponibilità di un backup datato prima della compromissione. Se non esiste, si ricostruisce da zero e si importano solo i contenuti (post, pagine, immagini) dopo averli sanificati.
Se stai affrontando una situazione simile, il consiglio più importante è questo: non aspettare. Ogni ora in più significa più URL compromesse indicizzate da Google, più link spam nel tuo profilo backlink, più danni da recuperare.
Siamo disponibili per interventi urgenti — di solito rispondiamo entro poche ore.