Errore 404: cos'è, come trovarlo e quando usare un redirect 301
Capitolo 7 di 8 della guida SEO tecnica
Cos'è l'errore 404, se fa male alla SEO, come trovarlo con Search Console e crawler e come fare un redirect 301 su Apache, Nginx e WordPress.
Fondatore di SEO SRL
Pubblicato il 12 min di lettura
L'errore 404 è il codice di stato HTTP con cui un server risponde quando l'URL richiesto non corrisponde a nessuna risorsa.
Indice dei contenuti (11 sezioni)
In Italia “errore 404” conta circa 4.400 ricerche al mese su Google (nostra analisi: volumi medi mensili di ricerca su Google, Italia, ultimi 12 mesi). Chi lo cerca è quasi sempre davanti a una pagina che non si apre, ma per chi gestisce un sito la domanda è un'altra: quanti URL restituiscono questo errore, quali hanno un valore e come si rimediano. Qui trovi il significato del codice, la posizione di Google, il modo di trovare i 404, cosa fare caso per caso e come impostare un redirect 301 su Apache, Nginx e WordPress.
Cos'è l'errore 404
Il 404 è un codice di stato HTTP: il server lo restituisce quando riceve una richiesta per un URL che non corrisponde a nessuna risorsa. I codici di stato sono definiti dalla specifica HTTP, la RFC 9110, che al capitolo 15 elenca sia “404 Not Found” sia “410 Gone” e i redirect 301, 302, 307 e 308. Nei browser lo stesso errore compare come “Not Found 404”, “Pagina non trovata” o “404 Not Found”: sono lo stesso codice con testi diversi, scelti dal server o dal tema del sito.
L'errore non dice perché la pagina non c'è. Può essere stata eliminata, spostata senza redirect, scritta male in un link o digitata male da chi visita il sito. Per questo la prima domanda utile non è “come lo tolgo”, ma “quell'URL doveva esistere?”.
404, 410, soft 404, 500 e 503
Google tratta i codici di stato in modo diverso a seconda della famiglia, come spiega nella documentazione sui codici di stato HTTP. Questa tabella riassume quelli che si confondono più spesso.
| Codice | Significato | Cosa fa Google |
|---|---|---|
| 404 | La risorsa non esiste (o non si vuole dire che esiste) | Non usa i contenuti dell'URL; se era indicizzato lo toglie dall'indice, e le scansioni di quell'URL si diradano |
| 410 | La risorsa è stata rimossa in via definitiva | Stesso trattamento del 404: per la Guida di Search Console i due codici sono equivalenti |
| Soft 404 | Il server risponde 200, ma la pagina dice “non trovata” o è vuota | Search Console la segnala come soft 404 anche se il server ha risposto con un successo |
| 500 | Errore interno del server | Riduce la frequenza di scansione in proporzione al numero di URL con errore; gli URL che continuano a dare 500 escono dall'indice |
| 503 | Servizio temporaneamente non disponibile | Rallenta temporaneamente la scansione; gli URL già indicizzati restano nell'indice, ma se l'errore dura vengono eliminati |
La differenza pratica tra 404 e 410 è di intenzione: il 410 dichiara che la rimozione è voluta e definitiva. Per Google, però, non cambia il risultato, e la Guida di Search Console li considera equivalenti. Il 500 e il 503 sono invece problemi del server, non della singola pagina: se ne parla nell'articolo sul server proxy, dove trovi come si configura un server davanti al sito.
Un errore 404 fa male alla SEO?
Secondo la Guida di Search Console, gli errori 404 “non incidono negativamente sull'indicizzazione o sul ranking” del sito. Se sei certo che gli URL non debbano esistere, puoi lasciarli stare, purché restituiscano un vero 404 e non siano bloccati da robots.txt. Un sito che elimina pagine e restituisce 404 si comporta correttamente.
Il danno viene da altri tre casi, che la stessa guida indica come da correggere:
- Pagine importanti spostate senza redirect verso la nuova posizione: il traffico e i link che arrivavano sul vecchio URL finiscono nel vuoto.
- URL inviati a Google con errore, per esempio presenti in una sitemap: la sitemap deve elencare solo pagine che rispondono 200.
- URL sbagliati e molto richiesti, per esempio refusi ricorrenti in link esterni: la guida suggerisce di reindirizzarli alla pagina corretta.
In sostanza, il 404 non è un difetto: lo è perdere un link che portava visite o autorevolezza a una pagina che esisteva e che oggi non risponde. La soglia da guardare non è il numero totale di 404, ma quali URL tra quelli che restituiscono 404 avevano valore.
Come trovare gli errori 404
Servono almeno due punti di vista: quello di Google e quello del tuo sito. Il primo mostra cosa Google ha incontrato, il secondo cosa c'è davvero tra le pagine.
- Search Console, report “Indicizzazione delle pagine”. Tra i motivi per cui le pagine non sono indicizzate compaiono “Non trovata (404)” e “Soft 404”. Il report, descritto nella Guida di Search Console, mostra gli URL che hanno restituito 404 nell'ultimo mese e permette di aprire l'analisi di ogni URL con lo strumento Controllo URL. Per i soft 404, la guida consiglia di restituire un vero 404 se la pagina non esiste e, se invece è valida, di aggiungere contenuti che lo chiariscano.
- Log del server. Le richieste con risposta 404 che arrivano da visitatori e bot, comprese quelle che Search Console non ti mostra. Sono il posto in cui si vedono i refusi di link esterni e le vecchie URL ancora richieste.
- Un crawler come Screaming Frog: scansiona il sito come farebbe un motore di ricerca e segnala i link interni che puntano a pagine con codice 4xx, con la pagina di origine accanto a ogni errore. È lo strumento adatto a scovare i link interni rotti.
Nel metodo di un audit SEO queste tre fonti vengono incrociate: l'elenco di Search Console dice cosa ha visto Google, il crawl dice da dove nasce l'errore, i log dicono quali URL sono davvero richiesti.
Cosa fare caso per caso
Un 404 non ha una cura unica. Si decide guardando l'origine dell'URL e se ha valore.
| Situazione | Cosa fare |
|---|---|
| La pagina è stata spostata o sostituita da una equivalente | Redirect 301 verso la pagina equivalente |
| La pagina è stata eliminata e non ha un equivalente | Lascia il 404, oppure restituisci un 410 se vuoi dichiarare la rimozione definitiva |
| Un link interno punta all'URL sbagliato | Correggi il link nella pagina di origine; non serve alcun redirect |
| Un sito esterno ti linka con l'URL scritto male e il link porta visite | Redirect 301 dall'URL storpiato alla pagina giusta |
| L'URL è in una sitemap | Toglilo dalla sitemap, o rimetti online la pagina se c'è stato un errore |
La scelta tra 404 e 301 dipende dall'equivalenza: il redirect ha senso quando la pagina di arrivo risponde alla stessa esigenza di quella vecchia. Se mandi un prodotto fuori catalogo alla home, non stai risolvendo il problema; lo stai nascondendo (ne riparliamo più sotto). Per gli spostamenti di interi siti la cornice è quella della migrazione di un sito, dove la mappa dei redirect è una parte centrale del lavoro.
Redirect 301, 302, 307 e 308
Un redirect è una risposta del server che dice al browser, o a Googlebot, di andare a un altro URL. La documentazione di Google sui redirect li divide in permanenti e temporanei, e la distinzione conta per l'indicizzazione:
- 301 e 308 (permanenti). Dicono che il vecchio URL è stato sostituito. Google li usa come segnale che la destinazione debba essere quella canonica, e li raccomanda come redirect lato server quando sei sicuro che non verranno annullati.
- 302 e 307 (temporanei). Dicono che lo spostamento è provvisorio: la pagina di partenza resta nei risultati.
La differenza tra 301 e 308 è nel metodo HTTP: secondo MDN il 308 garantisce che metodo e corpo della richiesta non vengano modificati, mentre con il 301 i client più vecchi possono ripetere la richiesta come GET. Per i redirect tra pagine web, la differenza raramente si nota. Il 301 è il più diffuso e Google lo tratta come il 308.
Il redirect non sostituisce la scelta del canonical: il 301 sposta l'utente e il crawler, il canonical indica quale tra più pagine accessibili va indicizzata. Si usano per scopi diversi, anche se entrambi concentrano i segnali su una sola URL.
Redirect lato client: meta refresh e JavaScript
Esistono anche redirect eseguiti dal browser. La stessa documentazione di Google distingue:
- il
meta refreshistantaneo (0 secondi) è interpretato come permanente, quello con ritardo come temporaneo; - i redirect JavaScript dipendono dal rendering della pagina: se il rendering fallisce, Google potrebbe non vederli mai.
Google li segue, ma consiglia i redirect lato server come prima scelta e JavaScript solo se non puoi configurare né redirect lato server né meta refresh. Su un sito che puoi configurare, non c'è motivo di preferire un redirect lato client.
Errori da evitare con i redirect
- Reindirizzare tutti i 404 alla home. La Guida di Search Console lo cita tra gli errori da non fare, e lo inserisce nel caso dei soft 404: pagine inesistenti che invece di un 404 mandano alla home. Per l'utente è confuso (arriva su una pagina che non c'entra), per Google è un segnale di pagine che non esistono ma non lo dichiarano.
- Creare contenuti falsi per “riempire” gli URL mancanti, altro comportamento che la stessa guida sconsiglia.
- Catene di redirect. Se A manda a B e B manda a C, ogni passaggio costa tempo e si possono perdere segnali per strada. Per la documentazione sui codici di stato Google segue fino a 10 passaggi, ma quella sui redirect consiglia di collegare direttamente il vecchio URL alla destinazione finale. Dopo ogni migrazione, aggiorna le regole esistenti in modo che puntino all'ultima destinazione.
- Loop di redirect. A manda a B e B manda ad A: il browser si ferma con un errore. Possono nascere da regole che si sovrappongono (per esempio da HTTP a HTTPS e da www a non-www in ordine sbagliato).
- Bloccare i 404 con robots.txt. Impedisce a Google di rivedere l'URL e confermare che oggi risponde 404.
Come fare un redirect 301
La regola vale per tutti i sistemi: l'URL di origine è relativo al sito, quello di destinazione è completo (con https:// e dominio). Gli esempi usano esempio.it come dominio.
Apache (.htaccess)
Con Apache le regole stanno in .htaccess o nella configurazione del sito. La documentazione di mod_alias definisce Redirect permanent come equivalente del 301 e Redirect gone come risposta 410, e RedirectMatch per gli schemi con espressioni regolari.
# Una singola pagina
Redirect 301 /vecchia-pagina/ https://www.esempio.it/nuova-pagina/
# Tutta una sezione: /blog/qualcosa/ diventa /guide/qualcosa/
RedirectMatch 301 "^/blog/(.*)$" "https://www.esempio.it/guide/$1"
# Pagina eliminata per sempre (risposta 410)
Redirect gone /promo-2019/
Nginx
Con Nginx, la documentazione del modulo rewrite indica return con codice e URL per i redirect (301, 302, 303, 307, 308) e il flag permanent di rewrite per il 301. Le regole vanno dentro il blocco server.
# Una singola pagina
location = /vecchia-pagina/ {
return 301 https://www.esempio.it/nuova-pagina/;
}
# Tutta una sezione
rewrite ^/blog/(.*)$ https://www.esempio.it/guide/$1 permanent;
# Pagina eliminata per sempre
location = /promo-2019/ {
return 410;
}
Dopo ogni modifica, ricarica la configurazione (nginx -s reload) dopo aver verificato la sintassi con nginx -t.
WordPress
Su WordPress ci sono due strade. La più semplice è un plugin: Redirection permette di creare redirect 301 (anche con espressioni regolari), di registrare i 404 e di reindirizzarli in blocco, e può salvare le regole in .htaccess per Apache o esportarle per Nginx.
Per un caso singolo si può usare il codice del tema, nel file functions.php (meglio in un tema figlio, per non perderlo agli aggiornamenti). La funzione wp_redirect() usa 302 come codice predefinito e non interrompe lo script: serve passare 301 e chiudere con exit. La variante wp_safe_redirect() accetta solo destinazioni locali ed evita il rischio di open redirect.
add_action( 'template_redirect', function () {
$percorso = untrailingslashit( wp_parse_url( wp_unslash( $_SERVER['REQUEST_URI'] ), PHP_URL_PATH ) );
if ( $percorso === '/vecchia-pagina' ) {
wp_safe_redirect( home_url( '/nuova-pagina/' ), 301 );
exit;
}
} );
Dopo aver attivato qualsiasi regola, controlla che l'URL vecchio risponda davvero 301 e che l'URL di arrivo risponda 200: basta il report di un crawler o lo strumento Controllo URL di Search Console.
Com'è fatta una buona pagina 404
Un utente finirà comunque su URL inesistenti, e la pagina che trova decide se resta o se esce. Una buona pagina 404:
- dice in chiaro che la pagina non esiste, senza gergo tecnico;
- mantiene la navigazione del sito (menu, logo) e offre una ricerca interna;
- propone le strade più probabili: home, categorie principali, contenuti più letti;
- soprattutto, restituisce davvero il codice 404. Una pagina che mostra “non trovata” con codice 200 è un soft 404, e Search Console la segnalerà come tale.
La parte tecnica è lo stesso punto di inciampo su tutti i server. Su Apache, ErrorDocument 404 /404.html deve puntare a un percorso locale: secondo la documentazione, con un URL completo il server invia al client un redirect e il codice 404 originale non arriva, cosa che può confondere i robot. Su Nginx, error_page 404 /404.html; mantiene il 404 se non aggiungi un codice dopo il segno uguale; con error_page 404 =200, descritto nella documentazione, lo trasformi in un 200 e crei un soft 404 con le tue mani. Per verificare, apri un URL inventato e controlla il codice di risposta, non solo il testo che vedi.
Il passo successivo
Se vuoi sapere quali 404 del tuo sito costano visite e link, il punto di partenza è un audit SEO gratuito: partiamo dagli URL che restituiscono errore e dai redirect esistenti.
Domande frequenti
Cosa può fare un visitatore quando trova un errore 404 su un sito altrui?
Controllare che l'indirizzo sia scritto bene, risalire alla home o usare la ricerca del sito. Se il link arrivava da un'altra pagina, il responsabile del sito può correggerlo o reindirizzarlo.
Quanto ci mette Search Console a confermare la correzione di un errore?
Dopo aver corretto gli URL si usa “Convalida correzione” nella pagina dei dettagli del problema. Secondo la Guida di Search Console il processo richiede in genere fino a 2 settimane, e non conviene cliccare di nuovo finché non è terminato.
I 404 per URL generati da JavaScript o dal codice di tracciamento sono un problema?
No, secondo la Guida di Search Console: sono link che non corrispondono a pagine reali, e non incidono sulla scansione né sul posizionamento del sito.
Cos'è un redirect “crypto” e conviene usarlo?
È un semplice link con un avviso di trasferimento, senza redirect vero e proprio. Google lo considera un ultimo ricorso: può non essere riconosciuto come redirect da nessun motore di ricerca, quindi conviene prima chiedere supporto al provider di hosting.
Fonti
Pagine aperte e verificate il 14 ottobre 2026.
- IETF, “RFC 9110: HTTP Semantics”. rfc-editor.org/rfc/rfc9110.html
- Google Search Central, “In che modo i codici di stato HTTP influenzano i crawler di Google”. developers.google.com/search/docs/crawling-indexing/http-network-errors?hl=it
- Google Search Central, “Reindirizzamenti e la Ricerca Google”. developers.google.com/search/docs/crawling-indexing/301-redirects?hl=it
- Guida di Search Console, “Errori 404 (Pagina non trovata)”. support.google.com/webmasters/answer/2445990?hl=it
- Guida di Search Console, “Report Indicizzazione delle pagine”. support.google.com/webmasters/answer/7440203?hl=it
- MDN Web Docs, “308 Permanent Redirect”. developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/308
- Apache HTTP Server, “Module mod_alias”. httpd.apache.org/docs/current/mod/mod_alias.html
- Apache HTTP Server, “Core Features” (ErrorDocument). httpd.apache.org/docs/current/mod/core.html
- Nginx, “Module ngx_http_rewrite_module”. nginx.org/en/docs/http/ngx_http_rewrite_module.html
- Nginx, “Module ngx_http_core_module” (error_page). nginx.org/en/docs/http/ngx_http_core_module.html
- WordPress Developer Resources, “wp_redirect()”. developer.wordpress.org/reference/functions/wp_redirect/
- WordPress.org, plugin “Redirection”. wordpress.org/plugins/redirection/
Volume di ricerca: nostra analisi, volumi medi mensili di ricerca su Google, Italia, ultimi 12 mesi.

