El fichero robots.txt es un archivo de texto que dicta unas recomendaciones para que todos los crawlers y robots de buscadores cumplan (¡ojo! recomendaciones, no obligaciones). Pero comencemos por el principio.
Un crawler es un robot de una entidad (generalmente buscadores) que acceden a las páginas web de un sitio para buscar información en ella, añadirla en los buscadores, etc. También son llamados spiders, arañas, bots o indexadores.
Por ejemplo, Googlebot es el nombre del crawler del buscador Google. También existen otros como:
Mediapartners-Google, que es el crawler que se encarga de revisar los anuncios de Google Adsense.
Googlebot-Image, robot indexador de imagenes del buscador de Google.
Bingbot, crawler de indexación del buscador Bing
Slurp, crawler de indexación del antiguo buscador Yahoo!
Scooter, del clásico buscador Altavista.
Y muchísimos más. Si establecemos un control en nuestro robots.txt, podremos conseguir una serie de beneficios:
Impedir acceso a robots determinados: Puede parecer contradictorio, pero algunos crawlers no nos proporcionarán sino problemas. Algunos robots no son de buscadores, e incluso algunos robots no son ni amigos. Pero de eso ya hablaremos más tarde.
Reducir la sobrecarga del servidor: Podrás controlar el flujo de algunos robots. Algunos de ellos son un verdadero descontrol de peticiones que pueden llegar a saturar tu servidor.
Prohibir zonas: Nos puede interesar tener disponible una zona en nuestra web, que sea accesible para algunos, pero que no aparezca en buscadores.
Eliminar contenido duplicado: Uno de los casos más importantes, que casi siempre es olvidado por los webmasters. Si eliminamos la duplicidad de contenido, los buscadores nos puntuaran muy alto, aumentando el flujo de visitas.
Fijar mapas del sitio: También es posible acoplar un sitemap para indicar el buen camino a los robots.
Creación del fichero robots.txt
¿Y entonces, que hay que hacer? Es muy sencillo.
Sólo tenemos que crear un fichero de texto robots.txt y comenzar a escribir en él. Partiré del siguiente ejemplo donde permitimos la entrada a todos los crawlers (igual que sin ningún robots.txt):
User-agent: *
Disallow:
En User-agent debemos introducir el nombre del robot, y a continuación las rutas donde queremos prohibir que acceda. Algunos ejemplos:
Disallow: / prohibe la entrada a todo el sitio.
Disallow: /foro/ prohibe la entrada a los documentos del directorio foro.
Disallow: permite la entrada a todo el sitio.
En algunos casos suele utilizarse en lugar de Disallow, la palabra Allow. Aunque por definición es correcta, es conveniente no utilizarla, puesto que las rutas omitidas se asumen que están permitidas por defecto, y algunos crawlers no entienden la palabra Allow.
Es posible acumular varios Disallow bajo un mismo User-agent, pero no podemos utilizar varios User-agent encima de un Disallow. Veamos un ejemplo:
Este código impide al crawler del buscador de Bing (Microsoft) acceder a la página links.html, y las carpetas private y photos (y todo su contenido) de nuestro sitio.
Añadiendo el carácter # al principio de una linea podemos escribir comentarios que no interpretará el crawler.
Opciones avanzadas: Comodines
Es posible ir acumulando reglas para distintos crawlers, formando un robots.txt más largo y completo. Cada vez que escribamos un User-agent deberemos dejar una linea en blanco de separación. Además, existe una ligera adaptación que permiten usar comodines ($ y *) en las rutas en algunos crawlers (sólo Googlebot y Slurp):
Se está indicando al robot de Yahoo, que no indexe los ficheros que terminen en .js (javascript), direcciones que empiecen por 2007 o 2006 (fechas), ni artículos con la palabra pagina (paginado de comentarios). Estos casos pertenecen a la idea de no indexar contenido duplicado.
En la mayoría de los blogs, puedes acceder a un mismo artículo por las direcciones:
blog.com/articulo/titulo, la dirección principal.
blog.com/2007/04/, el archivo del mes.
blog.com/articulo/titulo/feed, feed RSS del artículo.
blog.com/articulo/titulo/pagina/2, pagina 2 de comentarios.
Todo esto es contenido duplicado, una de las razones más importantes de penalización para un buscador, a no ser, claro, que te las ingenies para que sólo sea accesible desde una dirección. A la hora de ver los resultados te asombrarás lo bien que estarás quedando ante los ojos de Google, por ejemplo.
Hay que tener mucho cuidado con usar cosas como Disallow: /pagina o Disallow: /*pagina, puesto que en lugar de bloquear lo que queríamos (carpeta pagina o artículos paginados), terminen bloqueando direcciones como /decorar-mi-pagina o /paginas-para-amigos/.
Reducir frecuencia de rastreo
Si revisas estadísticas y demás, también puedes observar que a veces algunos crawlers «se pasan» revisando nuestro sitio, y funden a peticiones a nuestro pobre servidor. Existe una manera de tranquilizar a los robots:
User-agent: noxtrumbot
Crawl-delay: 30
Con esto le decimos al robot de noxtrum que espere 30 segundos entre cada acceso. Cuidado, porque Crawl-delay puede que no lo soporten todos los crawlers. Bing y Google si lo soportan.
Incluir Sitemap
Finalmente, podemos también incluir un mapa del sitio en nuestro robots.txt de la siguiente forma:
Recordar a todos que con el fichero robots.txt no podemos bloquear los accesos por «fuerza bruta». Robots.txt es una recomendación del webmaster a los buscadores, que como son «robots buenos», las seguirán al pie de la letra.
Existen otros «robots malos» (que buscan direcciones de correos o formularios para hacer SPAM) que no dudarán en acceder a los lugares que hayas prohibido si lo desean. Para bloquear estos otros robots, deberemos echar mano al fichero .htaccess, pero como decía Michael Ende, eso ya es otra historia...
Especialmente interesante el apartado del contenido duplicado, sobre todo las direcciones de los feeds, se posicionan mucho (al menos en Google) y es bastante incómodo pinchar un resultado que lleva a un feed y no a una entrada.
Gracias por utilizar el fichero robots.txt, gracias a él todos podremos saber un poco más sobre vuestras webs, como por ejemplo, la URL de vuestro panel de administración, al que hacer un SQL injection....
Y he conseguido estos resultados al analizar el robots.txt en las herramientas de google:
http://www.cherada.com/blogs/do/view/id/2588/como-consentirte-estas-vacaciones.html Permitido por la línea 108: Allow: /blogs/*/*/*/*/*.html$
http://www.cherada.com/blogs/do/view/id/2588.html Bloqueado por la línea 107: Disallow: /blogs/*/*/*/*.html$
Para otros archivos que terminan en .html obtengo:
http://www.cherada.com/search.html Autorizado
Entonces te quería preguntar cuál es la diferencia entre Permitido y Autorizado y si también es conveniente usar la sintaxis Allow en lugar de Disallow y en caso que no cómo lo harías tú, teniendo en cuenta que lo que se desea (para evitar duplicidad) es que se permita los blogs que tengan nombre y se impidan los que solo tienen el numero sin ningun nombre.
La verdad es que no estoy muy seguro que entiende Google por Permitido y Autorizado, para tu caso necesitaría más datos, pero deduzco que uno será cuando encuentra el Allow (y le permites algo expresamente) y el otro será cuando no ha encontrado ningún impedimento (o se ha autorizado al bot a entrar en una sección con contraseñas). Son los términos que utiliza Google en cada caso.
Mi idea es siempre asumir que todo está permitido, y evitar indexación con Disallow.
Tu ejemplo de utilizar Allow es perfecto, no sólo en la práctica sino como ejemplo teórico. Se debe utilizar para permitir algo que anteriormente fue prohibido con Disallow.
En estos casos lo que se suele hacer es modificar las URLs a golpe de modrewrite, ya que también tienes que tener en cuenta que a Google no le gustan las URLs con muchos niveles de profundidad.
Tiene mucho sentido todo ahora con eso que decís de permitir expresamente y no dejar pasar. Lo de URLs cortas es lo mejor sí, defitivamente es de echarle un vistazo.
Excelente artículo! me habían pedido que escribiese un artículo sobre robots.txt, y francamente sólo me queda recomendar este artículo, porque no se puede enriquecer más. Un saludo :)
Magnífico tutorial, aguanta bien el paso del tiempo, lo recomendé hace unas semanas en mi blog como uno de los sitios más interesantes. Felicidades y gracias por tu trabajo, que es mucho y de calidad :)
Hola Alguien sabe como o donde se tiene que subir el robot, en el caso o los casos para los blogs de google (blogger) o directamente no se pueden usar los robots!
Gracias!
Muchisimas gracias che si me puedes ayudar con algunas cosas hacerca de los metas te dejo mi correco en msn por fa necesito ayuda corcelespi@hotmail.com
un abrazo
Necesito que no aparezcan en el cache de google solamente 3 palabreas del contenido de una pagina, ¿como hago para colocar esto en un robots.txt ?
Por ejemplo: en la pagina todos.net/lista/socios.htm tengo dos nombre y un teléfono que no quiero que los indexen los buscadores, y que no aparezcan en el cache.
La verdad, clarisimo. el mejor articulo de la web de explicacion de robots.txt.
Estaria bueno algo para wordpress bien detallado para no ser penalizado por duplicar contenido y ademas para conocer exactamte los ejemplos que hay dando vuelta por la web, pero lo que esta, esta muy claro.
Muchas gracias.
Hola Manz si en blogger no podemos modificar el robot.txt entonces porque aparece en la plantilla? A mi me gustaria modificarla y saber cuales son los robots mas importanmtes ademas de yahoo, google y msn.
Saludos.
Algo me de claro de esto, aunque para mi es bastante complicado. LLegue aqui por el articulo en tu pagina de ocmo tener masvisitas en nuestro blog, pero aun asi no entedi como aplicarlo :/ no me queda claro aun.
porfavor, agradeceria mucho una explicacion mas practica :p
Saludos
Felicitaciones por la pagina.
Si señor, una explicación bien detallada de como hacer un archivo robots.txt y que la mayoria de los desarroladores web tienen olvidado. Generan miles de páginas con sistemas como joomla, foros, script de anuncios etc que generan miles de páginas duplicadas y no se les ocurre instalar un robots.txt
Lo que me gustaria saber es si para montar un Robots.txt y que funcione en mi sitio basta solamente con hospedarlo o es necesario agregar algun codigo a la pagina principal de mi web para que sea detectado por los crawlers de los buscadores.
Por cierto, aprovecho para invitarlos a descubrir la ventaja que ofrece buscar lo que quieras en los principales buscadores de internet desde un mismo punto http://www.ring.comyr.com
Hola, explicas todo pero aun no me he enterado: tengo un fichero en un blog de blogger "robots.txt" está mal y tengo que cambiarlo por otro robots.txt (bis) ¿como lo hago, paso a paso?. La verdad no recuerdo como lo subí en su dia.
gracias