Il sito non appare su Google? 7 controlli per trovare la causa

Di SEOgrinder · Pubblicato il · 13 min di lettura

Risposta breve: se il sito non appare su Google, di solito c’è una causa che puoi verificare da solo. Prima controlla che la pagina manchi davvero dall’indice di Google. Poi passa in rassegna sette controlli, in quest’ordine: codice di stato, noindex, robots.txt, soft 404, JavaScript, sitemap e link, tempo. Nessuno può dire quando una pagina comparirà: Google scrive che la scansione «can take anywhere from a few days to a few weeks», cioè da alcuni giorni ad alcune settimane. E una pagina indicizzata non è per forza una pagina ben posizionata.

Il sito non appare su Google? Prima verifica che manchi davvero

«Non appare» può significare tre cose diverse, e questo articolo si occupa solo della prima:

  • La pagina non è nell’indice di Google. Google non l’ha salvata, quindi non può comparire in nessun risultato. I sette controlli qui sotto cercano il motivo.
  • La pagina è nell’indice, ma non dove la stai cercando. La guida al report «Indicizzazione delle pagine» di Search Console spiega che i risultati di ricerca sono personalizzati in base alla cronologia, alla posizione e ad altre variabili di ogni utente. Una pagina indicizzata, quindi, non compare in ogni ricerca né sempre nella stessa posizione. Questa è una questione di posizionamento, non di indicizzazione.
  • La pagina è appena stata pubblicata. Allora la causa più probabile è il tempo (controllo 7).

Per capire in quale caso sei:

  • Cerca l’indirizzo esatto. Scrivi site:https://tuo-sito.example/tua-pagina su Google. La guida al report Indicizzazione delle pagine indica questa forma, site: più l’URL esatto, come primo test per i siti piccoli, e la guida a Controllo URL definisce la ricerca dell’URL della pagina il test definitivo per sapere se compare.
  • Chiedi a Search Console. Lo strumento Controllo URL mostra che cosa Google ha memorizzato per un indirizzo. «L’URL si trova su Google» vuol dire che la pagina può comparire nei risultati di ricerca, ma non è garantito che ci sia. «L’URL non si trova su Google» vuol dire che non può comparire. «L’URL è sconosciuto a Google» vuol dire che Google non ha mai visto quell’indirizzo. Quello che leggi è lo stato memorizzato, non quello in tempo reale: per la pagina com’è oggi c’è il test in tempo reale («Testa URL pubblicato»).

Se la pagina compare già nella tabella «Perché le pagine non sono indicizzate» (nel menu di Search Console, sotto «Indicizzazione», alla voce «Pagine»), il nome del messaggio indica dove continuare a cercare:

Messaggio in Search ConsoleVai a
Errore del server (5xx); Non trovata (404); Bloccata a causa di una richiesta non autorizzata (401); Bloccata a causa di un accesso non autorizzato (403); Pagina con reindirizzamentoControllo 1
URL contrassegnato con «noindex»Controllo 2
URL bloccato da robots.txt; Indicizzata ma bloccata da robots.txtControllo 3
Soft 404Controllo 4
L’URL è sconosciuto a GoogleControlli 6 e 7
Rilevata, ma attualmente non indicizzata; Pagina scansionata, ma attualmente non indicizzataControllo 7
Pagina duplicata senza URL canonico selezionato dall’utenteNessuno dei sette: Google ha scelto un altro indirizzo come versione principale e dice che «non si tratta di un errore»

I 7 controlli, nell’ordine in cui farli

I primi controlli bloccano tutto ciò che viene dopo. Sostituisci tuo-sito.example con il tuo indirizzo.

Controllo 1: la pagina risponde con stato 200?

Secondo la pagina di Google sui codici di stato HTTP, Google non indicizza gli URL che restituiscono uno stato 4xx, e gli URL già indicizzati che iniziano a restituirlo escono dall’indice. Gli errori persistenti del server (5xx) rallentano la scansione, e prima o poi quegli URL vengono scartati. Un reindirizzamento passa la decisione alla sua destinazione: Google ignora il contenuto dell’URL che reindirizza, e secondo il report una «Pagina con reindirizzamento» non viene indicizzata a sua volta. Il 200 è un requisito, non una promessa: uno stato 2xx «doesn’t guarantee indexing», cioè non garantisce l’indicizzazione.

Due ostacoli si notano poco. Un login tiene fuori Googlebot, perché non invia credenziali. E un firewall o una protezione anti-bot può rispondere a Googlebot con un errore mentre il tuo browser vede la pagina: la guida di Google cita i firewall configurati male e le protezioni contro i DoS come un modo per bloccare Googlebot senza volerlo.

curl -s -L -o /dev/null -w "%{http_code} %{url_effective}\n" https://tuo-sito.example/tua-pagina

Il risultato che vuoi è 200 e l’indirizzo che ti aspetti. Il comando mostra che cosa riceve il tuo computer. Che cosa riceve Google lo mostra il test in tempo reale di Controllo URL.

In SEOgrinder: il riquadro «Indicizzazione» nella scheda «Pagina su Google» riporta lo stato HTTP. Uno stato sbagliato diventa anche un’attività, per esempio «Il server ha restituito lo stato 503».

Controllo 2: la pagina è impostata su noindex?

Una regola noindex dice a Google di tenere fuori la pagina. Si trova in un meta tag robots nella sezione head della pagina oppure in un header HTTP X-Robots-Tag. Quando Googlebot ha scansionato la pagina e letto la regola, «Google will drop that page entirely from Google Search results», come scrive la documentazione su noindex: la pagina sparisce del tutto dai risultati. La regola può finire su una pagina per errore in tre modi:

  • Un’impostazione del CMS. WordPress ha, nelle impostazioni di lettura, un’opzione che chiede ai motori di ricerca di non indicizzare il sito (in inglese «Discourage search engines from indexing this site»). Secondo la documentazione di WordPress, dalla versione 5.3 WordPress scrive allora un meta tag robots con noindex,nofollow nella head della pagina.
  • Un header. Un server o una CDN può inviare X-Robots-Tag: noindex. L’header non compare mai nel sorgente della pagina, ed è facile non vederlo.
  • Una richiesta di rimozione. Se qualcuno ha usato per quell’indirizzo lo strumento per le rimozioni, la richiesta dura solo circa sei mesi e la scheda «Rimozioni temporanee» la elenca (guida di Search Console).
curl -s -D - -o /dev/null https://tuo-sito.example/tua-pagina | grep -i x-robots-tag
curl -s https://tuo-sito.example/tua-pagina | grep -i -E 'name="(robots|googlebot)"'

Nessun output significa che non è stato trovato né l’header né il tag. Se compare una riga, noindex (o none) tiene fuori la pagina. Se robots.txt blocca la pagina (controllo 3), «the crawler will never see the noindex rule», il crawler non vede mai la regola: per prima cosa va tolto il blocco. Un tag che JavaScript aggiunge in un secondo momento non compare con curl; ciò che Google ha ricevuto lo mostra il test in tempo reale.

In SEOgrinder: la prima riga del riquadro «Indicizzazione» diventa «La pagina è esclusa dall’indicizzazione» quando il meta tag robots dice noindex, e l’elenco delle attività mostra «La pagina è esclusa da Google». Un noindex nell’header HTTP compare come attività «Un header HTTP esclude la pagina da Google».

Controllo 3: robots.txt blocca la pagina?

Il file https://tuo-sito.example/robots.txt dice ai crawler quali percorsi lasciare stare. L’introduzione a robots.txt di Google lo descrive in primo luogo come un modo per gestire il traffico dei crawler. Una regola che corrisponde alla tua pagina impedisce a Googlebot di richiamarla: un URL bloccato viene saltato senza alcuna richiesta (nozioni di base su JavaScript SEO). L’URL può comunque comparire nei risultati se altre pagine rimandano a lui, ma senza descrizione, perché Google non ha letto la pagina.

L’incidente classico sono due righe:

User-agent: *
Disallow: /

Bloccano l’intero sito per ogni crawler che rispetta il file. Una regola più stretta come Disallow: /negozio/ blocca quella cartella e tutto ciò che contiene. Confronta ogni riga Disallow con il percorso della tua pagina.

In SEOgrinder: il riquadro «Indicizzazione» dice «La scansione di questo URL è bloccata» e mostra la regola che ha fatto scattare il blocco. L’attività si chiama «robots.txt blocca questo URL».

Controllo 4: la pagina è un soft 404?

Un soft 404 è una pagina che dice «non trovata» o non mostra quasi nulla, ma risponde con stato 200. Secondo la pagina di Google sui codici di stato, quando una risposta 2xx contiene un messaggio di errore o una pagina vuota, Search Console mostra un errore soft 404. Per le pagine davvero inesistenti Google consiglia un vero 404. Per una pagina che deve esistere vale l’inverso: serve contenuto vero.

Nel report «Indicizzazione delle pagine» cerca il motivo «Soft 404». Per un singolo indirizzo esegui il test in tempo reale e apri «Visualizza pagina testata», che mostra uno screenshot della pagina così come Google la renderizza. Poi chiedi al tuo server un indirizzo che non può esistere:

curl -s -L -o /dev/null -w "%{http_code} %{url_effective}\n" https://tuo-sito.example/pagina-che-non-esiste

Il risultato che vuoi è 404. Se ottieni 200, il server risponde con successo a qualsiasi indirizzo, ed è lo schema che sta dietro ai soft 404. Le correzioni per nginx, Node e single-page app sono nel nostro articolo sugli errori soft 404.

In SEOgrinder: il riquadro «Indicizzazione» ha la riga «Gli indirizzi sconosciuti restituiscono correttamente 404» oppure «Gli indirizzi sconosciuti restituiscono 200 invece di 404», con la relativa attività. SEOgrinder inventa un indirizzo e lo chiede al tuo server, quindi verifica come il server tratta gli indirizzi che non esistono. Se Google abbia archiviato la tua pagina come soft 404, lo mostra soltanto Search Console.

Controllo 5: il contenuto nasce solo nel browser?

Google esegue JavaScript. Le sue nozioni di base su JavaScript SEO spiegano che le pagine con stato 200 aspettano in coda per il rendering, che può richiedere «a few seconds, but it can take longer», pochi secondi o anche di più. JavaScript da solo, quindi, non tiene una pagina fuori da Google. Diventa una causa in quattro casi, descritti nella stessa pagina:

  • noindex nell’HTML originale. Quando Google trova noindex può saltare il rendering, quindi il JavaScript che toglie il tag «may not work as expected», cioè potrebbe non funzionare come previsto. Se vuoi la pagina indicizzata, noindex non deve stare nel codice originale.
  • Script bloccati. «Google Search won’t render JavaScript from blocked files or on blocked pages»: Google non esegue il rendering del JavaScript di file bloccati o su pagine bloccate.
  • Link che non sono link. Google riesce a scoprire solo i link che sono elementi <a> con un attributo href. Gli indirizzi che si distinguono solo dopo un # non sono affidabili.
  • Pagine di errore nelle single-page app. Un’app che risponde 200 a ogni indirizzo produce soft 404 (controllo 4).

Per verificare scegli «Visualizza sorgente pagina» (non il pannello Elementi degli strumenti per sviluppatori) e cerca il titolo principale e il testo. Se mancano, li costruisce JavaScript. Poi usa il test in tempo reale e «Visualizza pagina testata» per vedere come Google ha eseguito il rendering. Google aggiunge che il rendering lato server o il pre-rendering resta un’ottima idea, perché «not all bots can run JavaScript». Quegli altri bot sono il tema del nostro articolo sui crawler AI e JavaScript.

In SEOgrinder: l’attività «La pagina viene costruita solo nel browser» compare quando l’HTML che il tuo server consegna contiene quasi nessun testo, titolo o link interno. Segnala il rischio per i crawler che non eseguono JavaScript. Se Google esegua il rendering della tua pagina in modo corretto, lo mostra il test in tempo reale.

Google può indicizzare solo ciò che trova. Secondo la guida al report Indicizzazione delle pagine, viene a sapere di una pagina tramite una sitemap, una richiesta di scansione o un link da qualche altra parte. Googlebot richiama gli URL trovati su pagine già scansionate, quindi una pagina a cui non rimanda nulla può restare sconosciuta, soprattutto su un sito nuovo con pochi link esterni (panoramica sulle sitemap).

  • Guarda la tua sitemap. Apri https://tuo-sito.example/sitemap.xml, o l’indirizzo indicato in robots.txt, e cerca la pagina. Google chiede indirizzi completi e assoluti, e solo quelli che vuoi vedere nei risultati di ricerca (creare una sitemap). Le pagine che rispondono 404, che reindirizzano o che portano noindex non devono starci.
  • Inviala. Il report «Sitemap» di Search Console mostra quando Googlebot ha letto il file ed eventuali errori. robots.txt non deve bloccare il file.
  • Metti un link alla pagina da almeno una pagina già indicizzata, per esempio la home page o un articolo correlato.
  • «Richiesta di indicizzazione», con parsimonia. Per un sito nuovo Google definisce la richiesta di indicizzazione della home page il miglior primo passo. Controllo URL serve per «just a few URLs», cioè per pochi indirizzi, c’è una quota, e chiedere ancora e ancora lo stesso URL «won’t get it crawled any faster» (guida alla nuova scansione).

Una sitemap aiuta Google a scoprire gli indirizzi, ma non garantisce («doesn’t guarantee») che tutto ciò che contiene venga scansionato e indicizzato. Google aggiunge che un sito di circa 500 pagine o meno, collegate bene tra loro, potrebbe non averne bisogno.

In SEOgrinder: il riquadro «Indicizzazione» dice «Questo URL è nella sitemap» oppure «Questo URL non è nella sitemap». L’elenco delle attività può mostrare «Nessuna sitemap trovata», «La sitemap cita una pagina con noindex» e un’attività che conta gli indirizzi della sitemap che non rispondono con 200. Con la scansione del sito, un’attività come «Una pagina non riceve alcun link interno» indica le pagine a cui non rimanda nulla.

Controllo 7: Google ha avuto abbastanza tempo?

Google non dà una data. La sua guida alla nuova scansione dice: «Crawling can take anywhere from a few days to a few weeks.» La guida al report Indicizzazione delle pagine aggiunge che per una pagina o un sito nuovo «it can take a week or so» prima che Google inizi a scansionare e indicizzare, che l’indicizzazione «is never instant, even when you submit a crawl request directly», cioè non è mai immediata nemmeno dopo una richiesta diretta, e che Google non garantisce che tutte le pagine entrino nel suo indice.

Search Console conosce due stati d’attesa. «Rilevata, ma attualmente non indicizzata» significa che Google ha trovato la pagina ma non l’ha ancora scansionata, di solito perché si aspettava che la scansione sovraccaricasse il sito. «Pagina scansionata, ma attualmente non indicizzata» significa che Google ha richiamato la pagina e non l’ha aggiunta. Google la chiama «a common message for many sites», un messaggio comune a molti siti, che «doesn’t necessarily indicate an issue that needs attention», quindi non segnala per forza un problema, e dice di non aspettarsi che ogni URL di un sito venga indicizzato.

Se i controlli da 1 a 6 sono a posto e la pagina ha più di qualche settimana, per «Pagina scansionata, ma attualmente non indicizzata» Google non indica altri motivi. La nostra valutazione, non quella di Google: guarda se la pagina dice qualcosa che le tue altre pagine non dicono, e se pagine importanti rimandano a lei.

In SEOgrinder: non può leggere l’orologio di Google. In un’installazione locale collegata a Search Console può interrogare Controllo URL sulla pagina analizzata e mostrare nel report la risposta memorizzata da Google, per esempio «Google non conosce ancora questo indirizzo». La versione su seogrinder.com non si collega al tuo account Search Console.

Che cosa può dirti un’analisi e che cosa no

SEOgrinder è il nostro strumento, e lo costruiamo noi. Un’analisi dall’esterno legge che cosa dice la tua pagina e come risponde il tuo server: stato, noindex, robots.txt, il comportamento soft 404 del server, l’HTML consegnato e la sitemap. Non vede l’indice di Google, e non può dirti perché Google abbia scansionato una pagina senza includerla. A rispondere alla domanda sull’indice sono Search Console e la ricerca dell’indirizzo esatto. Un report tutto verde non promette che la pagina comparirà né dove si posizionerà, e nessuno può promettere nulla del genere.

Errori comuni

  • Giudicare da una sola ricerca. I risultati cambiano da persona a persona e da luogo a luogo. Cerca l’indirizzo esatto, oppure usa Controllo URL.
  • Bloccare in robots.txt e aggiungere anche noindex. Google allora non vede mai la regola noindex. Usa uno strumento per ogni obiettivo.
  • Togliere noindex in un solo posto. Può trovarsi insieme nelle impostazioni di un plugin, in un meta tag e in un header HTTP.
  • Richiedere l’indicizzazione in continuazione. Non accelera niente.
  • Fermarsi al primo rilievo. Su una stessa pagina possono valere più cause, quindi fai tutti e sette i controlli.

Domande frequenti

Perché il mio sito nuovo non appare su Google?

Un possibile motivo è che Google non l’ha ancora scansionato, cosa che può richiedere circa una settimana. Invia una sitemap, richiedi l’indicizzazione della home page e fai i sette controlli.

Search Console dice «L’URL si trova su Google», ma non trovo la pagina. Perché?

«L’URL si trova su Google» significa che la pagina può comparire, non che compaia a ogni ricerca. Cerca l’indirizzo esatto. Se salta fuori, l’indicizzazione è a posto e il tema è il posizionamento.

La mia pagina era su Google ed è sparita. Quale controllo vale?

Parti dai controlli da 1 a 3. Google rimuove gli URL indicizzati che restituiscono uno stato 4xx, e dice che un calo delle pagine indicizzate senza un aumento corrispondente degli errori può voler dire che stai bloccando pagine esistenti con robots.txt, noindex o un login. Cerca anche una richiesta di rimozione.

Il prossimo passo

Inserisci l’indirizzo della pagina mancante nell’analisi gratuita di SEOgrinder. Nella scheda «Pagina su Google» leggi il riquadro «Indicizzazione» e correggi ogni riga rossa; l’elenco delle attività mostra che cosa fare per primo. Dopo la modifica premi «Ricontrolla» (i report possono restare in cache fino a 24 ore), poi invia la sitemap e dai tempo a Google. Per tutto ciò che va oltre l’indicizzazione usa la nostra checklist audit SEO.

Per approfondire

Altri articoli del blog