Salta al contenuto principale

Codici di stato HTTP: 404, 500, 503 spiegati

10 min di lettura

10 min di lettura

Codici di stato HTTP: 404, 500, 503 spiegati

Tempo di lettura: 10 minuti

Definizione rapida: i codici di stato HTTP sono risposte di tre cifre che il tuo server invia a browser e motori di ricerca. Pensali come il modo in cui il server dice “OK, ecco la pagina” (200), “È stata spostata” (301), “Non trovata” (404) o “Sono guasto” (500).

Perché contano per la SEO: codici di stato sbagliati confondono i motori di ricerca, sprecano il crawl budget e fanno crollare il tuo posizionamento.

TLDR

I codici di stato HTTP dicono ai motori di ricerca come trattare le tue pagine. Usa 200 per le pagine normali, 301 per i reindirizzamenti permanenti e 404 per i contenuti mancanti. Errori comuni: usare 302 invece di 301 per gli spostamenti permanenti, restituire 200 per pagine che dovrebbero dare 404 e ignorare gli errori 500 del server. Risolvi subito gli errori 500: errori del server persistenti causano la deindicizzazione. Per la manutenzione del sito, usa 503 con l’header Retry-After, così Google sa che deve ricontrollare più tardi.


Le 5 categorie

Intervallo Significato Esempi
1xx Informativo (raramente visibile) 100 Continue
2xx Successo 200 OK
3xx Reindirizzamento 301, 302, 307
4xx Errore del client (colpa dell’utente) 404 Not Found, 403 Forbidden
5xx Errore del server (colpa tua) 500 Internal Server Error, 503 Service Unavailable

2xx: codici di successo

200 OK (successo)

Significato: “Tutto bene. Ecco la pagina che hai richiesto.”

Impatto SEO:

  • La pagina può essere indicizzata
  • La pagina può posizionarsi
  • Nessuna azione necessaria

Quando lo vedrai:

  • Caricamenti normali delle pagine
  • Richieste API riuscite
  • Immagini, CSS e JavaScript funzionanti

Cosa controllare:

curl -I https://example.com
# Output: HTTP/1.1 200 OK

3xx: codici di reindirizzamento

301 Moved Permanently

Significato: “Questa pagina è stata spostata per sempre. Aggiorna i tuoi segnalibri.”

Impatto SEO:

  • Trasmette il 90-99% del valore dei link al nuovo URL
  • Il vecchio URL scompare dai risultati di ricerca
  • Il nuovo URL viene indicizzato

Quando usarlo:

  • Migrazioni del sito
  • Cambi nella struttura degli URL
  • HTTP → HTTPS
  • www → senza www (o viceversa)

Esempio:

Old: http://example.com/old-page
New: https://example.com/new-page
Status: 301 Moved Permanently

302 Found (reindirizzamento temporaneo)

Significato: “Questa pagina è stata spostata temporaneamente. Il vecchio URL tornerà.”

Impatto SEO:

  • Trasmette poco o nessun valore dei link
  • Il vecchio URL resta nei risultati di ricerca
  • Il nuovo URL potrebbe non essere indicizzato

Quando usarlo:

  • Test A/B
  • Contenuti stagionali
  • Pagine di manutenzione

Errore comune: usare 302 per gli spostamenti permanenti. Usa sempre 301, a meno che il reindirizzamento non sia davvero temporaneo.

307 Temporary Redirect (HTTP/1.1)

Significato: come 302, ma mantiene il metodo HTTP (POST, GET e così via).

Quando usarlo: per reindirizzare richieste POST (come l’invio di moduli).

308 Permanent Redirect (HTTP/1.1)

Significato: come 301, ma mantiene il metodo HTTP.

Quando usarlo: sostituto moderno di 301 in ambienti HTTP/2+.


4xx: codici di errore del client

404 Not Found

Significato: “Quella pagina non esiste. Sei sicuro di aver scritto bene?”

Impatto SEO:

  • La pagina non verrà indicizzata
  • Spreca crawl budget se è collegata internamente
  • Perde il valore dei link dai backlink esterni

Quando è normale:

  • L’utente ha digitato un URL sbagliato
  • La pagina è stata eliminata legittimamente

Quando è un problema:

  • Link interni che puntano a 404
  • Pagine importanti che restituiscono 404
  • Backlink esterni che finiscono su 404

Come trovare i 404:

  • Google Search Console → Coverage → Errors
  • Screaming Frog SEO Spider
  • Controlla i log del server

Come risolvere:

  1. Link interni rotti → aggiorna i link
  2. Pagine eliminate con backlink → reindirizzamento 301 verso una pagina pertinente
  3. URL scritti male → reindirizzamento 301 verso la grafia corretta
  4. Contenuti davvero spariti → lascia il 404 (non reindirizzare tutto alla home page)

Soft 404 (falso 404)

Problema: la pagina non esiste, ma il server restituisce 200 OK invece di 404.

Esempio:

GET /this-doesnt-exist
Response: 200 OK
Body: "Sorry, page not found"

Impatto SEO:

  • Google pensa che sia una pagina vera
  • Spreca crawl budget
  • Può essere segnalata come contenuto scarso

Come risolvere: restituisci il giusto codice di stato 404:

// PHP
header("HTTP/1.1 404 Not Found");

// Node.js
res.status(404).send('Not Found');

// Apache .htaccess
ErrorDocument 404 /404.html

403 Forbidden

Significato: “Questa pagina esiste, ma non hai il permesso di vederla.”

Impatto SEO:

  • La pagina non verrà indicizzata
  • Se applicato per errore a pagine pubbliche, queste spariranno dalla ricerca

Quando è corretto:

  • Pagine protette da password
  • Aree di amministrazione
  • Contenuti riservati ai membri

Quando è un problema:

  • Pagine pubbliche che restituiscono 403 (controlla i permessi del server)
  • Googlebot bloccato da firewall o plugin di sicurezza

Come verificare:

curl -I https://example.com/admin
# Output: HTTP/1.1 403 Forbidden

410 Gone (eliminazione permanente)

Significato: “Questa pagina esisteva, ma non c’è più e non tornerà. Smetti di chiederla.”

Impatto SEO:

  • Rimozione dai risultati di ricerca più rapida del 404
  • Dice a Google “non perdere tempo a ricontrollare questo URL”

Quando usarlo:

  • Prodotti fuori produzione senza sostituto
  • Contenuti rimossi che non riporterai mai online
  • Promozioni scadute

404 contro 410:

  • 404: “Magari un giorno tornerà” (Google ricontrolla periodicamente)
  • 410: “È sparita per sempre” (Google smette di controllare più in fretta)

5xx: codici di errore del server

500 Internal Server Error

Significato: “Qualcosa si è rotto da parte nostra. Non sappiamo cosa.”

Impatto SEO:

  • La pagina non verrà indicizzata
  • Se persiste, la pagina viene rimossa dai risultati di ricerca
  • Spreca crawl budget
  • Segnala a Google una scarsa qualità del sito

Cause comuni:

  • Errori PHP (sintassi, limite di memoria)
  • Problemi di connessione al database
  • File .htaccess danneggiato
  • Conflitti tra plugin e temi (WordPress)

Come risolvere:

  1. Controlla i log degli errori del server (/var/log/apache2/error.log)
  2. Attiva la modalità debug di WordPress:
    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
  3. Prova con i plugin disattivati
  4. Aumenta il limite di memoria di PHP
  5. Contatta l’assistenza del tuo hosting

502 Bad Gateway

Significato: “Il server ha ricevuto una risposta non valida da un altro server.”

Impatto SEO: lo stesso del 500

Cause comuni:

  • Nginx non riesce a raggiungere PHP-FPM
  • Server sovraccarico
  • Firewall che blocca le connessioni

Come risolvere:

  • Riavvia PHP-FPM/Nginx
  • Controlla il carico del server (potrebbe servire un hosting più potente)
  • Rivedi le regole del firewall

503 Service Unavailable

Significato: “Il server è temporaneamente fuori servizio. Riprova più tardi.”

Impatto SEO:

  • Google riproverà più tardi
  • Se persiste per giorni, la pagina può essere rimossa dalla ricerca

Quando è normale:

  • Manutenzione programmata (mostra la pagina di manutenzione con 503)
  • Server in aggiornamento

Quando è un problema:

  • Sito fuori servizio senza preavviso
  • Server sovraccarico che non regge il traffico

Come risolvere:

  • Controlla lo stato del server con il tuo fornitore di hosting
  • Attiva correttamente la modalità di manutenzione
  • Passa a un hosting più potente se il traffico supera la capacità

Esempio di modalità di manutenzione:

<?php
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Retry-After: 3600'); // 1 hour
echo "We're performing scheduled maintenance. Back in 1 hour.";
?>

504 Gateway Timeout

Significato: “Il server ha impiegato troppo tempo a rispondere.”

Impatto SEO: lo stesso del 500

Cause comuni:

  • Query lente al database
  • Timeout di API esterne
  • Server sovraccarico

Come risolvere:

  • Ottimizza le query al database
  • Aumenta max_execution_time di PHP
  • Aggiungi la cache
  • Potenzia le risorse del server

Come i codici di stato influenzano la SEO

Codice Indicizzata? Si posiziona? Trasmette valore dei link? Azione necessaria
200 Sì Sì Sì Nessuna
301 Vecchio: No
Nuovo: Sì
Nuovo URL Sì (circa 90-99%) Verifica la destinazione del reindirizzamento
302 Vecchio: Sì
Nuovo: Forse
Vecchio URL No Passa a 301 se è permanente
404 No No No Correggi o reindirizza se ha backlink
410 No No No Adatto ai contenuti eliminati
500 No No No Risolvi subito
503 Riprova Temporaneamente In pausa Risolvi in fretta (ore, non giorni)

Controllare i codici di stato

Strumenti per sviluppatori del browser

  1. Apri gli strumenti per sviluppatori (F12)
  2. Vai alla scheda Network
  3. Ricarica la pagina
  4. Guarda la colonna Status

Riga di comando (curl)

# Check status code
curl -I https://example.com

# Follow redirects
curl -L -I https://example.com

# Check multiple URLs
for url in url1 url2 url3; do
  curl -I -s $url | grep HTTP
done

Strumenti online

Controllo in blocco (strumenti SEO)

  • Screaming Frog SEO Spider: scansiona l’intero sito, filtra per codice di stato
  • Ahrefs Site Audit: mostra 404, 500 e catene di reindirizzamenti
  • Google Search Console: il report Coverage mostra i problemi di indicizzazione

Scenari comuni

Scenario 1: pagina prodotto eliminata

Approccio sbagliato:

Old product URL: 404 Not Found

Risultato: valore dei link perso, esperienza utente scadente

Approccio migliore:

Old product URL → 301 → Similar product or category page

Risultato: mantiene i posizionamenti, esperienza utente migliore


Scenario 2: migrazione del sito

Sbagliato:

oldsite.com/page → 302 → newsite.com/page

Risultato: i vecchi URL restano nei risultati di ricerca

Giusto:

oldsite.com/page → 301 → newsite.com/page

Risultato: i nuovi URL sostituiscono i vecchi nei risultati di ricerca


Scenario 3: modalità di manutenzione

Sbagliato:

example.com → 404 Not Found (site offline)

Risultato: Google pensa che il sito sia rotto e può deindicizzarlo

Giusto:

example.com → 503 Service Unavailable
Retry-After: 3600

Risultato: Google sa che è temporaneo e riproverà


Scenario 4: conflitto tra plugin (WordPress)

Sintomo: errori 500 casuali sulle pagine di amministrazione

Diagnosi:

  1. Rinomina /wp-content/plugins/ in /wp-content/plugins-disabled/
  2. Se il sito funziona, rimetti il nome originale e disattiva i plugin uno alla volta
  3. Individua il plugin in conflitto

Soluzione: aggiorna o sostituisci il plugin problematico


Cosa controlla Surmado

Site Audit cerca:

  • Errori 404 sui link interni
  • Errori 500/503 (problemi del server)
  • Catene di reindirizzamenti (più 301 di fila)
  • Reindirizzamenti 302 che dovrebbero essere 301
  • Soft 404 (stato 200 su pagine “non trovata”)

Riferimento rapido

Vanno bene per la SEO:

  • 200 OK
  • 301 (per gli spostamenti permanenti)
  • 410 (per i contenuti eliminati)

Richiede attenzione:

  • 302 (passa a 301 se è permanente)
  • 404 (correggi i link interni, reindirizza se ha backlink)

Da risolvere subito:

  • 500 (errori del server)
  • 503 (dovrebbe risolversi in poche ore)
  • Soft 404 (restituisci un vero 404)

→ Correlati: Checklist di implementazione GEO per sviluppatori | Guida completa a llms.txt | Risoluzione dei problemi comuni