En este artículo vamos a hablar en profundidad sobre el archivo robots.txt.
No sólo veremos qué es y cómo utilizar sus directivas, también veremos casos donde podemos utilizarlo para mejorar el posicionamiento de nuestra web.
Comprender las particularidades y el funcionamiento de este archivo es de vital importancia porque un error en el mismo puede provocar que nuestro sitio deje de ser rastreado o indexado por los motores de búsqueda.
Con la consecuente pérdida de tráfico orgánico que esto supondría.
La máxima implicación de este archivo se da en sitios webs muy grandes, con miles y miles de URLs donde es posible que los robots tengan dificultades para rastrear la totalidad del contenido de una web.
Para sitios pequeños es posible que no necesitemos realizar grandes modificaciones porque el rastreo no es tan frecuente.
¿Qué es el archivo robots.txt?
El robots.txt es un archivo que indica a qué partes de nuestra web pueden acceder los robots o crawlers de los buscadores.
Gracias a él podemos permitir o bloquear el rastreo de determinados contenidos de nuestra web.
Por defecto, salvo que en el robots.txt se indique lo contrario, todo el contenido de nuestra web será rastreable para los motores de búsqueda.
Nuestro objetivo como SEOs es optimizar el presupuesto de rastreo.
Esto es, priorizar el rastreo hacia contenidos nuevos, que se actualicen periódicamente o que sean relevantes.
Aclaración: aunque en sus directrices para Webmasters, Google indica que sigue al pie de la letra lo que le indicamos en el robots.txt, otros robots puede que no lo hagan.
Igualmente, en determinados casos, como por ejemplo a la hora de utilizar el traductor de Google, hace caso omiso a este archivo.
Como explicar el funcionamiento de este archivo sobre la teoría puede parecer más difícil de lo que realmente es, voy a incluir ejemplos a lo largo del contenido.
El aspecto de un archivo robots.txt puede ser el siguiente:
User-agent: *
Disallow: /ofertas-temporales/
Disallow: /buscador/
Allow: /buscador/buscar-curso
sitemap: https://dominio.com/sitemap.xml
Podemos acceder al robots.txt de cualquier web introduciendo /robots.txt después del dominio.
Diferencia entre rastreo e indexación
Antes de seguir viendo las particularidades de este archivo, me gustaría hablar sobre la diferencia entre rastreo e indexación, ya que parece haber mucha confusión con esto.
- Hablamos de rastreo cuando el robot accede al contenido de la web.
- Hablamos de indexación cuando ese contenido es añadido al índice del motor de búsqueda.
Generalmente, hay excepciones que veremos más adelante en este artículo, primero ocurre el rastreo completo de un contenido y después su indexación.
El proceso estándar que sigue Google para indexar un contenido es:
- Detectar un nuevo contenido a través de enlaces.
- Rastrear y analizar dicho contenido.
- Añadirlo al índice.
Es posible que un contenido bloqueado por robots.txt sea indexado si recibe enlaces y Google lo considera relevante.
Si queremos evitar que un contenido sea indexado, debemos utilizar la metaetiqueta "noindex" dentro del <head> de la siguiente manera:
<meta name="robots" content="noindex">
De esta forma, dicho contenido no será mostrado en los resultados de búsqueda, aunque sí puede ser rastreado por los robots.
Si queremos que los robots no accedan a un contenido, debemos emplear el robots.txt
Utilizar conjuntamente noindex y el bloqueo de un contenido con robots.txt puede ser contraproducente y está desaconsejado.
Esto tiene una explicación.
Para leer la etiqueta noindex, Google debe acceder (rastrear) dicho contenido.
Si en robots.txt bloqueamos su acceso, no va a poder leer dicha etiqueta, por lo tanto, existe una posibilidad de que el contenido acabe siendo indexando si recibe enlaces.
Cuando un contenido bloqueado en robots.txt es idexado, lo más común es que en la metadescripción aparezca: "información no disponible".
Esto es debido a que no ha podido rastrear dicho contenido para ver sus etiquetas.
Características del robots.txt
Ahora que tenemos claro que el robots.txt sirve para gestionar el rastreo de nuestra web, pero no la indexación, vamos a hablar sobre sus características.
Debe ubicarse en la raíz de la web y es un archivo de texto que utiliza el formato de codificación UTF-8.
El archivo siempre debe tener el nombre de “robots.txt” y ser un archivo único por cada web.
Si tenemos varios subdominios, cada uno puede tener su propio robots.txt, cuyas reglas aplicarán para él mismo.
Un robots.txt alojado en el subdominio coches.dominio.com no aplicará sobre una URL que pertenezca al subdominio motos.dominio.com
El robots.txt se compone de grupos (User-agent) y cada grupo tiene una serie de directivas, donde se indica si un robot puede o no acceder.
Por lo tanto, cada grupo debe tener una directiva allow o disallow.
Dentro de este archivo podemos agregar comentarios con la almohadilla #.
Estos serán útiles para realizar aclaraciones de por qué bloqueamos o permitimos el acceso a determinados contenidos.
Así, en el futuro podremos entenderlo todo de un simple vistazo.
Su misión es similar a las anotaciones en CSS o HTML.
Ejemplo de robots.txt con comentarios:
User-agent: *
Disallow: /buscar/
#No quiero que rastree los contenidos que cuelgan bajo la url buscar/#
Generalmente, al final del archivo se indica la ruta del sitemap.xml de la web.
¿Cómo crearlo? Directivas y otros comandos
Pasamos ahora a la parte importante, que es aprender a crearlo y sus directivas.
Podemos utilizar cualquier editor de texto o incluso el bloc de notas para crear el archivo.
Siempre teniendo en cuenta que no puede llevar formato y que la extensión será de texto.
Como he comentado anteriormente, cada grupo comienza con User-agent:
Aquí indicamos sobre qué robots (user agents) se aplicarán las directivas que indicamos debajo.
Es posible que no queramos que un determinado bot acceda a una parte de la web pero que Google sí lo haga.
Si agregamos un asterisco (*), implica que las directivas aplicarán sobre todos los robots.
User-agent: *
En este caso las directivas sólo afectarán al robot de rastreo de imágenes de Google.
User-agent: Googlebot Image
A continuación, indicamos las directivas aplicadas, que pueden ser dos:
- Disallow: para indicar directorios o páginas que no deben ser rastreadas
- Allow: para indicar directorios o páginas a los cuales sí puede acceder
La directiva Allow anula el Disallow.
Se emplea cuando queremos permitir el rastreo a un determinado contenido que pertenece a un directorio cuyo rastreo está bloqueado.
User-agent: *
Disallow: /ofertas/
Allow: /ofertas/producto-1
En este caso nos encontramos con una tienda online que no quiere que los robots accedan a la categoría de ofertas, pero un producto en concreto si quiere que sea rastreado.
Para bloquear una URL en concreto, debemos indicarla tal y como se muestra en el navegador.
Si agregamos un slash final (/) bloquearemos el acceso al directorio.
Cualquier URL que cuelgue a partir de ella, negará el acceso a los robots.
User-agent: *
Disallow: /ofertas/
Siguiendo con el ejemplo anterior, en este caso el robot no podrá rastrear cualquier producto que cuelgue de esta categoría (ofertas/producto-1).
Sin embargo, la propia URL de la categoría sí podrá rastrearla.
Si queremos que no rastree ni la URL de la categoría ni lo que cuelgue de ella podemos utilizar el asterisco (*).
El asterisco (*) nos permite simplificar las reglas del robots.txt en función de determinados parámetros.
Podemos utilizarlo tanto en el prefijo como en el sufijo.
User-agent: *
Disallow: /oferta*
Aquí estamos indicando que cualquier contenido a partir de /oferta no puede ser rastreado.
Anotación: tampoco podría ser rastreada la URL/ofertas o cualquier contenido que cuelgue de ella. Estamos bloqueando el rastreo a todas las URLs que empiecen con “oferta”.
Si queremos bloquear un tipo de archivo o terminación de URLs utilizaremos el símbolo del dólar ($) tras dicha terminación.
User-agent: *
Disallow: /*.pdf$
Así no podrá acceder a cualquier archivo en pdf alojado en nuestra web.
Podemos utilizarlo también con imágenes o cualquier extensión.
Es común indicar la ruta del sitemap.xml en el robots.txt
Esto puede indicarse en cualquier parte del documento, aunque lo más común es hacerlo en la parte final.
Debe indicarse la dirección completa y en caso de haber más de un sitemap, pueden indicarse varios.
Sitemap: https://dominio.com/sitemap1.xml
Sitemap: https://dominio.com/sitemap2.xml
¿Cuándo es recomendable permitirlo y cuándo no? Allow vs Disallow
Podemos pensar que nos interesa que Google rastree todo el contenido de nuestra web.
Sin embargo, esto no es así, debido al crawl budget y, sobre todo, esto aplica a sitios muy grandes.
En webs con cientos o pocas miles de URLs, no deberíamos preocuparnos en exceso de ello.
En e-commerces muy grandes o sitios de noticias con una gran frecuencia de actualización y subida de contenidos nuevos, el rastreo puede llegar a ser un problema grave.
Vamos a poner el caso un e-commerce grande que sube 100 productos nuevos diarios.
El número de contenidos que Google rastrea al día de dicho e-commerce es limitado.
Si el robot “pierde el tiempo” con contenido que a nosotros no nos interesa, puede que estos productos nuevos no los rastree y, por lo tanto, de cara a Google es como si no los hubiéramos subido a la web.
¡No existen!
Nuestra labor como SEOs está fallando porque hay contenido que nos interesa posicionar que no está siendo ni siquiera rastreados.
Tenemos un problema de rastreo.
Problemas de rastreo suelen darse en URLs que se generan a través de filtros, contenido que generan los usuarios, resultados de búsquedas internas en la web, etc…
Cada sitio es un mundo y habrá que analizar las peculiaridades que tiene para poder establecer un robots.txt que facilite la priorización de rastreo hacia contenido relevante y nuevo.
Intentaremos que todo aquel contenido duplicado o de escaso valor no sea rastreado para así optimizar nuestro presupuesto de rastreo.
Igualmente debemos tener cuidado con qué partes de la web bloqueamos en el rastreo.
Podemos pensar que las paginaciones de un blog o de un e-commerce no deberían ser rastreadas pero, como casi todo en el SEO, la respuesta es: depende.
En algunos sitios donde la estructura web no está bien planificada y los enlaces internos son escasos, las paginaciones pueden ser la única forma para los robots de acceder a los contenidos que son más antiguos.
Si bloqueamos la única forma que tienen estos bots de acceder a dichos contenidos, es posible que los motores de búsqueda no vean los cambios que hacemos en ellos porque tarden demasiado en volver a rastrearlos.
En muchas ocasiones, pueden existir errores de base porque la web no se realizó pensando en SEO, pero debemos tener cuidado con qué cambios hacemos porque puede que sea peor el remedio que la enfermedad.
Mi consejo antes de comenzar a bloquear partes de la web es en primer lugar entender cómo funciona esa web y por qué.
El siguiente paso es analizar los logs del servidor.
Aquí es donde veremos realmente a qué partes de la web y cuándo han accedido los robots.
Así podremos detectar partes de nuestra web sin interés para el SEO que están siendo muy rastreadas, o partes importantes donde no llegan los robots.
Aquí también podremos ver si los robots pierden el tiempo rastreando contenido que ya no existe o incluso redirecciones.
¿Cómo comprobarlo con Site Audit de SEMrush?
Cuando un robots.txt es demasiado largo y tiene muchas directivas, puede ser tedioso comprobar si estamos utilizando este archivo de la manera correcta y no bloqueamos partes vitales de la web.
Site Audit de SEMrush analizará de forma automática si nuestro robots.txt presenta errores que pueden estar afectando negativamente al posicionamiento de nuestra web.
Puedes acceder a través de esta URL.
Detectar estos errores en robots.txt es de vital importancia porque podríamos estar teniendo problemas de rastreo e indexación sin saber por qué.
Además, nos indica errores y redirecciones que existen dentro de nuestra web, por lo que también podemos utilizarla para mejorar nuestro presupuesto de rastreo.
¿Cómo comprobarlo desde Search console?
Desde Search Console también podemos detectar errores en nuestro robots.txt o probar si una determinada URL tiene permitido o denegado el acceso.
Puedes acceder a través de este enlace, el proceso de comprobación es manual.
Debemos introducir cada URL en la que queremos comprobar si el acceso a un determinado bot de Google está permitido o no.
La parte positiva de esta herramienta es que podemos ir realizando tests en vivo para ver cómo afectarían a los robots dichos cambios.
Aclaración: Estos cambios realizados sobre la herramienta no se realizan sobre el archivo real. Después tendríamos que modificar el archivo subido a nuestra web en caso de querer realizar las modificaciones.
Conclusión final
Como veis, el robots.txt es un archivo muy importante porque afecta a una parte vital del SEO: el rastreo.
Entender las necesidades de nuestra web y optimizar este archivo acorde a ellas será de vital importancia para mantener nuestro sitio con una buena salud.
Podemos apoyarnos de las dos herramientas vistas en este artículo en caso de tener dudas sobre si estamos gestionando correctamente este archivo.