Robots.txt Disallow: guida pratica completa

La prima cosa che faccio quando analizzo un robots.txt non è verificare cosa viene bloccato. È verificare cosa viene bloccato per errore.

Ho visto file robots.txt con una singola riga che tagliava fuori l’intero sito dagli spider di Google. Siti attivi, in produzione, con traffico organico che nel giro di qualche settimana è crollato. Il proprietario non sapeva nemmeno che quel file esistesse. Qualcuno lo aveva configurato durante lo sviluppo e nessuno lo aveva mai aggiornato al momento del lancio.

Il file robots.txt è uno dei primi elementi che un crawler analizza prima di esplorare qualsiasi pagina. Usarlo bene significa indirizzare il budget di scansione dove conta, proteggere le aree che non devono essere esposte, evitare che contenuti duplicati o irrilevanti inquinino l’indice.

Usarlo male significa bloccare esattamente quello che vorresti che Google trovasse.

In questa guida ti spiego come funziona la direttiva Disallow, quando usarla, quali errori evitare e come testare le tue impostazioni prima che causino danni.

Cos’è la direttiva Disallow in robots.txt

Disallow è la direttiva che dice ai crawler quali URL non devono essere scansionati. Viene letta da Googlebot prima ancora che inizi a esplorare il sito: se un URL è bloccato, il crawler non lo visita, punto.

La logica è semplice: non tutto ciò che esiste sul tuo sito merita attenzione da parte dei motori di ricerca. Pagine di amministrazione, carrelli, risultati di ricerca interni, ambienti di staging sono URL tecnici, non contenuti. Includerli nell’indice spreca il budget di crawling e crea rumore semantico.

Come funziona la sintassi di robots.txt

Ogni blocco di istruzioni segue la stessa struttura: prima si specifica a quale crawler si rivolge la regola, poi si indica cosa fare.

User-agent: *
Disallow: /wp-admin/

User-agent: * significa “questa regola vale per tutti i crawler”. Disallow: /wp-admin/ blocca la scansione di tutto ciò che si trova dentro quella cartella.

Puoi avere più blocchi per crawler diversi, o più direttive nello stesso blocco:

User-agent: Googlebot
Disallow: /private/
Disallow: /search/
Disallow: /cart/

Alcune cose da tenere a mente sulla sintassi:

  • Lo slash iniziale è obbligatorio: /pagina/ è corretto, pagina/ no
  • La direttiva è case-sensitive: /Admin/ e /admin/ sono percorsi diversi
  • Una riga vuota separa i blocchi: senza separazione, le regole si sovrappongono in modo imprevedibile
  • Il file deve essere in testo semplice (UTF-8): niente HTML, nessuna formattazione

Differenza tra Disallow e Noindex

Questo è l’errore concettuale più comune, e vale la pena chiarirlo subito.

Disallow blocca la scansione, non l’indicizzazione. Se Google ha già visitato una pagina e la conosce nell’indice, aggiungere un Disallow in seguito non la rimuove dai risultati. Googlebot smette semplicemente di aggiornarla, ma la pagina resta nell’indice finché non viene eliminata con altri strumenti.

Disallow Noindex
Cosa fa Blocca la scansione Blocca l’indicizzazione
Dove si imposta File robots.txt Meta tag o header HTTP
Rimuove dall’indice? No Sì (al prossimo crawl)
Il crawler visita la pagina? No Sì (per leggere il tag)

Se vuoi che una pagina scompaia dai risultati di ricerca, hai bisogno del tag noindex. Se vuoi solo che non venga scansionata per non sprecare budget di crawling, usi Disallow. Confonderli porta a pagine che continuano ad apparire su Google nonostante il blocco apparente.

Quando usare Disallow: casi d’uso pratici

Non esiste un robots.txt universale. L’ordine che seguo è: prima identifico le aree tecniche e amministrative che non devono mai essere indicizzate, poi valuto i casi specifici del progetto.

Scenari in cui Disallow è la scelta giusta:

  • Pannello di amministrazione: /wp-admin/, /admin/, /backend/ non hanno nessun valore per i motori di ricerca
  • Pagine carrello e checkout: su un e-commerce, questi URL cambiano dinamicamente e non devono finire nell’indice
  • Risultati di ricerca interni: /search?q= genera migliaia di URL unici, quasi tutti duplicati o vuoti
  • Parametri URL per il tracking: ?utm_source=, ?ref= creano versioni duplicate di ogni pagina
  • Ambienti di staging collegati: se il dominio di test è pubblico, va bloccato completamente

Bloccare una cartella specifica con Disallow

Per bloccare una cartella intera, la sintassi è diretta:

# Blocca il pannello WordPress
User-agent: *
Disallow: /wp-admin/

# Blocca il carrello su un e-commerce
User-agent: *
Disallow: /cart/

# Blocca i risultati di ricerca interni
User-agent: *
Disallow: /search/

Il carattere # introduce un commento: non viene interpretato dai crawler, ma rende il file leggibile per chiunque ci metta mano in futuro.

Puoi usare il carattere * come wildcard per bloccare pattern specifici:

# Blocca tutti gli URL con parametri di tracking
User-agent: *
Disallow: /*?utm_

Disallow All: come bloccare l’intero sito

La direttiva Disallow: / blocca l’accesso a tutto il sito per il crawler specificato:

User-agent: *
Disallow: /

Questa configurazione ha senso in due situazioni: un ambiente di staging che non deve mai essere indicizzato, o un sito in costruzione non ancora pronto per la pubblicazione.

⚠️ Attenzione: se questa direttiva finisce nel robots.txt di un sito in produzione, Google smette di scansionarlo. Il traffico organico può crollare nell’arco di settimane. Ogni migrazione dallo staging alla produzione deve cominciare da qui: primo controllo, sempre.

Errori comuni con Disallow da evitare

Gli stessi errori si ripetono su siti di ogni dimensione. Eccoli con la correzione:

  • Slash mancante: Disallow: wp-admin/ non funziona. Deve essere Disallow: /wp-admin/
  • Wildcard mal posizionata: Disallow: *.pdf non è sintassi valida per Googlebot. Usa Disallow: /*.pdf$
  • Bloccare CSS e JavaScript: se blocchi /wp-content/, Google non riesce a renderizzare le pagine correttamente e può valutare male l’esperienza utente
  • Dimenticare il file in staging: siti lanciati con Disallow: / rimasto dal periodo di sviluppo
  • User-agent senza valore: User-agent: senza specificare il crawler rende il blocco invalido

Come testare le direttive Disallow in robots.txt

Non modificare mai un robots.txt in produzione senza aver testato le regole prima. Questi sono i passaggi che seguo:

  1. Apri Google Search Console e vai su “Impostazioni” → “Robots.txt”
  2. Incolla o carica il file nella casella di testo del tester
  3. Inserisci un URL specifico che vuoi verificare nel campo di test
  4. Leggi il risultato: “Consentito” o “Bloccato” indica se Googlebot può accedere a quell’URL con le regole attuali
  5. Testa scenari multipli: non solo le cartelle bloccate, ma anche le pagine strategiche che devono essere scansionate

Per un secondo livello di verifica, puoi usare Screaming Frog, che rispetta il robots.txt di default, o il validatore di robots.txt di SEO Site Checkup.

Disallow e Googlebot: come Google interpreta le regole

Quando ci sono regole che si sovrappongono, Googlebot applica la regola più specifica. Non la prima che trova, non l’ultima: quella più lunga e precisa rispetto all’URL che sta cercando di visitare.

User-agent: Googlebot
Disallow: /private/
Allow: /private/public-report/

In questo caso, /private/ è bloccata, ma /private/public-report/ è esplicitamente consentita. Googlebot accederà a public-report perché quella regola è più specifica del Disallow generale.

La documentazione ufficiale Google chiarisce anche che in caso di parità di specificità tra Allow e Disallow, prevale Allow. Le regole permissive hanno la precedenza quando il peso è uguale.

Cosa succede se uso Disallow su una pagina già indicizzata?

La pagina rimane nell’indice, ma non viene più aggiornata. Googlebot smette di visitarla, quindi il contenuto nell’indice si cristallizza all’ultima versione scansionata. Se quella pagina viene modificata, Google non lo saprà.

Per rimuovere una pagina dall’indice hai due opzioni: il tag noindex (con il crawler che può ancora accedere alla pagina per leggerlo), oppure lo strumento di rimozione URL in Google Search Console per un’eliminazione temporanea.

Le tempistiche variano: Googlebot può impiegare da qualche giorno a qualche settimana per rielaborare le regole e aggiornare l’indice di conseguenza.

È possibile usare Disallow e Allow insieme nello stesso blocco?

Sì, e in molti casi è la configurazione più precisa. Allow ha precedenza su Disallow quando la regola è più specifica, il che permette di creare eccezioni all’interno di un blocco più ampio.

User-agent: *
Disallow: /account/        # Blocca tutta l'area account
Allow: /account/help/      # Ma permette la sezione di supporto pubblica

Questa combinazione è utile su e-commerce o siti con aree riservate che contengono anche sezioni pubbliche: si blocca la cartella principale e si riaprono le sottocartelle che devono essere scansionate.

Disallow blocca anche i bot di Bing e altri motori?

Il file robots.txt è uno standard universale (Robots Exclusion Protocol), ma ogni crawler decide autonomamente se rispettarlo. I motori seri come Bingbot, DuckDuckBot e Yandex lo rispettano per default. Scraper e crawler meno affidabili possono ignorarlo.

Se vuoi indirizzare regole specifiche a Bingbot senza influenzare Googlebot:

User-agent: Bingbot
Disallow: /private/

User-agent: Googlebot
Disallow: /internal/

Ogni blocco è indipendente. Un blocco con User-agent: * vale per tutti i crawler che non hanno un blocco dedicato.

Vuoi un audit del tuo robots.txt? Contattami per una consulenza SEO personalizzata

Se quello che hai letto ti risuona, fammi sapere su cosa stai lavorando.

Contattami







    Autore

    Adriana Longhitanohttps://adrianalonghitano.it

    Adriana Longhitano

    SEO Specialist con oltre 8 anni di esperienza. Progetto strategie di visibilità organica per aziende e professionisti che vogliono essere trovati — su Google e nei sistemi AI. Specializzata in GEO (Generative Engine Optimization), SEO tecnica e architettura dell’informazione.

    Adriana Longhitano
    Torna in alto

    Se quello che hai letto ti risuona, allora ha senso parlarne.

    Contattami