Test soft 404

Una pagina che non esiste dovrebbe rispondere con lo stato 404. Molti siti rispondono invece 200, oppure mandano il visitatore alla home senza dire nulla. Questo test chiede al tuo server due indirizzi che non possono esistere e riporta la sua risposta.

Chiediamo due indirizzi inventati al momento. Nessun risultato viene salvato.

Oppure prova github.com, wikipedia.org

Ogni risposta porta un numero che il visitatore non vede mai

Quando un server risponde a una richiesta, la prima riga della risposta è un codice di stato a tre cifre. La pagina viene dopo. Le persone leggono la pagina, il software legge il numero. 200 significa «ecco quello che hai chiesto», 301 significa «si è spostato, guarda là», 404 significa «a questo indirizzo non c’è niente» e 410 significa «è stato rimosso di proposito».

Un soft 404 è quello che succede quando i due non sono d’accordo. Il testo sullo schermo dice che la pagina manca, oppure il visitatore finisce in silenzio sulla home, e intanto il numero dice 200. I motori di ricerca continuano allora a scansionare, e a volte a indicizzare, indirizzi che non portano da nessuna parte. I controllori di link segnalano ogni link morto come sano. I sistemi di monitoraggio restano verdi mentre un’intera sezione del sito è sparita.

Cosa richiede il test e come giudica

Il nostro server costruisce due indirizzi con caratteri casuali, così non possono corrispondere a una pagina reale. Uno ha la forma di una cartella (/probe-check-k7m2x9qa4t/), l’altro quella di un file (/h3n8v2c5w7pq.html). Usiamo due forme perché spesso il server web risponde da solo alle richieste che sembrano file e passa tutto il resto al CMS. I redirect vengono seguiti e il codice di ogni passaggio viene conservato. Se il sito non risponde affatto in HTTPS, il test ripiega su HTTP semplice.

Cosa è tornatoVerdetto
404 o 410 all’indirizzo richiestoCorretto.
Un redirect che finisce su una pagina 404Avviso. I crawler lo capiscono, ma l’indirizzo digitato dal visitatore viene sostituito nella barra del browser.
200 all’indirizzo richiestoSoft 404.
Un redirect alla home (/, /en, /index.php) che risponde 200Soft 404.
Un redirect a qualsiasi altra pagina che risponde 200Soft 404.
500 e oltreErrore. Qualcosa si rompe sugli indirizzi sconosciuti.
401 o 403Avviso. Di solito è una regola del firewall che risponde prima del sito.

Anche la pagina di errore viene esaminata

Quando il codice è giusto, il test legge l’HTML della pagina di errore e cerca quello che serve a un visitatore perso:

  • Una strada per tornare a casa. Vale qualsiasi link alla radice del sito o di una versione linguistica, compreso un logo cliccabile.
  • Una spiegazione. Il titolo, l’intestazione principale o il testo devono contenere qualcosa come «404», «not found», «non esiste» o «spiacenti». Meno di 15 parole di contenuto, esclusi header, menu e footer, viene segnalato come scarno.
  • Un campo di ricerca. Se manca, ricevi un’osservazione. Non conta come difetto.
  • Un <title> e un attributo lang, così le schede del browser e gli screen reader hanno qualcosa da annunciare.
  • Peso. Oltre 500 KB di HTML viene segnalato, perché i bot chiedono indirizzi inesistenti tutto il giorno.

La pagina predefinita di nginx, Apache, IIS o LiteSpeed viene riconosciuta e indicata come tale. Non ha logo né link, quindi i visitatori pensano di essere usciti dal tuo sito. Ti viene detto anche quando i due indirizzi di prova ricevono pagine chiaramente diverse: vuol dire che il server web e il CMS hanno ognuno la propria.

Trasformare un soft 404 in un vero 404

Apache
ErrorDocument 404 /404.html. Indica un percorso locale. Con un URL completo, Apache invia un redirect e il codice finale diventa 200.
nginx
error_page 404 /404.html;. Togli qualsiasi =200 messo tra 404 e il percorso.
WordPress
Il core risponde già 404. Cerca un plugin di redirect o SEO con un’opzione come «reindirizza i 404 alla home» e disattivala.
Single-page app
Una riscrittura generica verso index.html risponde 200 a tutto. Genera le rotte sconosciute sul server con stato 404, oppure lascialo fare all’hosting (Netlify e Cloudflare Pages servono un 404.html alla radice con il codice giusto).

Verifica la modifica da un terminale con curl -I https://example.com/no-such-page, che stampa per prima la riga di stato.

Due indirizzi casuali alla radice non coprono un intero sito. Un negozio, un forum o un blog installato in una sottocartella può comportarsi in modo diverso, quindi prova a mano un indirizzo inventato anche lì. Non eseguiamo script, quindi un messaggio di errore disegnato da JavaScript qui è invisibile. E una pagina reale semplicemente vuota, che i motori di ricerca chiamano anch’essa «soft 404», non si può rilevare dall’esterno.

Domande frequenti

Cos’è un errore soft 404?

Una risposta che dice alle persone che la pagina manca e dice al software che va tutto bene. Di solito ha una di queste due forme: una pagina «non trovata» servita con stato 200, oppure un indirizzo sconosciuto reindirizzato alla home.

Reindirizzare tutte le pagine 404 alla home fa male alla SEO?

Sì. Google tratta un redirect generalizzato alla home come un soft 404, quindi non trasmette alcun valore, e i visitatori non capiscono perché sono finiti lì. Reindirizza un vecchio indirizzo solo verso la pagina che l’ha sostituito, con un 301, e lascia che il resto risponda 404.

Una pagina eliminata deve restituire 404 o 410?

Entrambi sono corretti. 410 Gone dice che la rimozione è voluta e definitiva, e i motori di ricerca tendono a togliere l’indirizzo un po’ prima. Usa 404 quando non sei sicuro che la pagina sia mai esistita.

Gli errori 404 danneggiano il mio posizionamento?

No. Gli indirizzi mancanti sono una parte normale del web e non vengono contati contro un sito. Quello che ti costa davvero è un link nelle tue pagine che punta a uno di essi, o una vecchia pagina popolare che ora risponde 404 quando potrebbe reindirizzare alla pagina che l’ha sostituita.

Perché Search Console segnala un soft 404 su una pagina che esiste?

Google usa questa etichetta anche per pagine reali che sembrano vuote: una categoria senza prodotti, una ricerca senza risultati, una pagina il cui contenuto non si è caricato. Aggiungi contenuto, oppure restituisci 404 se la pagina non ha motivo di esistere.

Come posso vedere da solo il codice di stato di una pagina?

Apri gli strumenti per sviluppatori del browser, scegli la scheda Rete (Network) e ricarica. La prima riga mostra il codice. Da un terminale, curl -I seguito dall’indirizzo fa la stessa cosa.