⌕ SEO tecnico

Meta robots e X-Robots-Tag: noindex, nofollow e le altre direttive

Come usare meta robots e header X-Robots-Tag per controllare indicizzazione, link e snippet, anche su PDF e immagini, evitando i conflitti più frequenti.

Se il robots.txt decide cosa il crawler può leggere, le direttive robots decidono cosa il motore può fare con ciò che ha letto. Sono lo strumento corretto per tenere una pagina fuori dall'indice, per limitare lo snippet nei risultati o per evitare che vengano seguiti i link. Esistono in due forme: un tag nell'HTML e un header HTTP.

Le due forme

Il meta tag

Si inserisce nella sezione <head> della pagina:

<meta name="robots" content="noindex, follow">

Il valore robots si rivolge a tutti i crawler. Si può indirizzare un motore specifico sostituendolo con il nome del suo crawler, per esempio googlebot.

L'header HTTP

La stessa istruzione può viaggiare nella risposta del server:

X-Robots-Tag: noindex

L'header è indispensabile per i file che non hanno un <head>: PDF, immagini, documenti scaricabili, feed. È anche comodo per applicare una regola a interi gruppi di file tramite la configurazione del server, senza toccare il codice delle pagine.

Le direttive principali

Direttiva Effetto
noindex la pagina non deve comparire nei risultati
nofollow i link della pagina non devono essere seguiti
none equivale a noindex, nofollow
nosnippet nessuna anteprima di testo nei risultati
max-snippet:[n] limita lo snippet a n caratteri
max-image-preview:[none, standard, large] dimensione massima dell'anteprima immagine
noimageindex le immagini della pagina non vanno indicizzate
unavailable_after:[data] non mostrare la pagina dopo una certa data

I valori index e follow sono il comportamento predefinito: scriverli non fa danni, ma non aggiunge nulla.

Esiste anche l'attributo data-nosnippet, applicabile a singoli elementi HTML, per escludere dallo snippet solo una porzione di testo, come un avviso ripetuto o un dato che non si vuole mostrare in anteprima.

La regola d'oro: il crawler deve poter leggere

Una direttiva robots funziona solo se il motore scarica la pagina. Se l'URL è bloccato in robots.txt, il noindex non viene mai visto. È la confusione più diffusa: si blocca e si aggiunge noindex «per sicurezza», ottenendo l'effetto opposto a quello desiderato.

La sequenza corretta per togliere dall'indice una pagina esistente è:

  1. lasciare la scansione consentita;
  2. aggiungere noindex;
  3. attendere che il motore ripassi e la rimuova;
  4. solo a quel punto, se serve risparmiare scansioni, valutare un blocco.

Quando le istruzioni si contraddicono

Se in una pagina compaiono più direttive, ad esempio un meta tag e un header, o due meta tag generati da plugin diversi, i motori tendono ad applicare la più restrittiva. Un index nel tema e un noindex aggiunto da un plugin portano al noindex.

Altri conflitti tipici:

  • noindex e canonical insieme: dire «non indicizzarmi» e «la versione principale sono io» o «sono un duplicato di quest'altra» manda segnali discordanti. Meglio scegliere uno solo dei due strumenti in base all'obiettivo;
  • noindex su pagine nella sitemap: la sitemap dovrebbe elencare solo URL che si vogliono indicizzati;
  • noindex su pagine molto linkate internamente: se una pagina è esclusa ma riceve molti link, forse va riconsiderata la struttura.

Casi d'uso concreti

  • Risultati di ricerca interna: di solito noindex, perché generano infinite combinazioni a basso valore.
  • Pagine di ringraziamento dopo un acquisto o un modulo: noindex, non servono a chi cerca.
  • Documenti PDF duplicati di pagine HTML: header X-Robots-Tag: noindex per far emergere la versione web.
  • Pagine di archivio con contenuto scarso, come tag con un solo articolo: noindex finché non crescono.
  • Offerte a scadenza: unavailable_after evita che restino visibili oltre la data.

Un esempio di configurazione per i PDF

Su un server Apache, per esempio, si può applicare l'header a tutti i PDF di una cartella:

<FilesMatch "\.pdf$">
  Header set X-Robots-Tag "noindex"
</FilesMatch>

L'equivalente esiste in Nginx e nella maggior parte delle CDN. Dopo la modifica conviene verificare la risposta con uno strumento che mostri gli header, perché un errore di sintassi qui è silenzioso.

Come controllare cosa vede il motore

Il sorgente HTML non basta. Bisogna verificare:

  • il DOM renderizzato, perché un noindex può essere aggiunto o tolto da JavaScript;
  • gli header HTTP della risposta finale, dopo eventuali redirect;
  • il rapporto dell'ispezione URL negli strumenti per webmaster, che indica se l'esclusione è dovuta a noindex.

Un crawler desktop configurato per leggere sia i meta tag sia gli header permette di fare lo stesso controllo su tutto il sito in una volta.

In sintesi

  • Il meta robots vale per le pagine HTML, l'X-Robots-Tag per qualsiasi file.
  • Il noindex funziona solo se la pagina può essere scansionata.
  • Con direttive in conflitto prevale la più restrittiva.
  • Non mettere in sitemap le pagine marcate noindex.
  • Verifica DOM renderizzato e header, non solo il sorgente.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche