WordPress 404 su tutte le pagine tranne la home dopo un trasloco: Apache, Nginx e cosa controllare
Quando dopo il trasloco di WordPress funziona solo la home page e ogni altra pagina mostra un 404, i contenuti di solito sono intatti. Mancano le regole che traducono un indirizzo leggibile nell'articolo giusto. Su Apache e LiteSpeed se ne occupa il file .htaccess, su Nginx la configurazione del server. Parti salvando di nuovo i permalink, poi controlla il server.
Autore: Il team TellMyShop. Una guida per i titolari di siti WordPress e negozi WooCommerce: la causa, la correzione a mano e lo stesso lavoro in una conversazione in chat.
Ultimo aggiornamento: · 7 min di lettura
Come capisci che è questo problema e non un normale 404
Questo articolo riguarda una situazione precisa: tutte le pagine hanno smesso di funzionare all'improvviso, il più delle volte subito dopo il passaggio del sito a un altro hosting, un cambio di dominio o il ripristino di un backup. Singoli indirizzi con errore, per esempio dopo aver eliminato un articolo o cambiato il permalink di una pagina, sono un altro problema. Lo descriviamo nella guida all'errore 404 in WordPress.
Sintomi tipici di un trasloco:
| Sintomo | Cosa significa probabilmente |
|---|---|
| La home page funziona, articoli, pagine e categorie danno 404 | mancano le regole di riscrittura degli URL sul server |
| La bacheca /wp-admin funziona normalmente | WordPress e il database sono a posto |
| Un indirizzo con /index.php/ in mezzo apre l'articolo | WordPress funziona, il server non gli passa gli indirizzi leggibili |
| Il messaggio 404 è diverso dalla pagina 404 del tema | è il server a restituire l'errore, prima che WordPress riceva la richiesta |
| I link portano al vecchio dominio o a un indirizzo di prova | il vecchio indirizzo è ancora nelle impostazioni del sito |
L'ultima riga conviene controllarla a parte. Se menu e link portano al vecchio indirizzo, il problema sta nelle impostazioni del sito, non nelle regole del server.
Una guida di soccorso passo per passo
I passaggi vanno dal più semplice a quello che lasci all'hosting. Dopo ognuno controlla un articolo e una pagina in una finestra privata del browser.
- Salva di nuovo i permalink. Vai in Impostazioni, Permalink e clicca su Salva le modifiche senza cambiare niente. WordPress ricostruisce le regole degli URL e prova a scriverle in .htaccess. La documentazione della schermata Permalink descrive la schermata.
- Leggi il messaggio dopo il salvataggio. Se WordPress mostra un riquadro con regole da incollare a mano, non è riuscito a scrivere il file. Copia quelle regole per l'hosting o incollale tu nel file manager.
- Controlla l'indirizzo del sito. In Impostazioni, Generali, i campi Indirizzo WordPress e Indirizzo sito devono avere il nuovo dominio e l'inizio giusto (https o http, con o senza www). Se lì ci sono i vecchi indirizzi, non correggerli alla cieca, perché puoi perdere l'accesso alla bacheca. Meglio chiedere a chi segue il sito.
- Scopri su quale server gira il sito. Apache o LiteSpeed: vai al passaggio 5. Nginx: passaggio 6.
- Apache e LiteSpeed: guarda .htaccess. Nel file manager dell'hosting, nella cartella del sito, attiva la visualizzazione dei file nascosti. Il nome del file inizia con un punto, e quando copi via FTP spesso resta semplicemente sul vecchio server. Deve contenere un blocco tra le righe «# BEGIN WordPress» e «# END WordPress».
- Nginx: chiedi all'hosting una regola per WordPress. Nginx non legge .htaccess, e WordPress non aggiunge da solo le regole. Scrivi all'hosting che ti serve una configurazione che passi gli indirizzi inesistenti a index.php.
- Svuota la cache. Un plugin di cache o la cache dell'hosting possono continuare a mostrare vecchi 404 per un po', anche quando le regole funzionano già.
Apache o Nginx: chi sistema cosa
La differenza tra i server decide se te la cavi da solo o devi scrivere all'hosting.
Apache e LiteSpeed leggono il file .htaccess dalla cartella del sito. Quando il file c'è e ha il blocco di WordPress, ma le pagine danno ancora 404, il server può avere il modulo di riscrittura spento o un'impostazione che gli dice di ignorare .htaccess. Sono impostazioni del server, e le cambia l'hosting, non tu.
Nginx non ha un equivalente di .htaccess. La documentazione di WordPress sulla configurazione di Nginx dice chiaramente che WordPress non cambia da solo la configurazione di questo server, quindi senza una regola manuale agli indirizzi si aggiunge index.php. La regola la aggiunge l'hosting o l'amministratore del server. Molti hosting hanno nel pannello un modello pronto per WordPress che basta attivare.
Con un'installazione in una sottocartella, per esempio quando il blog sta in /blog/, le regole devono puntare a quella sottocartella. È una trappola comune dopo aver spostato un sito dalla cartella principale a una sottocartella o al contrario. Lo stesso caso, con una descrizione precisa del sintomo «tutto tranne la home», è trattato anche nella guida di WebNots.
Cosa puoi dare all'hosting in una sola email:
- il dominio e il fatto che dopo il trasloco funziona solo la home page,
- due indirizzi di esempio che danno 404,
- se l'indirizzo con /index.php/ funziona,
- il blocco WordPress da .htaccess, oppure il fatto che il file manca.
Come la chat aiuta a trovare la causa
Il plugin TellMyShop per WordPress e WooCommerce non modifica il file .htaccess né la configurazione del server. È un blocco voluto, e nessun interruttore lo toglie. È comunque utile per una diagnosi veloce quando il collegamento con la tua chat (Claude o ChatGPT) funziona, e per verificare che dopo la correzione tutto sia tornato. Se la chat non riesce a collegarsi al sito, segui a mano la guida di soccorso.
Nella versione gratuita TellMyShop Free la chat apre gli indirizzi scelti come fa un browser e mostra il codice di risposta, e rivede lo stato di salute del sito, il log degli errori e il report dei 404. In pochi minuti sai se il problema riguarda tutte le pagine o solo alcune, e cosa passare esattamente all'hosting.
Tu: Abbiamo spostato il sito su un nuovo hosting e credo che qualcosa si sia rotto. Controlla le pagine.
La tua chat: Ho controllato sei indirizzi. La home page risponde con codice 200. L'articolo «Come scegliere una fioriera», la pagina Contatti e la categoria Consigli rispondono con 404, e lo stesso contenuto si apre con /index.php/ nell'indirizzo.
La tua chat: Salute del sito: server Nginx. Conclusione: WordPress funziona, ma manca la regola che passa gli indirizzi a index.php. Dal plugin non posso cambiarla. Ho preparato una bozza di email all'hosting con gli indirizzi di esempio.
Tu: L'hosting ha aggiunto la regola. Controlla di nuovo.
La tua chat: Tutti e sei gli indirizzi rispondono con codice 200. Il report dei 404 dell'ultima ora non ha nuove voci.
Indirizzi e numeri in questa conversazione sono indicativi. In TellMyShop Pro la chat legge tutto il sito, quindi può anche confrontare gli indirizzi nel menu e nei link con il nuovo dominio. Cambiare le impostazioni dei permalink dalla conversazione richiede in Pro l'interruttore Tema, che dura 24 ore e richiede un backup del database di oggi. Ogni salvataggio ha un'anteprima e aspetta la tua approvazione, e puoi annullare ogni modifica dalla cronologia. I dettagli sono nella pagina TellMyShop per WordPress e WooCommerce, e le versioni le confronti nella pagina prezzi.
Dopo la correzione: cosa controllare perché Google non perda niente
Quando le pagine funzionano di nuovo, restano tre cose.
La prima sono gli indirizzi. Se durante il trasloco sono cambiati il dominio o la struttura dei permalink, i vecchi indirizzi hanno bisogno di redirect 301, altrimenti i link da altri siti e i risultati di Google porteranno nel vuoto. Come impostarli lo spieghiamo nella guida al redirect 301 in WordPress.
La seconda è la visibilità. Dopo qualche giorno di 404 alcune pagine possono essere uscite dai risultati. Se dopo la correzione non tornano, cerca le cause con l'elenco nell'articolo sul sito WordPress che non compare su Google.
La terza è il report degli errori 404. Nei primi giorni dopo la correzione guardalo ogni giorno. Le nuove voci mostreranno indirizzi che nessuno ricordava, come vecchi link a file o categorie rinominate.
Codici di risposta, salute del sito e report dei 404 li controlli nella versione gratuita TellMyShop Free. Altre guide le trovi sul blog.
Domande e risposte
Perché dopo un trasloco funziona solo la home page?
La home page non ha bisogno delle regole di riscrittura degli URL, le pagine con indirizzi leggibili sì. Quando il nuovo server non ha il file .htaccess, lo ignora o usa Nginx senza una regola per WordPress, ogni indirizzo tranne la home finisce in un errore 404. I contenuti nel database sono intatti.
Salvare i permalink aiuta sempre?
Aiuta quando WordPress può scrivere da solo il file .htaccess su un server Apache. Su Nginx questo passaggio non cambia niente sul server, perché Nginx non legge .htaccess. Allora la regola deve aggiungerla il tuo hosting o chi configura il server.
Come verifico se ho Apache o Nginx?
Il modo più semplice è chiederlo all'hosting o guardare la descrizione del piano nel pannello. WordPress mostra le informazioni sul server anche in Strumenti, Salute del sito, nella scheda Info, sezione server. Gli hosting con LiteSpeed di solito leggono .htaccess proprio come Apache.
Le pagine funzionano con /index.php/ nell'indirizzo. Cosa vuol dire?
È un segno che WordPress funziona ma il server non gli passa gli indirizzi leggibili. Un'installazione Nginx senza la regola per WordPress spesso si presenta così. Non passare per sempre a una struttura dei permalink con index.php; chiedi all'hosting di aggiungere la regola.
Dopo la correzione devo impostare dei redirect?
Se gli indirizzi non sono cambiati, no. Google tornerà agli stessi indirizzi e vedrà i contenuti. I redirect servono solo quando durante il trasloco sono cambiati il dominio, la struttura dei permalink o gli indirizzi di alcune pagine.
WordPress è un marchio della WordPress Foundation. WooCommerce è un marchio di Automattic Inc. Claude è un marchio di Anthropic PBC. ChatGPT e OpenAI sono marchi di OpenAI. TellMyShop non è affiliato a queste aziende.