Google Search Console segnala spesso errori soft 404 nei siti Next.js, il che può sprecare il crawl budget.

Cos'è realmente un soft 404

Una vera risposta 404 invia un codice di stato HTTP 404, comunicando a browser e bot che la risorsa richiesta non esiste. Un soft 404, al contrario, restituisce uno stato 200 OK pur fornendo poco o nessun contenuto. I motori di ricerca leggono il 200 come una pagina valida, eppure la pagina non offre alcun valore. Il risultato è uno spreco di cicli di crawling e un segnale per Google che la qualità dei contenuti del sito è bassa.

Perché Next.js cade in questa trappola

Il routing dinamico di Next.js consente di servire pagine come /products/[slug] senza dover codificare manualmente ogni URL. Quando un prodotto scompare dal database, il componente viene comunque renderizzato e, se il codice non verifica l'assenza di dati, Next.js risponde con un 200 OK per impostazione predefinita. Lo stesso accade quando un utente sbaglia a digitare un URL o quando vecchie rotte rimangono attive dopo un redesign. La pagina viene caricata, ma non offre contenuti significativi, attivando il flag del soft 404 in Search Console.

Cosa rischiano i proprietari dei siti

  • Spreco del crawl budget – I bot allocano un numero limitato di richieste per sito. I soft 404 consumano questa quota, lasciando meno possibilità di indicizzazione per le pagine reali.
  • Penalizzazione SEO – I soft 404 ripetuti segnalano ai motori di ricerca che il sito è di bassa qualità.
  • Impatto sull'esperienza utente – I visitatori che atterrano su una pagina vuota abbandonano immediatamente il sito, aumentando il bounce rate e danneggiando le conversioni.

Come trasformare un soft 404 in un vero 404

1. Usa l'helper integrato notFound

  • App Router – Importa notFound da next/navigation. Dopo il recupero dei dati, chiama notFound() se il risultato è assente. Next.js invierà quindi un vero stato 404.
  • Pages Router – Restituisci { notFound: true } da getStaticProps o getServerSideProps quando il recupero dei dati fallisce. Questo ottiene lo stesso risultato per la vecchia API di routing.

2. Implementa una pagina 404 personalizzata

La pagina di errore predefinita lascia gli utenti a mani vuote. Crea app/not-found.js (App Router) o pages/404.js (Pages Router) con link di navigazione, una barra di ricerca o suggerimenti di contenuti correlati. Una pagina 404 ben progettata trattiene i visitatori sul sito invece di mandarli direttamente verso l'uscita.

3. Pulisci le rotte orfane

Elimina le pagine statiche che non hanno più uno scopo. Se un file rimane ma il suo contenuto è vuoto, aggiungi una risposta notFound o rimuovi completamente il file. Audit regolari delle directory pages o app impediscono la dispersione di URL non più validi.

4. Configura redirect permanenti (301) per i contenuti spostati

Quando l'URL di una pagina cambia, un redirect 301 comunica a browser e bot che la risorsa si è spostata permanentemente. Aggiungi i redirect in next.config.js sotto la chiave redirects. Questo evita che il vecchio URL restituisca un 200 senza contenuti.

5. Monitora e agisci sugli avvisi di Search Console

Controlla spesso Google Search Console per individuare i soft 404. Usa un crawler automatizzato per far emergere nuovi errori prima che si accumulino. Tratta ogni avviso come un segnale per verificare la logica di recupero dati sottostante.

In sintesi

Una pagina che restituisce 200 OK senza fornire contenuti drena silenziosamente il valore SEO. In Next.js, le rotte dinamiche e il recupero dati non verificato rendono comuni i soft 404, ma è possibile eliminarli. Usa notFound, crea una pagina 404 personalizzata utile, elimina le rotte orfane, configura i redirect 301 e resta vigile in Search Console per proteggere il crawl budget, preservare il posizionamento e trattenere i visitatori sul sito.