Robots.txt

Un archivo robots.txt es un archivo para indicar a los robots (programas automatizados de los buscadores mediante los cuáles rastrean e incorporan a la base de datos los datos de páginas webs) unas "normas" para el uso por parte de ellos de un sitio web.

Un archivo robots.txt es un archivo llamado robots.txt y se aloja en la raíz del subdominio o dominio que regula, por lo que debe de ser accesible por la dirección www.dominio.com/robots.txt. Para evitar provocar errores 404 usa un archivo robots.txt aunque no limites a nada. Por ejemplo, copia este código y ponlo en la raíz de tu dominio en un archivo robots.txt:

User-agent: *
Disallow:

Comentarios

En un fichero robots.txt también se pueden insertar comentarios. Sólo hay que poner el comentario en una línea después del carácter #. Ejemplo:

# Esto es un comentario

Escoger robot

Un archivo robots.txt lo primero que hace es establecer unas normas concretas para cada robot. Si queremos marcar unas normas para un robot concreto lo que debemos saber es el nombre del robot. Los más frecuentes son googlebot (de Google), mediapartners (de Google AdSense, es para escoger los anuncios para una web que use AdSense), msnbot (de Msn) o Slurp (Yahoo!). También tienes una amplia lista en esta página o en esta otra. Si lo que queremos es aplicar unas normas para todos los robots lo que hay que hacer es utilizar *. Luego debemos de usar esta línea:

User-agent:

y poner a continuación el nombre del robot. Si por ejemplo queremos establecer normas para el robot de Google:

User-agent: googlebot

Y si queremos aplicar esta norma para todos los robots:

User-agent: *

Prohibir la indexación de archivos o directorios

El principal uso de estos archivos es prohibir el acceso, y por tanto la indexación de archivos y carpetas. Para excluir algún archivo o directorio primero hay que poner a qué robot queremos aplicar esta norma, y luego poner "Disallow:" y a continuación indicar la ruta relativa a la raíz del dominio de cada archivo o directorio a excluir, usando una exclusión por línea. Por supuesto si queremos especificar el comportamiento de varios robots a la vez basta con añadir las líneas que necesitemos a nuestro archivo.

Ejemplos:

Damos acceso libre a todos los robots a todas las partes de nuestro sitio:

User-agent: *
Disallow:

Tenemos un dominio de nombre dominio-ejemplo.com y queremos excluir para el robot de Yahoo! (llamado Slurp) el acceso al archivo situado en www.dominio-ejemplo.com/admin.php y el directorio www.dominio-ejemplo.com/admindirectorio. El robots.txt resultante sería este:

User-agent: Slurp
Disallow: admin.php
Disallow: /admindirectorio

Y si no sólo queremos que Yahoo! no lo indexe, sinó que no lo indexe ningún robot, haremos:

User-agent: *
Disallow: admin.php
Disallow: /admindirectorio

Si lo queremos es prohibir por ejemplo el acceso de Msn a nuestra web entera lo que debemos de hacer es esto:

User-agent: msnbot
Disallow: /

Y si lo queremos es prohibir el acceso de Msn a nuestra web entera pero permitírselo a Google, lo que debemos de hacer es esto:

User-agent: msnbot
Disallow: /
User-agent: googlebot
Disallow:

Y si queremos prohibir a cualquier robot el acceso a nuestra web haremos esto:

User-agent: *
Disallow: /

Prohibir la indexación de ciertos tipos de ficheros

Si queremos evitar que los robots o un robot concreto indexe unos tipos de ficheros en particular podemos hacer esto:

User-agent: [seleccionamos a qué robot aplicamos la norma]
Disallow: /*.[extensión del archivo]$

Ejemplo:

User-agent: *
Disallow: /*.PDF$
Disallow: /*.jpeg$
Disallow: /*.exe$

Otros usos

Aparte de regular el acceso a nuestros directorios o archivos los robots.txt también sirven para otras cosas.

Uno de estos usos es regular la frecuencia de peticiones que hace un robot de tu sitio, por ejemplo si un robot está produciendo un tráfico demasiado intenso puedes usar la etiqueta Crawl-delay: [número segundos en números] para aliviar el acceso del robot. Por ejemplo, si ocasionalmente se produce un tráfico alto en MSNBot añade estas líneas a tu robots.txt:

User-agent: msnbot
Crawl-delay: 120