# Gestire l’indicizzazione del sito con il file robots.txt

Generalmente i webmaster cercano sempre di aumentare la visibilità del proprio sito sui motori di ricerca. Questo è però possibile, se tutti gli URL rilevanti possono essere scansionati dai crawler ed essere così inseriti nell’indice. È raro infatti che i siti vengano scansionati completamente perché su Google lo spazio per l’analisi e la memorizzazione dei contenuti web è limitato. Ad ogni domino viene assegnato quindi uno specifico **budget di scansione**, che stabilisce quanti URL al giorno possano essere scansionati e indicizzati. Proprio per i siti più complessi si consiglia ai webmaster di muoversi in maniera strategica, segnalando ai crawler quale parti del sito debbano essere scansionate e quali possano essere ignorate. Gli strumenti importanti per la gestione dell’indicizzazione sono i [meta tag robots](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/i-meta-tag-piu-importanti-e-la-loro-funzione/), i canonical tag, [i reindirizzamenti](https://www.ionos.it/digitalguide/domini/gestione-dei-domini/tutto-quello-che-ce-da-sapere-sullinoltro-del-dominio/) e il file **robots.txt**, di cui tratta questo tutorial.

## Cos’è il file robots.txt?

Il robots.txt è un semplice file di testo collocato nella **root** **del dominio,** che permette di gestire l’accesso dei motori di ricerca al proprio sito, bloccando alcune parti per alcuni o tutti i crawler. Il file robots.txt contiene informazioni riguardanti tutta la struttura del sito e si differenzia significativamente dai meta tag robots e dai reindirizzamenti, che si riferiscono invece solo ad uno specifico documento HTML o ad una sua parte. È da notare però che le istruzioni del file vengono viste dai motori di ricerca solo come **linee guida** e non è possibile pertanto determinare il comportamento dei crawler in maniera precisa. Google e gli altri grandi motori di ricerca dichiarano di attenersi a queste indicazioni, ma solo proteggendo alcune aree del sito con una **password**, si ha la certezza che il crawler non le analizzerà.

[![Immagine: Cos’è il file robots.txt? ](https://www.ionos.it/digitalguide/fileadmin/_processed_/7/9/csm_robot-c_edfb2270e3.webp "Cos’è il file robots.txt? ")](https://www.ionos.it/digitalguide/fileadmin/_processed_/7/9/csm_robot-c_1d9e37f4ba.jpg)      ##  Creare un file robots.txt

Per consentire ai crawler l’accesso alle istruzioni personalizzate per la scansione del sito, bisogna creare un **file di testo con il nome esatto di “robots.txt”** e caricarlo nella root del sito. Ad esempio se si vogliono definire le linee guida per il dominio *esempio.it*, il file robots.txt deve trovarsi nella stessa cartella di *www.esempio.it,* per richiamare il file all’indirizzo *www.esempio.it/robots.txt.* Se con l’hosting scelto non è possibile accedere alla root del server, ma solo ad una sottocartella
(come *www.esempio.it/utente/*), non è possibile gestire [l’indicizzazione ](https://www.ionos.it/digitalguide/online-marketing/marketing-sui-motori-di-ricerca/indicizzazione/ "Indicizzazione")tramite il file robots.txt.

I webmaster che vogliono creare un file robots.txt, devono utilizzare un **editor di testo** come vi (per Linux) o notepad.exe (per Windows) e assicurarsi, durante il trasferimento FTP, che il file venga trasmesso in **modalità ASCII**. Grazie ad un generatore è possibile creare un file robots.txt anche online. Si consiglia di testare il file, prima di caricarlo sulla root, perché gli errori di sintassi possono ripercuotersi negativamente sull’indicizzazione del sito. A questo proposito Google mette a disposizione un [tool all’interno della Search Console](https://support.google.com/webmasters/answer/6062598?hl=it&amp;ref_topic=6061961 "Strumento di Google per testare il file robots.txt").

### Struttura del file robots.txt

Ogni robots.txt contiene una serie di dati, chiamati record, composti da due parti. La prima parte è introdotta dalla keyword “User-agent” e indica il crawler a cui vengono date le istruzioni nella seconda parte. Generalmente si tratta di **divieti di scansione** del sito, che vengono introdotti dalla parola chiave “Disallow”*,* a cui segue il nome di una cartella o di uno o più file. Ne risulta il seguente schema di base

```none
User-agent: Googlebot
Disallow: /temp/ 
Disallow: /news.html
Disallow: /print
```

Nell’esempio, il file robots.txt si rivolge solo ai [crawler](https://www.ionos.it/digitalguide/online-marketing/marketing-sui-motori-di-ricerca/che-cose-un-crawler/ "Che cos’è un crawler?") con il nome “Googlebot” e gli vieta di scansionare la cartella */temp/* e il file *news.html.* Vengono bloccati anche tutti i file e le cartelle, che si trovano nella cartella *print*. Da notare come *Disallow: /temp/* e *Disallow: /print* si distinguono sintatticamente solo dalla **mancanza dello slash alla fine,** cosa che è di estrema rilevanza nella sintassi del file robots.txt.

### Inserire i commenti

Se necessario, si possono aggiungere dei **commenti** al file, introdotti da un cancelletto (#) e inseriti in un punto qualsiasi.

```none
# robots.txt per http://www.esempio.it
User-agent: Googlebot
Disallow: /temp/ # La cartella contiene file temporanei 
Disallow: /print/ # La cartella contiene pagine da stampare 
Disallow: /news.html # Il file viene aggiornato giornalmente
```

### Rivolgersi a più user agent

Se ci si vuole rivolgere a diversi crawler, possono essere **inserite a piacimento tutte le righe necessarie**, sempre seguendo lo schema di base. In presenza di più user agent, prima di inserirne uno, viene lasciata una riga vuota.

```none
# robots.txt per http://www.esempio.it
    User-agent: Googlebot
    Disallow: /temp/ 
     
    User-agent: Bingbot 
    Disallow: /print/
```

Al crawler di Google viene impedito di analizzare la cartella */temp/,* mentre al bot di Bing non è consentito scansionare la cartella */print/.*

### Rivolgersi a tutti gli user agent

Se devono essere bloccati per tutti i crawler delle cartelle o file specifici, si utilizza un asterisco come **wildcard** per estendere il divieto a tutti gli user agent.

```none
# robots.txt per http://www.esempio.it
    
User-agent: *
Disallow: /temp/
Disallow: /print/
Disallow: /pictures/
```

Il file robots.txt blocca l’accesso alle cartelle */temp/*, */print/* e */pictures/* a tutti i crawler.

### Escludere tutte le cartelle dall’indicizzazione

Se si vuole indicare agli user agent di non accedere ad alcuna sezione del sito, basta uno slash dopo la parola chiave “Disallow”:

```none
# robots.txt per http://www.esempio.it
User-agent: *
    Disallow: /
```

Così viene segnalato a tutti i crawler di **ignorare completamente il sito web**. Ad esempio si può fornire questa direttiva, nel caso di progetti che si trovino ancora in una fase di test.

### Consentire l’indicizzazione per tutte le cartelle

Se un robot deve scansionare ed indicizzare tutto il sito web, nel file deve essere utilizzata la keyword “Disallow” **senza lo slash:**

```none
# robots.txt per http://www.esempio.it
User-agent: Googlebot
Disallow:
```

Se il file robots.txt contiene questa indicazione, tutto il sito web è indicato come da scansionare per il crawler definito alla voce “user-agent”.

<table>
  <caption>Tabella 1: Funzioni di base del file robots.txt</caption>
  <thead>
    <tr>
      <th>Istruzione</th>
      <th>Esempio</th>
      <th>Funzione</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>User agent:</td>
      <td>User-agent: Googlebot</td>
      <td>Si rivolge ad un crawler specifico.</td>
    </tr>
    <tr>
      <td></td>
      <td>User-agent: \*</td>
      <td>Si rivolge a tutti i crawler.</td>
    </tr>
    <tr>
      <td>Disallow:</td>
      <td>Disallow:</td>
      <td>Tutto il sito web può essere analizzato.</td>
    </tr>
    <tr>
      <td></td>
      <td>Disallow: /</td>
      <td>Tutto il sito web è bloccato.</td>
    </tr>
    <tr>
      <td></td>
      <td>Disallow: /cartella/</td>
      <td>Una cartella specifica è bloccata.</td>
    </tr>
    <tr>
      <td></td>
      <td>Disallow: /file.html</td>
      <td>Un file specifico è bloccato.</td>
    </tr>
    <tr>
      <td></td>
      <td>Disallow: /esempio</td>
      <td>Tutte le cartelle e i file, che si trovano nella cartella esempio, vengono bloccati.</td>
    </tr>
  </tbody>
</table>

## Funzioni avanzate

Oltre alle funzioni di base, ormai quasi standard, alcuni motori di ricerca supportano altri parametri, che consentono di **precisare le istruzioni del file robots.txt**. Queste funzioni sono supportate da Google e sono frutto di un accordo con Microsoft e Yahoo!.

### Definire le eccezioni

Oltre a “Disallow”, Google supporta con **“Allow”** un’altra parola chiave nel file robots.txt, che consente di stabilire delle eccezioni per le cartelle bloccate:

```none
# robots.txt per http://www.esempio.it
User-agent: Googlebot
Disallow: /news/ 
Allow: /news/index.html
```

La keyword “Allow” consente di sbloccare il file *www.sito.it/news/index.html* per il Googlebot, malgrado la cartella sovraordinata */news/* rimanga bloccata.

### Bloccare i file con estensioni precise

I webmaster che vorrebbero impedire al Googlebot la scansione di file con un’estensione precisa, utilizzano i record come nell’esempio:

```none
# robots.txt per http://www.esempio.it
User-agent: Googlebot
Disallow: /*.pdf$
```

La keyword “Disallow” si riferisce a tutti i dati con l’estensione *.pdf* e ne impedisce l’accesso al Googlebot. **L’asterisco (\*)** funziona come wildcard per i nomi dei file prima dell’estensione. La voce viene inclusa, inserendo il **simbolo del dollaro** **($)** alla fine della riga.

### Indicare la sitemap ai crawler

Oltre a gestire la scansione del sito, il file robots.txt consente di rendere nota ai crawler la struttura di un sito. Un file robots.txt che rimanda alla sitemap si può realizzare così:

```none
# robots.txt per http://www.esempio.it
User-agent: *
Disallow: /temp/
Sitemap: http://www.esempio.it/sitemap.xml
```

<table>
  <caption>Tabella 2: Funzioni avanzate del file robots.txt</caption>
  <thead>
    <tr>
      <th>Istruzione</th>
      <th>Esempio</th>
      <th>Funzione</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Allow:</td>
      <td>Allow: /esempio.html</td>
      <td>Il file o la cartella indicata possono essere analizzate.</td>
    </tr>
    <tr>
      <td>Disallow: /\*…$</td>
      <td>Disallow: /\*.jpg$</td>
      <td>I file con un’estensione specifica sono bloccati.</td>
    </tr>
    <tr>
      <td>Sitemap:</td>
      <td>Sitemap: http://www.esempio.it/sitemap.xml</td>
      <td>La sitemap XML si trova all’indirizzo indicato.</td>
    </tr>
  </tbody>
</table>


This is a markdown version of: [https://www.ionos.it/digitalguide/hosting/tecniche-hosting/gestire-lindicizzazione-con-il-file-robotstxt/](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/gestire-lindicizzazione-con-il-file-robotstxt/) for AI/LLM consumption.