Codici di stato HTTP

Che cosa sono i codici di stato HTTP, come funzionano (1xx–5xx), quali contano di più per la SEO e come li interpreta Google: l’hub per redirect, errori e comportamento del crawling.

Prima pubblicazione: 27 giu 2026 · Ultimo aggiornamento: 3 ago 2026 · Advanced
Lingue
1 segnale di evidenza in questa pagina

Un codice di stato HTTP è il numero di tre cifre che un server restituisce con ogni risposta e, per la SEO, il codice conta quanto il contenuto della pagina. Cinque famiglie: 1xx informativi, 2xx di successo (idonei all’indicizzazione, ma 200 non la garantisce), 3xx redirect (301/308 trasferiscono un segnale di canonicalizzazione, 302/307 no), 4xx errori del client (404/410 rimuovono le pagine dall’indice nel tempo; i 404 in genere non danneggiano il ranking) e 5xx errori del server (che, insieme a 429, fanno rallentare i crawler, non deindicizzano all’istante). L’eccezione insidiosa è il soft 404: uno stato 200 con contenuto “questo non esiste”, che Google tratta come un 404 e segnala in Search Console. Questo hub mappa le famiglie, corregge i miti comuni e collega agli approfondimenti sui singoli codici di errore.

TL;DR — Il codice di stato è un segnale SEO di prima classe, indipendente dal contenuto della pagina. 2xx è necessario ma non sufficiente per l’indicizzazione. 301/308 trasferiscono un segnale di canonicalizzazione; 302/307 no. Le pagine 4xx escono dall’indice nel tempo e il 404 in genere non danneggia il ranking. 5xx e 429 fanno rallentare i crawler, non deindicizzano: il recupero è graduale quando torna un 2xx. Il tranello è il soft 404: uno stato 200 che avvolge contenuto “questo non esiste”, rilevato da Google a livello di contenuto e trattato come un vero 404. Fai corrispondere il codice alla realtà, usa redirect permanenti per spostamenti permanenti e restituisci 503, non un 200 rotto, durante l’inattività.

Che cos’è davvero un codice di stato

Le cinque classi di risposta provengono dalla RFC 9110, la specifica HTTP: sono semantica del protocollo, non punteggi SEO diretti. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: RFC 9110: Status codes La documentazione di Google, costruita sopra quella specifica, descrive possibili risultati di elaborazione senza garantire tempi esatti di crawling o indicizzazione. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: HTTP and network errors

La documentazione di Google offre la definizione più chiara: “HTTP status codes are generated by the server that’s hosting the site when it responds to a request made by a client, for example a browser or a crawler.” L’idea chiave per la SEO è che il codice sia un segnale autonomo, separato dall’HTML che arriva dopo. Una pagina può apparire perfetta a una persona e restare invisibile nella ricerca a causa del numero inviato prima dal server.

Le cinque famiglie viste attraverso la SEO

1xx — Informativi. Risposte provvisorie “sto ancora lavorando” (100 Continue, 101 Switching Protocols). Quasi mai rilevanti per la SEO, con una moderna eccezione: 103 Early Hints, che permette al server di dire al browser di iniziare a precaricare risorse critiche prima che la risposta completa sia pronta: un piccolo vantaggio per i Core Web Vitals, non una leva di indicizzazione.

2xx — Successo. 200 OK è ciò che restituisce una pagina indicizzabile. Ma 200 è necessario, non sufficiente: Google può comunque scegliere di non indicizzare una pagina 200 per motivi di qualità, duplicazione o altro. Un caso limite da conoscere è 204 No Content (una risposta riuscita con corpo vuoto), che può essere trattato come un soft 404 perché non c’è nulla da indicizzare.

3xx — Reindirizzamento. È qui che vive la distinzione di canonicalizzazione ed è la parte più fraintesa del tema. Secondo la documentazione di Google sui redirect:

  • 301 (permanente) e 308 — Google segue il redirect e “the indexing pipeline uses the redirect as a signal that the redirect target should be canonical.” I segnali di ranking vengono consolidati sulla destinazione.
  • 302 (temporaneo) e 307 — Google segue il redirect, “but the indexing pipeline doesn’t use the redirect as a signal that the redirect target should be canonical.” Lasciare un 302 per uno spostamento davvero permanente è una configurazione errata classica: Google potrebbe alla fine trattare in pratica un 302 di lunga durata come un 301, ma non dovresti farci affidamento.

Google raccomanda di “use a permanent server-side redirect whenever possible” per gli spostamenti permanenti e segnala un limite netto: “By default, Google’s crawlers follow up to 10 redirect hops.” Le catene più lunghe vengono abbandonate. (Ho scritto separatamente su Ahrefs la panoramica completa degli undici tipi di redirect e del loro impatto SEO, collegata nelle Risorse: questo hub è volutamente la mappa, non l’approfondimento.) Nella famiglia 3xx c’è anche 304 Not Modified, un segnale di caching che dice al crawler che la sua copia in cache è ancora aggiornata: nessun effetto diretto sul ranking, ma un supporto al crawling efficiente sui siti grandi.

4xx — Errore del client. La pagina non può essere servita per qualcosa nella richiesta: manca, è vietata o è bloccata per questo client. Google è esplicito: “Google doesn’t use the content from URLs that return 4xx status codes,” e “if a URL was previously used but is now returning 4xx status code, Google systems will stop using the URL over time.” Nello specifico dei 404, “the indexing pipeline removes the URL from the index if it was previously indexed. Newly encountered 404 pages aren’t processed.”

Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: HTTP and network errors

Due sfumature importanti:

  • 404 non danneggia il ranking. La Guida di Search Console lo afferma direttamente: “In general, 404 errors won’t impact your site’s search performance.” Il rischio di un 404 è perdere il traffico e i link che la pagina portava o, su larga scala, sprecare crawl budget.
  • Non usare 401/403 come arma contro Googlebot. Google avverte: “Don’t use 401 and 403 status codes for limiting the crawl rate. The 4xx status codes, except 429, have no effect on crawl rate.” Bloccare Googlebot con 401/403 non lo “rallenta”: rende soltanto invisibile il contenuto.

I singoli codici di errore del client hanno ciascuno la propria storia: i codici di accesso e autenticazione (401, 403), quelli di scomparsa (404, 410 e la scelta tra i due), il rate limiting (429) e il blocco legale (451); ognuno riceve un trattamento completo nel proprio articolo. Vedi “Dove andare dopo” più avanti.

5xx — Errore del server. La richiesta era corretta, ma il server non è riuscito a soddisfarla (500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout). Il fatto SEO fondamentale è che questi errori non deindicizzano subito. La documentazione di Google dice che gli errori del server 5xx e 429 “prompt Google’s crawlers to temporarily slow down with crawling,” e che “once the server starts responding with a 2xx status code, Google gradually increases the crawl rate.” Il rallentamento viene misurato: “the decrease in crawl rate is proportionate to the number of individual URLs that are returning a server error.” Gli URL già indicizzati vengono conservati durante un picco; solo gli errori del server persistenti portano alla rimozione.

Crawling contro indice: il modello mentale che unisce tutto

Dietro questi codici ci sono due domande diverse:

  1. Devo eseguire il crawling? 5xx/429 dicono “rallenta, riprova più tardi”. 301/302 dicono “vai qui invece”. 429 e la famiglia 5xx sono gli unici codici che limitano davvero il tasso di crawling.
  2. Devo indicizzare questo contenuto e con quale URL? 2xx = idoneo. 4xx = rimuovilo. 301/308 = consolida sulla destinazione.

Il filo conduttore, e ciò che rompe questo modello, è il soft 404, in cui codice e contenuto non sono d’accordo.

Soft 404: l’eccezione insidiosa

Un soft 404 è una pagina che restituisce un codice di successo (200) ma il cui contenuto dice che l’elemento non esiste: una pagina vuota, un messaggio “spiacenti, non trovato” o un risultato scarno/vuoto. Google rileva il problema a livello di contenuto, indipendentemente dal codice HTTP: “if the content suggests an error for Google Search, an empty page or an error message, Search Console will show a soft 404 error.”

Perché importa, se la pagina “si carica bene”? Perché spreca crawl budget. La guida di Google per i siti grandi è netta: “soft 404 pages will continue to be crawled, and waste your budget.” Di solito derivano da CMS o framework JavaScript configurati male che restituiscono 200 per percorsi inesistenti. La correzione è far corrispondere il codice alla realtà: restituisci un vero 404 (o 410), così Google può rimuovere l’URL in modo pulito. In questo cluster c’è un articolo dedicato ai soft 404.

404 contro 410: importa davvero?

A malapena, per la SEO. John Mueller ha chiarito la questione nel 2024: “The difference in processing of 404 vs 410 is so minimal that I can’t think of any time I’d prefer one over the other for SEO purposes,” aggiungendo che “Google does not penalize for 404’s (those pages drop out of the index though).” Un 410 (Gone) può segnalare la permanenza leggermente più velocemente e documenta più chiaramente l’intento per persone e altri strumenti; la formulazione storica di Matt Cutts diceva che la rimozione con 410 avveniva “a little faster”, al massimo di pochi giorni. Usa 410 quando sei certo che la rimozione sia permanente; 404 quando la pagina potrebbe tornare o non sei sicuro. La guida di Google sul crawl budget va bene con entrambi: “a 404 status code is a strong signal not to crawl that URL again.” L’articolo dedicato a 404 contro 410 risolve la sfumatura in dettaglio.

Usare i codici di stato per inattività e migrazioni

Per inattività pianificata, manutenzione o una finestra di migrazione, restituisci 503 Service Unavailable, non un 200 rotto. Le indicazioni di John Mueller sono dirette: “if something goes drastically wrong with your hoster, and you can’t host your website anymore, please return a ‘503 Service unavailable’ HTTP result code.” Il suo ragionamento copre i due anti-pattern da evitare: “returning an error page with ‘200 OK’ will result in us indexing the change of content like that (and if all of your pages return the same error page, then we may assume that these URLs are duplicates). Redirecting to a temporary page will result in that redirect being used for indexing.” Il trucco di implementazione quando l’origin è completamente offline è puntare il DNS a un server temporaneo che serva 503.

Mantienilo breve, però. Gary Illyes dice: “Serving a 503 status code for an extended period of time will cause a decrease in crawl rate,” ma “10-15 minutes every now and then is not ‘extended’ by any means, so you should be fine.” Regola pratica: 503 è per ore, non settimane; se lo lasci per settimane Google inizia a trattare le pagine come davvero scomparse. L’articolo sul 503 tratta in profondità il modello per le migrazioni.

Come controllare il codice di stato di una pagina

  • DevTools del browser — apri la scheda Network, ricarica, fai clic sulla richiesta del documento e leggi la colonna Status.
  • Riga di comandocurl -I https://example.com/page per gli header di una singola richiesta oppure curl -IL https://example.com/page per seguire l’intera catena di redirect.
  • Google Search Console — lo strumento URL Inspection segnala lo stato sottoposto a crawling.
  • Bing Webmaster Tools — anche il suo strumento URL Inspection fa lo stesso per Bingbot.
  • Crawler — Screaming Frog SEO Spider e Ahrefs Site Audit eseguono il crawling dell’intero sito e mostrano in massa codici di stato, catene di redirect e URL 4xx/5xx; la barra SEO gratuita di Ahrefs mostra il codice della pagina aperta.

Un punto davvero importante che le guide dei concorrenti saltano: un singolo controllo ti dice soltanto che cosa è successo a quella richiesta. Lo stato può variare in base a metodo di richiesta, user agent, autenticazione, regione e momento, oltre che in base alla cache o alla CDN interposta; quindi un risultato pulito dal tuo computer non garantisce ciò che ha visto Googlebot. Ecco un flusso diagnostico compatto:

  • Metodo — una richiesta HEAD dovrebbe contenere gli stessi header di GET, ma i server possono omettere campi che richiedono la generazione del contenuto, quindi un controllo HEAD non dimostra che cosa restituisca un vero GET. Ripeti il test con GET se i due risultati non coincidono.
  • User agent — rilevamento dei bot, blocchi geografici o cloaking possono servire a Googlebot un 200 mentre un browser riceve 403 (o viceversa).
  • Regione — se sospetti un blocco geografico o una regola CDN specifica per una regione, ripeti il test da più di una località o IP.
  • Cache — escludi una risposta obsoleta in cache (browser o edge CDN) prima di concludere che l’origin non funzioni correttamente.
  • Catena — registra l’intera catena di redirect, non solo il codice finale: un hop intermedio può essere il problema reale.
  • Log — quando un codice non coincide con quello previsto, controlla ciò che ha visto davvero Googlebot. I log del server sono la fonte di verità che un singolo browser o checker non può offrire.

Una nota su Bing

Le indicazioni pubbliche di Bing sui codici di stato sono più scarne di quelle di Google: non esiste una singola documentazione canonica dettagliata quanto quella di Google su come i codici influenzano il crawling e non è emersa alcuna citazione di Bing rappresentativa sul tema. In termini direzionali, il consiglio è lo stesso: restituisci codici accurati, correggi i 4xx/5xx persistenti e usa redirect permanenti per gli spostamenti permanenti. Preferisco dirlo chiaramente invece di inventare una citazione di Bing che non esiste.

Dove andare dopo: il cluster dei codici di errore HTTP

Questo hub è la panoramica. Il sub-hub Codici di errore HTTP approfondisce i codici che finirai davvero per diagnosticare, ciascuno nel proprio articolo:

  • 401 Unauthorized e 403 Forbidden — i codici di accesso e autenticazione e il motivo per cui non dovresti usarli per limitare il crawling.
  • 404 Not Found, 410 Gone e 404 contro 410 — la famiglia “questa pagina è scomparsa” e quale codice scegliere.
  • 429 Too Many Requests — rate limiting e il modo in cui, a differenza degli altri codici 4xx, influisce sul tasso di crawling.
  • 451 Unavailable For Legal Reasons — il blocco legale/regolamentare, distinto da un 403.
  • 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable e 504 Gateway Timeout — la famiglia degli errori del server, il rallentamento del crawling e il modello 503 per la manutenzione.
  • Soft 404 — il 200 che in realtà è un errore e come correggerlo.

Ognuno di questi articoli è annidato sotto questo hub e compare nella barra laterale. Per sapere come i redirect consolidano i segnali di ranking, vedi Canonicalizzazione; per sapere come i crawler si limitano su 5xx/429, vedi Crawling.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.