Se i visitatori ti dicono che il tuo sito li manda su un altro sito, come una finta pagina di premi, un sito di scommesse o di farmaci, un avviso del tipo "il tuo dispositivo è infetto" o una pagina che chiede di consentire le notifiche, molto probabilmente il tuo sito WordPress sta reindirizzando il traffico senza il tuo permesso.
Il reindirizzamento può riguardare:
- tutti i visitatori
- solo i visitatori da smartphone
- solo chi arriva da Google o dai social
- solo chi visita il sito per la prima volta
- solo alcune pagine
- i visitatori che non hanno effettuato l’accesso a WordPress
Quest’ultimo punto è importante. Molti reindirizzamenti malevoli sono progettati per nascondersi al proprietario del sito. Potresti aprire il sito, vedere che sembra tutto normale e concludere che il cliente si è sbagliato. Spesso non è così.
Un reindirizzamento di questo tipo di solito è il segnale che al sito è stato aggiunto qualcosa: uno script, una regola, una voce nel database o un file. Non significa necessariamente che contenuti, ordini o dati dei clienti siano andati persi. Tuttavia, va trattato come un incidente di sicurezza finché non se ne trova la causa.
Questa guida spiega perché il reindirizzamento potrebbe esserti invisibile, dove di solito è nascosto, quali cause legittime escludere per prime, cosa puoi controllare in sicurezza e quando è meglio chiedere supporto tecnico.
Cosa significa quando WordPress reindirizza a siti spam?
Un reindirizzamento dice al browser di lasciare la pagina richiesta e aprire un indirizzo diverso. I reindirizzamenti sono normali quando una pagina viene spostata, un sito passa a HTTPS o cambia dominio.
Il problema inizia quando il reindirizzamento:
- manda i visitatori su un dominio che non è tuo
- non è stato creato da te o dal tuo team
- compare solo in certe condizioni
- cambia destinazione nel tempo
- ritorna dopo che pensavi di averlo rimosso
Nella maggior parte dei casi, è la parte visibile di una compromissione. Qualcuno ha trovato il modo di aggiungere codice al sito e usa il tuo traffico per mandare le persone su pagine che gli fanno guadagnare o che cercano di ingannare i visitatori.
Perché per me funziona e per i miei clienti no?
È la fonte di confusione più comune.
I reindirizzamenti malevoli sono spesso scritti per attivarsi solo per certi visitatori. Questa tecnica si chiama cloaking. Lo scopo è non farsi notare dal proprietario del sito, dallo sviluppatore e a volte dagli scanner di sicurezza, così il reindirizzamento resta attivo più a lungo.
Il codice può verificare:
- se il visitatore ha effettuato l’accesso a WordPress
- se il visitatore usa un telefono o un computer
- se il visitatore arriva da un motore di ricerca o da un social network
- se il visitatore è già stato sul sito, spesso tramite un cookie
- il paese o l’indirizzo IP del visitatore
- l’ora del giorno, o una probabilità casuale
Così la persona che più probabilmente testa il sito, un amministratore che ha effettuato l’accesso, lo visita spesso e digita l’indirizzo direttamente, è proprio quella che ha meno probabilità di vedere il reindirizzamento.
"Per me funziona" non è la prova che il sito sia pulito.
Prendi sul serio le segnalazioni dei clienti e chiedi loro dettagli: quale dispositivo, quale browser, come sono arrivati al sito e dove sono finiti.
Escludi prima le cause legittime
Non tutti i reindirizzamenti inattesi sono malware. Prima di pensare al peggio, valuta se si applica uno di questi casi.
Un plugin o una regola di reindirizzamento configurati male
Molti siti usano un plugin per gestire i reindirizzamenti, per esempio dopo un restyling. Una regola con un errore di battitura, un carattere jolly che corrisponde a troppe pagine o una vecchia regola che punta a un dominio nel frattempo scaduto possono mandare i visitatori in un posto inatteso.
Un dominio scaduto merita attenzione: se un reindirizzamento punta a un dominio che nessuno ha rinnovato, qualcun altro potrebbe averlo registrato e riempito di spam.
L’indirizzo del sito è sbagliato dopo una migrazione
WordPress memorizza due indirizzi: il WordPress Address (Indirizzo WordPress) e il Site Address (Indirizzo sito). Se una migrazione o un cambio di dominio non sono stati completati correttamente, il sito potrebbe continuare a mandare i visitatori su un vecchio dominio, un indirizzo di staging o un URL temporaneo dell’hosting.
Di solito questo riguarda tutti i visitatori, te compreso, il che rende più facile distinguerlo da un reindirizzamento malevolo.
Un circuito pubblicitario o uno script di terze parti
Se il tuo sito mostra pubblicità, un annuncio a volte può aprire un’altra pagina o reindirizzare i visitatori. Widget incorporati, strumenti di chat, script di tracciamento e altro codice esterno possono fare lo stesso se il servizio che c’è dietro è compromesso.
In questo caso i file di WordPress potrebbero essere del tutto puliti, ma il problema è comunque sulle tue pagine e va comunque affrontato.
Una regola della CDN, dell’hosting o del DNS
I reindirizzamenti possono essere configurati anche fuori da WordPress: nel pannello dell’hosting, in una CDN come Cloudflare o presso il registrar del dominio. Una regola aggiunta lì, per errore o da qualcuno con accesso a quell’account, si applica prima ancora che entri in gioco WordPress.
Se nessuno di questi casi spiega ciò che descrivono i visitatori, tratta il reindirizzamento come malevolo.
Dove si nasconde di solito un reindirizzamento malevolo?
Non devi trovare il codice da solo, ma è utile sapere che un reindirizzamento può trovarsi in diversi punti. È anche il motivo per cui rimuoverne un pezzo spesso non basta.
I punti più comuni includono:
- JavaScript iniettato in pagine, articoli, widget o impostazioni del tema, spesso caricato da un dominio esterno
- regole del server nel file
.htaccess, che possono reindirizzare i visitatori in base al dispositivo o al sito di provenienza - impostazioni del database, come il WordPress Address e il Site Address, o opzioni di temi e plugin che memorizzano script
- un plugin malevolo, a volte con un nome credibile, a volte nascosto dall’elenco dei plugin
- file del tema modificati, come l’header o il file
functions.php - file del core di WordPress modificati o file estranei inseriti tra di essi
- attività pianificate che rimettono il reindirizzamento dopo la rimozione
- account amministratore sconosciuti che permettono all’attaccante di tornare
Un singolo incidente spesso ne usa più di uno. Per esempio, uno script nel database può fare il reindirizzamento, mentre un file nascosto altrove rimette lo script ogni volta che viene cancellato.
Cosa può controllare chiunque in sicurezza?
Questi controlli non richiedono competenze tecniche e non modificano nulla sul sito.
Prova a riprodurre il reindirizzamento come un visitatore
Fai il test in condizioni simili a quelle di un visitatore reale:
- esci da WordPress, oppure usa una finestra privata o in incognito
- usa uno smartphone, idealmente con i dati mobili invece del Wi-Fi dell’ufficio
- cerca la tua attività su Google e fai clic sul tuo risultato invece di digitare l’indirizzo
- prova alcune pagine diverse, non solo la home page
- chiedi a un collega o a un amico di provare dal proprio dispositivo
Se compare il reindirizzamento, non interagire con la pagina di destinazione. Non consentire notifiche, non scaricare nulla e non inserire alcuna informazione. Chiudi la scheda e, se puoi, annota l’indirizzo che mostrava.
Annota cosa l’ha fatto scattare: dispositivo, browser, come sei arrivato e quale pagina.
Controlla Google Search Console
Se il tuo sito è collegato a Google Search Console, apri:
Security & Manual Actions → Security Issues
(nell’interfaccia italiana: Sicurezza e azioni manuali → Problemi di sicurezza). Google potrebbe segnalare contenuti compromessi, malware o pagine ingannevoli, con URL di esempio. Sono campioni, non un elenco completo.
Può essere utile anche lo strumento Controllo URL. Testare l’URL live mostra come Google recupera la pagina, che potrebbe essere diversa da ciò che vedi nel tuo browser.
Se non hai accesso a Search Console, chiedi a chi gestisce il sito o il suo marketing.
Cerca segnali evidenti nella bacheca di WordPress
Se riesci ad accedere, cerca:
- plugin che non riconosci in Plugins → Installed Plugins (Plugin → Plugin installati)
- amministratori che non riconosci in Users → All Users (Utenti → Tutti gli utenti)
- regole di reindirizzamento aggiunte di recente in qualsiasi plugin di redirect che usi
- il WordPress Address e il Site Address in Settings → General (Impostazioni → Generali)
Annota ciò che trovi, ma non cancellare ancora nulla. Utenti e plugin sconosciuti sono prove, e rimuoverli può rendere più difficile capire cosa è successo.
Cosa puoi provare in sicurezza?
L’approccio giusto dipende da ciò che hai trovato e da quanto è importante il sito per la tua attività.
Opzione 1: correggi un reindirizzamento legittimo
Se la causa è chiaramente una regola di reindirizzamento creata da te o dal tuo team, un indirizzo del sito sbagliato dopo una migrazione o una regola nella CDN o nel pannello dell’hosting, correggerla potrebbe essere tutto ciò che serve.
Fai una modifica, poi ripeti il test da una finestra privata e da un dispositivo mobile.
Se non sei del tutto sicuro che il reindirizzamento sia legittimo, non fermarti qui: trattalo come malevolo finché non è dimostrato il contrario.
Opzione 2: contatta il tuo hosting
Il tuo hosting potrebbe essere in grado di dirti se:
- il suo scanner ha segnalato file sul tuo account
- dei file sospetti sono stati messi in quarantena
- altri siti sullo stesso account sono coinvolti
- esiste un backup precedente al problema
Il supporto dell’hosting può aiutarti a contenere l’incidente, ma potrebbe non ripulire completamente WordPress né scoprire come è entrato l’attaccante.
Opzione 3: limita i danni mentre si indaga sulla causa
Se sono coinvolti molti visitatori, valuta di sospendere le campagne pubblicitarie a pagamento e le campagne email che portano traffico al sito, e avvisa il tuo team così può rassicurare i clienti. Sono precauzioni, non una soluzione.
Opzione 4: valuta un backup, con attenzione
Ripristinare un backup precedente all’inizio del reindirizzamento può eliminare il codice malevolo. Però potrebbe anche:
- riportare la stessa vulnerabilità che ha fatto entrare l’attaccante
- contenere codice già presente ma non ancora attivo
- sovrascrivere ordini, invii di moduli o contenuti recenti
- cancellare le prove di quanto accaduto
Non ripristinare un backup finché non sai, almeno a grandi linee, quando è iniziato il problema e quali dati andrebbero persi. Dopo qualsiasi ripristino, il punto di ingresso originale va comunque trovato e chiuso.
Cosa dovresti evitare?
Evita di:
- dare per scontato che le segnalazioni siano sbagliate perché tu non vedi il reindirizzamento
- aprire il sito spam per "vedere cos’è"
- cancellare file o plugin a caso
- rimuovere solo lo script che hai trovato e fermarti lì
- installare più plugin di sicurezza contemporaneamente
- cambiare molte impostazioni nello stesso momento
- pubblicare log, screenshot delle impostazioni o credenziali in forum pubblici
- inviare password tramite email ordinaria
Cambia una cosa alla volta, tieni traccia di ciò che hai fatto e ripeti il test dopo ogni passaggio.
Se non sei sicuro, fermarti è più sicuro che continuare. D4Hub può subentrare in qualsiasi momento, anche dopo un tentativo di pulizia non riuscito.
Quando chiedere supporto tecnico?
Il supporto tecnico è consigliato quando:
- non riesci a trovare una spiegazione legittima per il reindirizzamento
- i clienti continuano a segnalarlo dopo le tue modifiche
- Google Search Console segnala un problema di sicurezza
- hai trovato amministratori, plugin o file sconosciuti
- il reindirizzamento ritorna dopo essere stato rimosso
- il sito gestisce pagamenti, abbonamenti o dati personali
- più siti condividono lo stesso account di hosting
- non hai un backup recente e pulito
- non ti senti a tuo agio a lavorare con i file o il database
Non devi riprodurre il reindirizzamento né individuare il codice prima di chiedere aiuto. Una descrizione chiara di ciò che vivono i visitatori basta per iniziare.
Quali informazioni dovresti raccogliere?
Dettagli utili:
- l’URL del sito
- dove vengono mandati i visitatori, se lo sai
- quali dispositivi e browser sono coinvolti
- come i visitatori sono arrivati al sito, per esempio da Google
- se sei riuscito a riprodurlo
- quando è arrivata la prima segnalazione
- eventuali notifiche di Search Console
- modifiche recenti al sito, all’hosting o al DNS
- se WordPress è accessibile e se esiste un backup recente
- eventuali passaggi già fatti
Non inviare password, chiavi private o credenziali complete tramite canali non protetti. D4Hub può spiegarti come condividere gli accessi in sicurezza.
Come può aiutarti D4Hub
L’obiettivo non è solo fermare il reindirizzamento oggi, ma assicurarsi che non ritorni la settimana prossima.
A seconda della situazione, D4Hub può aiutarti a:
- riprodurre il reindirizzamento nelle condizioni descritte dai visitatori
- escludere cause legittime come regole di reindirizzamento, migrazioni, impostazioni della CDN o pubblicità
- controllare i file di WordPress, il database, gli utenti e le attività pianificate
- rivedere le regole del server, compreso il file
.htaccess - individuare plugin malevoli, modifiche al tema e script iniettati
- rimuovere il reindirizzamento e qualsiasi cosa lo reinstalli
- trovare e chiudere il punto di ingresso originale
- aggiornare i componenti vulnerabili e mettere in sicurezza gli account
- valutare i backup e pianificare un ripristino senza perdere i dati recenti
- coordinarsi con il tuo hosting
- supportare una revisione di sicurezza di Google se è stato emesso un avviso
Puoi chiedere supporto in qualsiasi momento: quando arriva la prima segnalazione di un cliente, dopo che il tuo hosting ha scansionato il sito o dopo una pulizia che non ha tenuto.
Apri un ticket di supportoPer chi vuole mettere le mani in pasta: rintracciare il reindirizzamento
I controlli seguenti sono pensati per chi ha dimestichezza con la riga di comando, WP-CLI, i file manager dell’hosting e SFTP.
Prima di iniziare, fai un backup completo di file e database e tienilo separato dal sito live. Conserva le prove e ti dà una via di ritorno. La maggior parte dei controlli seguenti si limita a leggere informazioni, ma tratta con attenzione ogni modifica a file e database, e cambia una cosa alla volta.
Controlla le impostazioni dell’indirizzo del sito
Confronta i due indirizzi memorizzati nel database:
wp option get siteurl
wp option get homeEntrambi dovrebbero mostrare il tuo dominio, con il protocollo che ti aspetti. Un dominio sconosciuto qui è un forte segnale di problema.
Controlla anche in wp-config.php queste costanti, che quando presenti prevalgono sui valori del database:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Se esistono e puntano in un posto inatteso, annotalo prima di cambiare qualsiasi cosa.
Esamina il file .htaccess
Sui server Apache e LiteSpeed, apri il file .htaccess nella cartella principale di WordPress. Un blocco WordPress standard è fatto così:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressLe versioni recenti possono includere una riga in più per HTTP_AUTHORIZATION, e i plugin di cache o di sicurezza spesso aggiungono sezioni proprie chiaramente etichettate.
Diffida delle regole che controllano HTTP_REFERER o HTTP_USER_AGENT e poi reindirizzano a un dominio esterno. Cerca file .htaccess anche nelle sottocartelle, come wp-content/uploads/.
I siti su Nginx non usano .htaccess. Lì le regole di reindirizzamento si trovano nella configurazione del server, che di solito richiede l’intervento del tuo hosting.
Riproduci i reindirizzamenti nascosti con curl
Puoi richiedere una pagina fingendo di essere un visitatore da mobile che arriva da Google:
curl -sI -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1" -e "https://www.google.com/" https://example.com/Guarda la riga di stato e l’eventuale header Location:. Un 301 o 302 che punta a un dominio che non è tuo conferma un reindirizzamento lato server. Confronta con lo stesso comando senza -A ed -e.
Alcuni codici malevoli reagiscono solo a una richiesta completa, non a quella con i soli header inviata da -I. Per salvare invece la pagina completa:
curl -s -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1" -e "https://www.google.com/" https://example.com/ -o page.htmlMolti reindirizzamenti avvengono in JavaScript dopo il caricamento della pagina, e curl non lo esegue. Apri page.html con un editor di testo, non con un browser, e cerca script caricati da domini sconosciuti o lunghi blocchi di codice illeggibile.
Cerca script iniettati nel database
WP-CLI può cercare nel database senza modificarlo:
wp db search '<script' --all-tablesAspettati molti risultati legittimi, per esempio da analytics, page builder o moduli incorporati. Cerca tag script che puntano a domini che non riconosci, o codice fortemente offuscato. Puoi anche cercare un dominio verso cui sono stati mandati i visitatori:
wp db search 'suspicious-domain.example' --all-tablesNon eseguire wp search-replace e non cancellare righe in base a questi risultati a meno che tu non sia certo di cosa fa ogni voce. I dati serializzati nelle opzioni dei plugin possono rompersi se modificati a mano.
Verifica i file del core e dei plugin
Questi comandi confrontano i tuoi file con le versioni ufficiali:
wp core verify-checksums
wp plugin verify-checksums --allLa verifica dei plugin funziona solo per quelli della directory di WordPress.org. I plugin premium e personalizzati risulteranno non verificabili, il che di per sé non è un segno di infezione.
Controlla anche wp-content/mu-plugins/. I plugin inseriti lì si caricano automaticamente e non compaiono nel normale elenco dei plugin.
Rivedi amministratori e attività pianificate
wp user list --role=administrator
wp cron event listAnnota eventuali account sconosciuti o eventi pianificati poco familiari, con le relative date, prima di rimuovere qualsiasi cosa. Un’attività pianificata può essere proprio ciò che rimette il reindirizzamento dopo che l’hai cancellato.
Se trovi qualcosa che non capisci, fermati e chiedi. D4Hub può rivedere i risultati con te o prendere in carico l’analisi.
Domande frequenti
Perché non vedo il reindirizzamento quando visito il mio sito?
I reindirizzamenti malevoli spesso saltano gli amministratori collegati, i visitatori abituali o chi digita l’indirizzo direttamente. Fai il test da una finestra privata, su un dispositivo mobile con i dati mobili e facendo clic sul tuo sito nei risultati di ricerca di Google.
Il mio sito è stato violato se reindirizza a siti spam?
Se hai escluso plugin di reindirizzamento, migrazioni, regole della CDN e script pubblicitari, una compromissione è la spiegazione più probabile. Va analizzata come un incidente di sicurezza.
Ho rimosso lo script e il reindirizzamento è tornato. Perché?
Qualcos’altro nel sito lo sta rimettendo. È frequente: un file nascosto, un’attività pianificata, un plugin malevolo o un account amministratore sconosciuto possono reinstallare il reindirizzamento. Va controllato l’intero sito, non solo lo script visibile.
Google potrebbe segnalare il mio sito come pericoloso?
Sì. I reindirizzamenti verso pagine ingannevoli o dannose sono un motivo frequente degli avvisi di sicurezza di Google. Controlla Search Console e risolvi la causa prima di richiedere una revisione.
Dovrei mettere il sito offline?
Non sempre. Se molti visitatori vengono reindirizzati e la causa non si può fermare rapidamente, la modalità manutenzione può ridurre i danni mentre si analizza il sito. Per un negozio o un sito membership, valuta questa scelta rispetto agli ordini e agli accessi persi.
D4Hub può aiutarmi se non riesco a riprodurre il reindirizzamento?
Sì. Condividi ciò che hanno segnalato i clienti, compresi i dispositivi e il modo in cui sono arrivati al sito. D4Hub può provare a riprodurlo in quelle condizioni e cercare nel sito il codice che lo causa.