El fichero robots.txt es un archivo de texto que dicta unas recomendaciones para que todos los crawlers y robots de buscadores cumplan. Veamos como crearlos y configurarlos.

optimizacion web
118

Escrito por

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.

crawler spider robot indexador araña googlebot slurp

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.
  • Googlebot-News, robot indexador de noticias para Google News.
  • 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:

crawlers robots txt robots.txt spiders index
  • 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:

# Crawler de Bing
User-agent: bingbot
Disallow: /links.html
Disallow: /private/
Disallow: /photos/

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):

User-agent: Slurp
Disallow: /*.js$
Disallow: /2006/*
Disallow: /2007/*
Disallow: /articulos/*/pagina/*

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:

Sitemap: http://www.emezeta.com/sitemap.xml

En RobotsTXT.org podrás encontrar documentación oficial si quieres profundizar y en esta búsqueda de Google encontrarás muchos robots.txt de ejemplo, incluso robots.txt optimizados para tu tipo de web. Además, también tienes un validador de robots.txt.

Conclusiones

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 formas alternativas para indicar a los crawlers que secciones deben o no deben indexar, como los meta tag Robots o la cabecera X-Robots-Tag, creados para casos más específicos. Si quieres más información sobre optimización web, te recomiendo el artículo Optimizar el rendimiento de tu página web.

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...

RELACIONADOS Robots: Accesos no humanos a la web RELACIONADOS The Dig: La aventura gráfica de Spielberg RELACIONADOS La gran guía de supervivencia de la terminal de Linux
x Robots: Accesos no humanos a la web
Manz

118 comentarios

1 2 3

Luisa González
104

Muchas gracias por tus tips me sirvieron muchísimo para mejorar mi página te la dejo para ver si me puedes dar tu opinión. www.impactarte.com.mx Gracias!

Suardíaz
105

Me ha encantado tu artículo. Sino te importa voy a compartirlo en mi blog, con la fuente, no te preocupes. Muy bien escrito y explicado

julio
106

Hola, en mi caso busque este tutorial para aplicar algo a un blog y espero y me funcione. y gracias por compartil con nosotros.

Olazar
108

tengo un blog donde acabo de insertar bloques de anuncios de adsense, pero los bloques siempre me aparecen vacio, es decir, no aparecen los anuncios, otros amigos me confirmaron que a ellos tampoco les aparecen, y segun el soporte de google adsense puede ser que el robot txt esten bloqueando el anuncio... en ese caso seria posible eliminar el robot txt de mi blog de worpress? gracias

david
110

Homa de nuevo Manz. Te leo con asiduidad y evidentemente me encanta todo lo que escribes. Hace tiempo te pregunté sobre unas cosillas de Rocket launcher de Cloudfare y ya me ayudaste. Gracias. Pues ahora tengo un problemilla gordo gordo con mis imágenes, AIOSP y el robots.txt.. Google las está desindexando todas... Hace unos dias comprobé que en el apartado de NOINDEX de All in one Seo, los objetos estaban en NO INDEX. Así que lo cambié, y también permití que se pudiera editar los campos de AIOSP en las imágenes. También retoqué un poco el robots.txt (hasta ahora no había tenido problemas) y añadí algún parámetro a Gogle Webmasters para borrar tags y otros parámetros basurilla.. La cosa es que después Google ha empezado a desindexar todas mis imágenes, bajando por supuesto las visitas que ahora recibo en mi web... Estoy desesperado, ya no se ni qué hacer. Me parece que todo está correcto pero nada... Siguen desindexándose mis imágenes (envio mi sitemap image y se reciben 1000 y pico imágenes,pero se indexan 50, al dia siguiente hay 30, al siguiente 25 indexadas... ) Totalmente desesperado. Agradecería cualquier ayuda o consejo que pudieras darme. A pesar de este tochazo, te añado mi robots.txt por si puedes arrojar algo de luz sobre esto. (verás que no he incluido /replytocom ni /page ni otras muchas cosas importantes así porque estoy esperando que los parámetros de google las detecten y desindexen...): Sitemap: http://eltallerdelbit.com/sitemapindex.xml Sitemap: http://eltallerdelbit.com/sitemap-image.xml.gz Sitemap: http://eltallerdelbit.com/sitemap-image.xml User-agent: * Allow: /wp-content/uploads/ Allow: /wp-content/uploads Allow: /2011/08/page-rank-y-las-keywords/ Allow: /reducir-el-tamano-de-un-feed Allow: /tag/windows/ Allow: /que-porcentaje-de-pagerank-se-pierde-al-hacer-una-redireccion-301/ Allow: /tag/google/ Allow: /reducir-el-tamano-de-un-feed/ Allow: /your-feed-filesize-is-larger-than-576k/ Disallow: /wp-content/plugins/ Disallow: /cgi-bin/ Disallow: /wp-admin/ Disallow: /wp-includes/ Disallow: /wp-includes/* Disallow: /archives/ Disallow: /comments/feed/ Disallow: /trackback/ Disallow: /xmlrpc.php Disallow: /*/text37.swf Disallow: /Implantacion.htm Disallow: /error-windows-se-queda-congelado-en-login/ Disallow: /Implantacion_teoria_access.htm Disallow: /funciones_de_un_sgbd.htm Disallow: /Redes.swf Disallow: /implantacion.htm Disallow: /Implantacion_teoria_access.htm Disallow: /search Disallow: /?feed=rss2 Disallow: /comments Disallow: /wp-login.php/ Disallow: /*/feed/rss/$ Disallow: /*/trackback/$ Disallow: /*/trackback/ Disallow: /*/*/trackback/$ Disallow: /*/*/*/trackback/$ Disallow: /*/feed/$ Disallow: /*/*/*/feed/$ Disallow: /*/*/*/feed/rss/$ Disallow: /*/*/feed/$ Disallow: /*/*/feed/rss/$ Disallow: /?feed=comments-rss2/ Disallow: /feed/ Disallow: /*/feed/ Disallow: /feed*/ Disallow: /*/*/feed/$ Disallow: /*/*/*/feed/rss/$ Disallow: /*/*/*/feed$ Disallow: /*/*/*/feed$/ Disallow: /*/*/feed/rss/$ Disallow: /*/feed/rss/$ Disallow: /*/*/*/feed/$ Disallow: /*/feed/$ Disallow: /*/*/feed/$ Disallow: /*/*/*/feed/ Disallow: /*/*/feed/ Disallow: /*/feed/ Disallow: /comments/ Disallow: */comments Disallow: /*.js$ Disallow: */js?* Disallow: /*/js/* Disallow: /*.inc$ Disallow: /*.css$ Disallow: /author/ Disallow: /readme.html Disallow: /license.txt Disallow: /licencia.txt Disallow: /*search/ Disallow: /category/ Disallow: /category/* Disallow: /*/*/*/function.include-once Disallow: /*/*/function.include-once Disallow: /*.cgi$ Disallow: /*.wmv$ Disallow: /*.inc$ Disallow: /*.css$ Disallow: /*.html Disallow: /*.swf Disallow: */.html Disallow: */.swf Disallow: /*.xhtml$ Disallow: /*.txt$ Disallow: */wpdmact/ Disallow: */*/wpdmact*/ Disallow: */*/*/wpdmact*/* Disallow: /*.php$ Disallow: /attachment*/ Disallow: /*.css$ Disallow: / $ css Disallow: /*.js$ Disallow: / $ js Disallow: /logs/ User-agent: Mediapartners-Google* Allow: / User-agent: Adsbot-Google Allow: / User-agent: Googlebot-Mobile Allow: / User-agent: Googlebot-Image Allow: /* User-agent: yahoo-mmcrawler Allow: / User-agent: psbot Allow: / User-agent: yahoo-blogs/v3.9 Allow: / User-agent: yahoo-slurp Allow: / User-agent: duggmirror Disallow: / User-agent: sitecheck.internetseer.com Disallow: / User-agent: Zealbot Disallow: / User-agent: MSIECrawler Disallow: / User-agent: SiteSnagger Disallow: / User-agent: WebStripper Disallow: / User-agent: WebCopier Disallow: / User-agent: Fetch Disallow: / User-agent: HTTrack Disallow: / User-agent: Microsoft.URL.Control Disallow: / User-agent: libwww Disallow: / PD: Perdón de nuevo por el tochazo. Espero puedas darme algún consejo. Gracias por tu tiempo. Saludos. David.

israel
112

oye que mala onda, das chance de poner una url, pero le colocas el rel=nofollow. mejor quita el apartado de web, si no quieres compartir un backlink

AllBeauty
113

En Mi robots.txt: Solo me aparece lo siguiente por defecto, User-agent: * Crawl-delay: 60 Visit-Time: 0810-2200 UTC+1 Google dice que la 3 linea da error, help?

Brian
114

Excelente articulo, pero vale recalcar que no todos los motores de busqueda respetan esta solucion, e indexan sus sitios sin autorizacion.

Ronal
115

Excelente Post, anteriormente ignoraba que existía este archivo y que es fundamental para que google u otro buscador indexe una web, gracias por tu explicación quedó todo bien entendido.

javier
117

En mi web tenía el allow, pero tomè su consejo y lo cambié a Disallow para evitar problemas con el bot, gracias por el aporte!

1 2 3

Publica tu opinión