200 OK: guida

Che cosa significa HTTP 200 OK (RFC 9110), perché è necessario ma non sufficiente per l’indicizzazione, la trappola dei soft 404, la differenza tra 200, 204 e 304 e come confermare ciò che riceve davvero Googlebot.

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

HTTP 200 OK è il codice di successo standard 2xx (RFC 9110): il server ha trovato la risorsa e la restituisce. Per una pagina web è il codice desiderato, ma è necessario e non sufficiente. La documentazione Google dice che la pipeline di indicizzazione può indicizzare il contenuto, ma non è garantito; qualità, duplicazione, contenuto scarno e noindex vengono valutati sopra il 200. La trappola classica è il soft 404: un URL restituisce 200 mentre il contenuto sembra un errore o una pagina vuota; Google lo rileva a livello di contenuto e lo segnala in Search Console indipendentemente dal codice. Distingui 200 (successo + body reale), 204 (successo + body vuoto, trattato come soft 404) e 304 (segnale di caching, non decisione d’indicizzazione). Fai coincidere il codice con la realtà — sparito → 404/410, spostato → 301, duplicato → canonical tag — e conferma sempre ciò che ha ricevuto Googlebot tramite URL Inspection o i log, non solo ciò che vede il browser.

TL;DR — 200 OK è il codice di successo 2xx standard (RFC 9110 §15.3.1): il server ha completato la richiesta e, per GET/HEAD, il body è una rappresentazione della risorsa. Per impostazione predefinita è memorizzabile in cache per euristica. Per la SEO è necessario ma non sufficiente: la documentazione Google dice: “may index the content, but that’s not guaranteed,” (traduzione) «può indicizzare il contenuto, ma non è garantito». Quindi qualità, duplicazione, contenuto scarno e noindex vengono valutati sopra il 200. Il fallimento classico è il soft 404: un 200 che avvolge contenuto vuoto o d’errore, rilevato da Google a livello di contenuto e segnalato come soft 404 indipendentemente dal codice. Distingui 200 (body previsto) da 204 (body vuoto, trattato come soft 404 sulle pagine) e 304 (segnale di caching, non decisione d’indicizzazione). E controlla che cosa ha ricevuto Googlebot: cloaking, blocchi ai bot, regole geografiche e configurazione CDN/WAF possono servire al browser un codice diverso.

Che cosa significa 200 nella specifica

RFC 9110 (HTTP Semantics) è l’autorità attuale e §15.3.1 è diretto: «Il codice di stato 200 (OK) indica che la richiesta è riuscita». Il contenuto del body dipende dal metodo. Per i metodi importanti per le pagine, GET e HEAD, il contenuto rappresenta la risorsa richiesta. La RFC precisa anche che, salvo le risposte a CONNECT, un 200 dovrebbe contenere contenuto a meno che il framing non segnali esplicitamente lunghezza zero: «un 200 ha sempre un body» è una scorciatoia, non un assoluto. In pratica, per una pagina che vuoi indicizzare, l’obiettivo è un body reale e non vuoto. Un 200 è anche «memorizzabile in cache per euristica» per impostazione predefinita, salvo direttive Cache-Control; per questo header di validazione come ETag e Last-Modified contano sulle pagine sottoposte spesso a nuovo crawl. Evidence for this claim RFC 9110 defines 200 OK as indicating that the request succeeded; the response content depends on the request method. Scope: HTTP semantics for 200 responses; this does not guarantee search indexing. Confidence: high · Verified: IETF: RFC 9110 §15.3.1 — 200 OK

Tecnicamente 200 non riguarda solo le pagine. La RFC descrive il significato di «successo» per ogni metodo:

Metodo della richiestaChe cosa rappresenta il body 200
GETla risorsa richiesta
HEADla risorsa richiesta, senza trasferire il body
POSTlo stato o il risultato dell’azione
PUT, DELETElo stato dell’azione
OPTIONSle opzioni di comunicazione della risorsa

Per i metodi diversi da GET spesso non vedrai un 200: MDN nota che le richieste PUT o DELETE riuscite “often do not result in a 200 OK response,” (traduzione) «spesso non producono una risposta 200 OK», mentre 201 Created o 204 No Content sono più comuni. Nulla di questo è rilevante per la SEO degli URL di pagina; la frase da ricordare è che, per un documento che vuoi indicizzare, l’obiettivo è 200 con un body reale.

Necessario, non sufficiente, per l’indicizzazione

È la cosa più importante da capire ed è il punto in cui la maggior parte delle pagine concorrenti di glossario sbaglia nettamente. Dicono «200 significa che la pagina viene indicizzata». La documentazione Google lo spiega: per un 200 Google “passes on whatever it received to the next processing step… For Google Search, the next system is the indexing pipeline. The indexing systems may index the content, but that’s not guaranteed.” (traduzione) «passa ciò che ha ricevuto alla fase successiva… Per Google Search, la fase successiva è la pipeline di indicizzazione. I sistemi di indicizzazione possono indicizzare il contenuto, ma non è garantito». Evidence for this claim Google passes a 2xx response to its indexing pipeline, which may index the content but does not guarantee that it will do so; error-like content can be classified as a soft 404. Scope: Google Search handling of 2xx page responses and soft 404s. Confidence: high · Verified: Google: HTTP status codes and Search

Quindi il 200 è un contratto sulla risposta HTTP, non una promessa sul destino della pagina nella Ricerca. Dopo il 200, Google valuta autonomamente:

  • Qualità: pagine scarne, di basso valore o generate automaticamente possono non essere indicizzate.
  • Duplicazione: un quasi-duplicato di un URL più forte può essere accorpato a quell’URL invece di essere indicizzato autonomamente (è ciò che il canonical tag serve a controllare).
  • Direttive: un noindex nel meta tag o nell’header X-Robots-Tag esclude la pagina anche con un 200 perfetto.

La guida Ahrefs di Patrick traccia la stessa distinzione a livello di famiglia: “Most 2xxs will allow pages to be indexed. However, 204s will be treated as soft 404s and won’t be indexed.” (traduzione) «La guida osserva che la maggior parte dei codici di successo consente di indicizzare le pagine, mentre le risposte senza contenuto vengono trattate come errori soft e non vengono indicizzate». Il 200 rende una pagina idonea, non indicizzata.

La trappola del soft 404

L’esempio più netto del fatto che «200 non è tutta la storia» è il soft 404. La documentazione Google sui codici di stato spiega il meccanismo: “If the content suggests an error for Google Search, an empty page or an error message, Search Console will show a soft 404 error.” (traduzione) «Se il contenuto suggerisce un errore per Google Search, una pagina vuota o un messaggio d’errore, Search Console mostrerà un errore di pagina non trovata.» La classificazione dipende dal contenuto renderizzato, non dal codice HTTP. La pipeline guarda oltre il 200 e, se la pagina sembra «non trovata», la inserisce e segnala come una vera 404.

I casi tipici: un prodotto dismesso la cui pagina ora carica un template vuoto, un articolo eliminato che restituisce ancora una shell 200, una categoria filtrata o una ricerca con zero elementi e un messaggio «qui non c’è nulla». Ognuno restituisce un 200 tecnicamente corretto mentre comunica a utenti e Google che non c’è niente da vedere.

Questo sito ha un articolo dedicato agli errori soft 404 per i meccanismi di rilevazione e le correzioni: non li ripeterò qui. Per il discorso sul 200, il punto è semplice: restituire 200 su una pagina davvero sparita prepara il soft 404. La correzione è far coincidere il codice con la realtà.

Una trappola collegata: il successo del trasporto non è il successo dell’applicazione

Vale una breve parentesi per API e monitoraggio: il livello HTTP e quello applicativo possono non concordare. Un endpoint API può inviare 200 con un oggetto JSON di errore nel body; una pagina può inviare 200 mentre una dipendenza backend fallisce in silenzio e produce un blocco rotto invece del contenuto reale. La riga di stato dice solo «consegnato correttamente». Se il payload è corretto è una domanda separata, a cui il codice di stato non risponde. I professionisti non concordano sul fatto che un’API debba segnalare un errore con uno stato diverso da 200 o con un 200 che contiene un payload d’errore: è un contratto scelto dal team, non una regola HTTP. Per la SEO di questo sito, la versione a livello di pagina è il soft 404: non fidarti della sola riga di stato, guarda che cosa contiene davvero il body.

200 contro 204 e 304: non confonderli

Tre codici vengono spesso confusi, ma solo uno è il successo «ecco la tua pagina»:

CodiceClasseBodySignificatoGestione SEO
200 OK2xxContenuto reale previstoSuccesso: ecco la risorsaIdoneo all’indicizzazione, non garantita
204 No Content2xxVuoto per definizioneSuccesso, senza body intenzionalmenteTrattato come soft 404 su un URL di pagina; vedi 204-no-content
304 Not Modified3xxNessuno«Usa la copia in cache» (richiesta condizionale)Segnale di caching, non decisione d’indicizzazione

204 è un vero codice di successo, ma il body vuoto non offre al crawler nulla da indicizzare: su un URL di pagina finisce nel gruppo soft 404 (è un articolo separato; non confondere il caso del body vuoto con un normale 200). 304 appartiene a un’altra famiglia: risponde a una richiesta condizionale (If-None-Match / If-Modified-Since) dicendo al client che la copia in cache è ancora aggiornata. Non porta body e non dice nulla sull’indicizzazione: è un meccanismo di efficienza del crawl, non un duplicato di 200. La domanda «200 e 304 non sono la stessa cosa?» confonde un’ottimizzazione della cache con una risposta di successo.

Controlla che cosa vede davvero Googlebot

Ecco una lacuna che quasi ogni articolo concorrente salta: richiedenti diversi possono ricevere codici diversi per lo stesso URL. Il browser può vedere un 200 pulito mentre Googlebot riceve altro: talvolta intenzionalmente (cloaking, violazione delle Search Essentials), più spesso accidentalmente per regole WAF o blocco bot, targeting geo-IP, logica CDN o un test A/B che funziona male per i bot.

Quindi «nel mio browser è 200» non prova che «Google vede 200». La diagnosi corretta è controllare ciò che ha ricevuto Googlebot:

  • Ispezione URL di GSC: esegui un Live Test per vedere stato e contenuto renderizzato recuperati da Google, non ciò che vede la tua macchina.
  • Log del server o CDN: la fonte di verità sul codice ricevuto da ciascun user agent.

Un semplice curl -I dal terminale è utile, ma è solo un altro richiedente che può incontrare regole edge diverse da Googlebot: trattalo come un dato, non come l’ultima parola.

Come controllare e monitorare le risposte di successo

  • DevTools del browser: scheda Network, ricarica, seleziona la richiesta del documento e leggi la colonna Status.
  • Riga di comando: curl -I https://example.com/page per gli header di una richiesta; curl -IL per seguire la catena di redirect.
  • Google Search Console: URL Inspection mostra lo stato sottoposto a crawl e consente il Live Test.
  • Bing Webmaster Tools: lo strumento URL Inspection è il modo lato Bing per confermare ciò che ha ricevuto Bingbot. (Bing non pubblica una guida dedicata a «come i codici influenzano l’indicizzazione» come Google; è meglio dirlo che inventare una policy.)
  • Crawler: Screaming Frog e Ahrefs Site Audit mostrano in massa i codici di stato dell’intero sito; la barra SEO gratuita di Ahrefs mostra il codice della pagina aperta.

Una situazione «sana» significa che gli URL importanti e canonici restituiscono sempre 200 con contenuto reale, mentre le pagine che devono essere sparite o spostate restituiscono 404/410 o 301, invece di un 200 fuorviante.

La decisione in una riga

Fai coincidere il codice con la realtà. Voluto nell’indice → 200 con contenuto sostanziale. Sparito definitivamente → 404 o 410 (vedi 404-not-found). Spostato → 301. Duplicato di un altro URL → indica la versione preferita con un canonical tag invece di forzare un codice diverso da 200. Il 200 è il via libera per le pagine che lo meritano davvero: niente di più, niente di meno.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

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