Skip to Content

Come Impostare Robots.txt per sito/blog (SEO)

Come Impostare Robots.txt per sito/blog (SEO)

Be First!
by gennaio 21, 2017 SEO e Web Marketing

Controllare quale contenuto deve essere reso invisibile ai motori di ricerca, è un processo che definirei cruciale per tutti i siti e blog. Fortunatamente, la maggioranza dei motori di ricerca e molti dei loro robots osservano ciò che si chiama il Robots Exclusion Protocol (REP), creato e sviluppato negli anni 90 per effettuare una serie di controlli su parti e contenuti di siti e blog che gli stessi robots possono esaminare ed indicizzare.

CAPACITA’ DEL REP

Il protocollo di esclusione dei Robots (REP) effettua controlli che possono essere applicati al livello del proprio blog (robots.txt), a livello di pagina (METAtag, o X-Robots-Tag) o a livello di elementi HTML per controllare tanto l’intensità dello scanning del proprio blog quanto il metodo con cui lo stesso blog viene listato nelle pagine de risultati dei motori di ricerca (SERP). In basso possiamo osservare una tabella degli scenari più comuni, direttive, e quali i motori di ricerca che li supportano.

Possibili Utilizzi

Robots.txt

META/X-Robots-Tag

Altro

Supportato da

Permettere l’accesso ai contenuti

Allow

FOLLOW
INDEX

Google
Yahoo
Microsoft

Non permettere l’accesso ai contenuti

Disallow

NOINDEX
NOFOLLOW

Google
Yahoo
Microsoft

Non permettere l’accesso all’indicizzazione delle immagini nella pagina NOIMAGEINDEX

Google

Non permettere le versioni cache dei contenuti nelle SERP NOARCHIVIE

Google
Yahoo
Microsoft

Non permettere la creazione di una descrizione per un specifico contenuto nelle SERP NOSNIPPET

Google
Yahoo
Microsoft

Non permettere la traduzione del proprio contenuto in altre lingue NOTRANSLATE

Google

Non seguire o ritenere rilevanti i links di uno specifico contenuto NOFOLLOW a href attribute:
rel=NOFOLLOW

Google
Yahoo
Microsoft

Non utilizzare l’Open Directory Project (ODP) per creare le descrizioni per i propri contenuti nelle SERP NOODP

Google
Yahoo
Microsoft

Non utilizzare la Directory Yahoo! per creare le descrizioni per i propri contenuti nelle SERP NOYDIR

Yahoo

Non indicizzare uno specifico elemento di una pagina HTML class=robots-nocontent

Yahoo

Bloccare l’indicizzazione di un contenuto successivamente ad una specifica data UNAVAILABLE_AFTER

Google

Non permettere la creazione di anteprime del proprio blog NOPREVIEW

Microsoft

Specificare un file Sitemap o un Sitemap Index Sitemap

Google
Yahoo
Microsoft

Specificare la frequenza di accesso dei Crawler nel proprio sito Crawl-Delay Google WMT

Yahoo
Microsoft

Autenticare l’identità di un Crawler Reverse DNS Lookup

Google
Yahoo
Microsoft

Domandare la rimozione dei propri contenuti dagli indici dei motori di ricerca Google WMT
Yahoo SE
Microsoft WMT

Google
Yahoo
Microsoft

DECIDERE COSA DEVE ESSERE PRIVATO o PUBBLICO

Uno dei primi passi nella gestione dei robots è decidere quali saranno i contenuti da ritenere privati o meno. Iniziamo con il determinare, per difetto, che tutti i contenuti sono pubblici, e successivamente potremo decidere quali quelli che devono essere privati.

Se avete deciso che i motori di ricerca devono poter accedere a tutti i contenuti del blog, non avrete bisongo di un file robots.txt. Quando un motore di ricerca tenta di accedere al file robotos.txt ed il server non ha nessuno disponibile (in gnere ritorna un codice di erroe 404 HTTP), il motore di ricerca saprà che tutto il contenuto deve essere “incontrato” ed indicizzato.

Ogni blog o sito ha diverse necessità ed è per questo motivo che non esiste una regola per definire cosa indicare come privato, ma esistono alcuni elementi che possono essere messi in causa.

  • Informazioni  Private
    Ognuno di noi potrebbe o dovrebbe avere contenuti nel proprio blog che non desidera siano indicizzati dai motori di ricerca. Possiamo avere informazioni private degli utenti ( gli indirizzi, per esempio) che non vogliamo rendere disponibili in internet e nei motori di ricerca. Per questo tipo di contenuti potremmo voler usare un abbordaggio più sicuro per mantenere i dati degli utenti delle pagine (protezione tramite password, per esempio). Intanto però, esistono alcuni contenuti che è bene rendere disponibili a tutti gli utenti ma non ai motori di ricerca, per esempio, volendo creare un forum che sia disponibile pubblicamente ma i cui post individuali, non siano indicizzabili.
  • Contenuto non-contenuto
    Alcuni tipi di contenuti, ad esempio le immagini usate per la navigazione del blog, hanno poco interesse per gli utenti dei contenuti stessi, e per i motori di ricerca. Non è problematico includere questi elementi nei risultati dei motori di ricerca ma, una volta che quest’ultimi, limitano la larghezza di banda per il crawling di qualsiasi blog e lo spazio per l’immagazzinamento dei dati di quel blog, sarebbe sensato bloccare questi elementi per aiutare i robots ad indicizzare tutto quel contenuto realmente importante.
  • Pagine per la stampa
    Se avete creato apine specifiche (URL) formattate, ottimizzate per la stampa, dovrete bloccarle per evitare la duplicazione di contenuti. Il grande problema sta nel fatto che le pagine per la stampa, possono apparire nei risultati delle ricerche al posto delle pagine originali, il che potrebbe anche non creare un’esperienza di qualità per i tutti quegli utenti che ci trovano nei risultati (SERP).
  • Link di affiliazione e Pubblicità
    Se si usa la pubblicità nel proprio blog, dovremmo evitare che i robots ne seguano i links relativi, inviandoli verso una pagina bloccata, piuttosto che verso le pagine di destinazione,. (Esistono altri metodi tra i quali il NoFollow).
  • Landing Page (Pagine di atterraggio)
    Un blog potrebbe includere una grande varietà di pagine di entrata utilizzate, in genere per i propri propositi pubblicitari. Esempio, potremmo aver attivato campagne di Google AdWords che linkano verso la pagina di atterraggio dove si incontra il prodotto o servizio pubblicizzato, o potremmo indicare diversi URL per diverse campagne (per test di tracking o per collegare i link con gli annunci stessi). Visto che queste pagine altro non sono che una estensione degli annunci, e sono, molto probabilmente, duplicati delle pagine originali, si potrebbe desiderarne il blocco per evitare l’indicizzazione di contenuti duplicati.
  • Pagine Sperimentali
    Nel momento in cui si sperimenta qualcosa nel proprio blog/sito (test A/B, per esempio), si vorranno certamente bloccare, per l’indicizzazione, tutte le pagine eccetto l’originale per effettuare i propri esperimenti.

IMPLEMENTIAMO IL REP

Il REP è molto flessibile e può essere implementato con diversi sistemi. Questa flessibilità permette facilmente di specificare politiche di utilizzo per tutto il proprio blog/sito (o sotto-dominio) e successivamente utilizzarle in modo più particolareggiato in ogni pagina al livello di link, tutte le volte che sarà necessario.

IMPLEMENTAZIONE A LIVELLO DEL SITO/BLOG (Robots.txt)

Le direttive panoramiche per il proprio sito/blog sono inserite dentro il file Robots.txt, che dovrà sempre trovarsi nella root del server, per ognuno dei propri domini e sotto-domini. Da notare che il file Robots.txt si applica solamente all’ hostname dove si inserisce, e non è applicabile, per difetto, ai sotto-domini. Dunque, un file robots.txt localizzato nella root del proprio blog, non si applicherà a nessun sotto-dominio che si usa nello stesso blog, anche se si utilizza lo stesso URL. Allo stesso tempo, però, il file si applica a tutte le directory e sub-directory presenti nello stesso hostname.

Un file Robots .txt, è un file codificato in formato UTF-8 che contiene comandi consistenti in linee “user-agent” (che dicono al robot del motore di ricerca se il comando è per lui stesso o meno) ed una o più direttive che specificano quali contenuti il motore dovrà analizzare per indicizzarli regolarmente. Un semplice file robots.txt potete vederlo in basso:

User-agent: *
Disallow: /private

User Agent indica a quale robot il comando si applica.

  • Possiamo definire il valore * per specificare che il comando si applica a tutti i robot dei motori di ricerca.
  • Possiamo definire il valore con il nome specifico di un robot per dare i comandi soltanto a quel robot. Si può trovare una lista completa dei nomi dei robots in robotstxt.org.

La maggioranza dei motori di ricerca possiede diversi robot che effettuano il crawling del web per diversi tipi di contenuti (immagini, mobile, ecc.) E’ possibile comunque bloccare quali si preferisce.

  • Google Il robot principale è il Googlebot.
  • Yahoo! Il robot principale è lo Slurp

Disallow: – Specifica qual’è il contenuto da bloccare

  • Dovrà sempre iniziare con una barra (/).
  • Blocca l’accesso a qualsivoglia URL che vien inserito dopo la barra /. Per esempio, Disallow: /images blocca l’accesso alla directory /images/, /images/image1.jpg, ed anche a/images10.
  • Se si verifica un conflitto nel file, il robot obbedirà sempre alla linea superiore (in genere la più specifica).

ESEMPI DI BASE

Block all robots – Ideale quando il proprio sito/blog è in fase pre-lancio e non è ancora pronto a ricevere traffico organico.

# This keeps out all well-behaved robots.
# Disallow: * is not valid.
User-agent: *
Disallow: /

Keep out all bots by default – Blocca tutte le pagine eccetto quelle che vengono specificate. Non è raccomandato per la difficolta di gestione e di diagnosi.

# Stay out unless otherwise stated
User-agent: *
Disallow: /
Allow: /Public/
Allow: /articles/
Allow: /images/

Block specific content – Il metodo più semplice per l’utilizzo di un robots.txt

# Block access to the images folder
User-agent: *
Disallow: /images/

Allow specific content – bloccare una directory ma permettere l’acceso alle pagine dentro la stessa

# Block everything in the images folder
# Except allow images/image1.jpg
User-agent: *
Disallow: /images/
Allow: /images/image1.jpg

Allow specific robot –  Blocca una classe di robot (esempio, Googlebot) ma permette un robot specifico della stessa classe (esempio, Googlebot-Mobile).

# Block Googlebot access
# Allow Googlebot-Mobile access
User-agent: Googlebot
Disallow: /
User-agent: Googlebot-Mobile
Allow: /

ESEMPI DI CORRISPONDENZA SPECIFICA

La maggioranza dei motori di ricerca supporta due tipi di pattern matching.

  • * corrisponde a qualunque sequenza di carattere
  • $ corrisponde alla fine di un indirizzo URL.

Block access to URL that contain a set of characters – Usare l’asterisco (*) per specificare l’ingresso.

# Block access to all URLs that include an ampersand
User-agent: *
Disallow: /*&

Questa direttiva impedisce ai motori di ricerca di effettuare il crawling in http://www.esempio.com/page1.asp?id=3&sessionid=zzz.

Block access to URL that end with a set of characters – Usare il simbolo del dollari ($) per specificare la fine della linea.

# Block access to all URLs that end in .cgi
User-agent: *
Disallow: /*.cgi$

Questa direttiva impedisce ai motori di ricerca di effettuare il crawling http://www.esempio.com/script1.cgi ma non di http://www.esempio.com/script1.cgi?value=1.

Selectively allow acces to URL that matches a blocked pattern – Usare la direttiva Allow in unione al pattern matching per implementazioni più complesse.

# Block access to URLs that contain ?
# Allow access to URLs that end in ?
User-agent: *
Disallow: /*?
Allow: /*?$

Questa direttiva blocca tutti gli indirizzi URL che contengono ? eccetto quelli che terminano in ?. In questa esempio la versione indicizzabile della pagina sarà:

  • http://www.esempio.com/productlisting.aspx?

Le varianti che saranno bloccate:

  • http://www.esempio.com/productlisting.aspx?nav=price
  • http://www.esempio.com/productlisting.aspx?sort=alpha

 

IMPLEMENTAZIONE A LIVELLO DI PAGINA (META TAG)

Le direttive a livello di pagina del REP, permettono di redifinire le politiche del proprio blog su una base pagina-per-pagina.

Palcing a meta tag on th page – Inserire i meta tag nell’head tag. Ogni direttiva deve essere limitata da una virgola dentro il tag stesso. Es. meta name=”ROBOTS” content=”Direttiva1, Direttiva2>

<html>
<head>
<title>Your title here</title>
<meta name="ROBOTS" content="NOINDEX">
</head>
<body>Your page here</body>
</html>

Targeting a specific search engine – Tra i meta tag sarà possibile speificare quale motore di ricerca desiderate come obiettivo, o tutti contemporaneamente.

<!-- Applies to All Robots -->
<meta name="ROBOTS" content="NOINDEX">
<!-- ONLY GoogleBot -->
<meta name="Googlebot" content="NOINDEX">
<!-- ONLY Slurp (Yahoo) -->
<meta name="Slurp" content="NOINDEX">
<!-- ONLY MSNBot (Microsoft) -->
<meta name="MSNBot" content="NOINDEX">

Cotrol how your listings – Esiste una serie di opzioni che possono essere configurate per determinare come il blog appare nelle SERP. Si può controllare la descrizione ed anche rimuovere i link delle “cached page”

<!-- Do not show a description for this page -->
<meta name="ROBOTS" content="NOSNIPPET">
<!-- Do not use http://dmoz.org to create a description -->
<meta name="ROBOTS" content="NOODP">
<!-- Do not present a cached version of the document in a search result -->
<meta name="ROBOTS" content="NOARCHIVE">

Using other directives – Altre direttive

<!-- Do not trust links on this page, could be user generated content (UCG) -->
<meta name="ROBOTS" content="NOFOLLOW">
<!-- Do not index this page -->
<meta name="ROBOTS" content="NOINDEX">
<!-- Do not index any images on this page (will still index the if they are linked
     elsewhere) Better to use Robots.txt if you really want them safe. This is a Google Only tag. -->
<meta name="GOOGLEBOT" content="NOIMAGEINDEX">
<!-- Do not translate this page into other languages-->
<meta name="ROBOTS" content="NOTRANSLATE">
<!-- NOT RECOMMENDED, there really isn't much point in using these -->
<meta name="ROBOTS" content="FOLLOW">
<meta name="ROBOTS" content="UNAVAILABLE_AFTER">

IMPLEMENTAZIONE NELL’HEADER HTTP (XROBOTS-TAG)

Questo tag permette ai programmatori e svilupaptori di specificare direttive a livello di pagine con il REP per contenuti che non siano di testo, tipo PDF, DOC, PPT, ecc…

Using the X.Robots-Tag – Per usare il tag X-Robots-Tag, occorre semplicemente aggiungerlo all’header del proprio blog come indicato in basso. Per specificare molteplici direttive, potrete limitarle con la virgola, o aggiungerle separatamente.

HTTP/1.x 200 OK
Cache-Control: private
Content-Length: 2199552
Content-Type: application/octet-stream
Server: Microsoft-IIS/7.0
content-disposition: inline; filename=01 - The truth about SEO.ppt
X-Robots-Tag: noindex, nosnippet
X-Powered-By: ASP.NET
Date: Sun, 01 Jun 2008 19:25:47 GMT

La direttiva dell’X-Robots-Tag supporta praticamente le stesse direttive dei meta tag. L’unica limitazione di questo metodo è che non esiste alcun sistema per trattare un robot specifico e, in questo senso, probabilmente non è una grande opportunità.

  • X-Robots-Tag: noindex
  • X-Robots-Tag: nosnippet
  • X-Robots-Tag: notranslate
  • X-Robots-Tag: noarchive
  • X-Robots-Tag: unavailable_after: 10 May 2008 16:00:00 GMT

IMPLEMENTAZIONE A LIVELLO DI CONTENUTO

Possiamo ancora affinare le direttive a livello di pagina, siti/blog con svariati “content tags”, ossia tag per contenuti.

Il tag del testo àncora (link) può essere modificato per dire ai motori di ricerca che non ci fidiamo dell’indirizzo di destinazione dello stesso URL. Si utilizza questo sistema quando non si vuole passare pagerank o semplicemente per non dare rilevanza al link, ed anche in siti con contenuti generati dagli utenti, come per esempio le wiki, commenti del blog stesso, recensioni ed altro ancora.

<a href="#" rel="NOFOLLOW">Hyperlink</a>

Ancora, con Yahoo”! Search possiamo specificare quali devono essere gli elementi di una <div> in una pagina, che non vogliamo vedere indicizzati, usano l’attributo class=robots-nocontent. Non vi raccomando, comunque l’uso di questo tag, per il semplice fatto che non è supportato da altri motori di ricerca e ciò potrebbe essere importante.

<div class="robots-nocontent">
Senza alcun contenuto per se stesso (per lo meno per Yahoo!)
</div>

CONCLUSIONE

Lavorare con i robots.txt ed altri sistemi d’indicizzazione e blocco delle informazioni può apparire complesso ma, nella realtà è molto semplice e segue una logica elementare. Se avete qualche dubbio relativamente agli esempi scritti nel post, lasciate pure un commento! Ditemi anche cosa ne pensate dell’articolo!

Previous
Next

Lascia un Commento

Il tuo indirizzo email non sarà visibile Contrassegnati i campi obbligatori *

*