Optimización del archivo Robots.txt para Google

ApacheNode.jsSEO

El archivo Robots.txt sirve para dar información a Googlebot y a los demás robots que rastrean internet acerca de las páginas y archivos que se deben indexar en nuestra web. Aunque no es imprescindible, el archivo Robots.txt es de gran ayuda para Google y otros robots rastreadores a la hora de indexar nuestra página, por lo que es muy importante que esté configurado correctamente.

El archivo Robots.txt debe estar creado en el directorio raíz de nuestra web y, tal y como su nombre indica, es un sencillo archivo de texto con extensión .txt. Debemos asegurarnos de que tiene permisos de lectura públicos para que sea posible acceder a él desde el exterior, como por ejemplo, permisos 664.

En caso de que el archivo no exista en nuestra web, debemos acceder mediante FTP a nuestro servido y crearlo. Existen Plugins para los CMS más utilizados como Drupal o WordPress que crean y configuran este archivo por nosotros en caso de que no exista.

A pesar de que el Googlebot de google es el robot rastreador más popular, también conviene tener en cuenta el Bingbot del buscador Bing, el Yandexbot ruso, el Yahoo Slurp, el bot de Alexa (ia_archiver) o el buscador chino BaiduSpider.

Existen también otros bots con funcionalidades más específicas como Googlebot-image, encargado de rastrear e indexar exclusivamente las imágenes de los sitios web.

Existen muchísimo robots rastreadores y muchos de ellos no rastrean nuestra web con buenas intenciones, ya que pueden ser desde bots que buscan agujeros de seguridad hasta programas de extracción de contenido para duplicar nuestra web.

Es muy importante tener en cuenta que, por defecto, todas las páginas de una web serán indexables. Mediante el archivo Robots.txt podemos dar unas directrices a los distintos bots que nos visitan para decirles el contenido al que pueden tener acceso y el que no deben rastrear. Podemos hacer todo ésto mediante unos sencillos comandos básicos:

  • User-agent: Sirve para indicar el robot al que se aplicarán las reglas que se definirán a continuación.
    Sintaxis: User-agent: NombreDelBot
    Ejemplo: User-agent: Googlebot
  • Disallow: Sirve para indicar a los robots que no deben rastrear la URL o URLs que coincidan con el patrón definido a continuación.
    Sintaxis: Disallow: Patrón
    Ejemplo: Disallow: /comentarios
  • Allow: Sirve para indicar a los robots que deben rastrear la URL o URLs que coincidan con el patrón definido a continuación. Las instrucciones de Allow tienen preferencia sobre las de Disallow, por lo que si definimos que una página o páginas sean indexables con Allow, serán siempre indexables aunque algunas de ellas estén incluidas en alguna otra instrucción de Disallow.
    Sintaxis: Allow: Patrón
    Ejemplo: Allow: /readme.html
  • Sitemap: Sirve para especificar en dónde se encuentra el sitemap de nuestra web.
    Sintaxis: Sitemap: UrlDelSitemap
    Ejemplo: Sitemap: http://www.neoguias.com/sitemap.xml

A la hora de especificar los patrones, existen una serie de caracteres especiales. Veremos primero cuales son estos caracteres y seguidamente explicaremos cómo se usan mediante algunos ejemplos.

  • *: El asterisco es un comodín que equivale a cualquier caracter o conjunto de caracteres.
  • $: El símbolo del dólar indica el final de una cadena de texto, ya que por defecto, estas expresiones entienden que si no se lo indicamos, pueden ir más caracteres tras el último que escribimos en el patrón.

Por último, es importante tener en cuenta que el archivo Robots.txt discrimina entre mayúsculas y minúsculas, por lo que no será lo mismo «Disallow: /archivo.html» que «Disallow: /Archivo.html».

Como seguramente no hayáis entendido demasiado, ha llegado la hora de que entendáis todo mediante unos sencillos ejemplos.

User-agent: *
Disallow: /articulos/

Lo que estamos haciendo con el asterisco de User-agent es indicar que la siguiente instrucción o instrucciones se aplicarán para todos los bots. Esto se mantendrá hasta el final del documento o hasta que aparezca de nuevo el comando User-agent haciendo referencia a otro robot o robots.

Mediante la instrucción de Disallow, estaremos indicando a los bots que no indexen la página «/artículos/«, partiendo siempre de nuestro directorio raíz. Es un error frecuente pensar que solamente se bloqueará esta URL, puesto que tal y como hemos explicado antes, se da por hecho que pueden existir más caracteres detrás del último caracter, que en este caso es la «/» de «/artículos/«. Por ejemplo, también se bloqueará la URL «/articulos/ejemplo» y demás URLs que comiencen por «/artículos/«.A continuación veremos cómo bloquear solamente la página «/artículos/«, haciendo posible que se indexen las páginas que cuelguen de ésta en un nivel inferior como «/artículos/julio» o «/artículos/agosto«.

User-agent: *
Disallow: /articulos$

Este caso es exactamente igual que el anterior, con la diferencia de que mediante el símbolo del dólar delimitamos la URL para que solamente se excluya «/articulos«, pudiendo indexarse las páginas de nivel inferior como «/articulos/enero» o «/articulos/febrero«.

Como vemos, hemos excluido la barra invertida del final de la URL, puesto que es común que en ocasiones se incluya y en otras no, abarcando así todos los casos.

User-agent: *
Disallow: /articulos/
Allow: /articulos/enero

Por defecto, está permitido que los bots puedan acceder a todas las páginas. Lo que hacemos primero es impedir el acceso a la página «/articulos/» y a todas las de nivel inferior, pero mediante Allow permitios que sí se indexe la URL «/articulos/enero«. De este modo, solamente se indexará la página «/articulos/enero«, pero no las páginas «/articulos/febrero«, «/articulos/marzo» y demás subpáginas.

User-agent: *
Allow: /articulos/$
Disallow: /articulos/

En este caso, permitimos el acceso a la página «/articulos/» y solamente a ella, no especificando nada acerca de las páginas que podría haber en nivel inferior que, por defecto, serían de momento también accesibles para los bots.

Mediante la siguiente instrucción de Disallow, estamos excluyendo la página «/articulos/» y todas las subpáginas de nivel inferior, pero como hemos definiendo explícitamente que sea posible indexar «/articulos/» mediante la instrucción inmediatamente anterior, será indexable.

User-agent: *
Disallow: /pagina/*/articulos/

Lo que estamos indicando mediante la instrucción de Disallow del ejemplo, es que no deben indexarse las páginas que tengan como primer elemento de la URL «/pagina/» y como tercer elemento «/articulos/«, independientemente de cual sea el segundo elemento. Como vemos, el asterisco sirve para sustituir a cualquier cadena de caracteres.

User-agent: *
Disallow: /ocultar

User-agent: WebZIP
Disallow: /

En el ejemplo, primero decimos a todos los bots que no indexen la página «/ocultar«. Seguidamente seleccionamos al bot «WebZIP» y le decimos que no indexe ninguna URL de nuestra web, indicándoselo con una barra invertira «/«, que representa al directorio raíz. Es posible referenciar a muchos robots en el archivo Robots.txt. Los comandos comunes afectarán a todos los robots y los específicos para cada robot, solamente al robot seleccionado, teniendo precedencia los comandos específicos para el propio robot sobre los generales.

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

Mediante el comando Sitemap, podemos decirle a los bots en dónde se encuentra el sitemap de la web, útil para ayudarles a encontrar todas las URLs. No es algo imprescindible, pero toda ayuda será siempre bienvenida.

Es recomendable que, cuando sea posible indexar una página, todas las imágenes, archivos CSS y archivos JavaScript sean también indexables. Esto debe ser así porque Google necesita tener una vista real de la web, siendo ésta lo más parecida a la que verá un visitante humano. Dicho de otro modo, para que Google no nos penalice en los rankings, los archivos CSS, los archivos JavaScript y las imágenes no deben estar bloqueadas en el archivo Robots.txt.

Además del archivo Robots.txt, también podemos indicar a los robots que indexen o que no indexen ciertas páginas usando la meta-etiqueta de meta robots, que puede tener los valores Index o NoIndex para indicar a los robots si deben o no deben indexar la página. Además, también pueden tener un segundo valor que puede ser Follow o NoFollow para indicara los robots si, por defecto, deben seguir los enlaces de la página.

Estas meta-etiquetas pueden utilizarse en combinación con el archivo Robots.txt, pero el uso del archivo da información previa a los robots para que ni siquiera tengan que ver el código de las páginas para saber si pueden o no indexarlas.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”