Optimizar Robots.txt en WordPress

Hoy te voy a enseñar como optimizar Robots.txt en WordPress de forma sencilla. Antes de explicarte como hacer la optimización del robots.txt te explico en que consiste. El archivo robots.txt es un fichero en formato de texto plano, un bloc de notas como quien dice, que ayuda a los motores de búsqueda a decir que partes de la web son accesibles o no (Así se mejora el Crawl Budget).

Cuando un robot / crawler (araña de Google) de contenido quiere analizar nuestra web, primeramente este debería respetar las reglas que especificas en tu robots.txt. Si a un crawler le especificas que no quieres que acceda a, por ejemplo, todo lo que tenga que ver con /wp-admin/ en un principio lo respetará y no accederá a analizar el contenido de ese directorio. El archivo robots.txt no es una orden, es una recomendación. Normalmente los robots lo suelen respetar en la mayoría de veces, pero pueden darse casos de que no.

robots txt banner cabecera

¿Como funciona el proceso?

Cuando Google pasa por tu página web, no pasa Google tal y como lo conocemos. Lo hacen uno o varios servidores de su ejercito o granja de servidores que destinan un presupuesto de rastreo diario a tu web. Esos servidores, llamados “crawlers” lanzan peticiones a nuestro servidor y recopilan información. Estos crawlers son invisibles a herramientas de tracking o seguimiento como Google Analytics (Aunque ya hay una forma de detectarlos).

El proceso de crawling es el siguiente:

  1. Das de alta tu web en Search Console para notificar la web de tu propiedad (Aunque Google puede encontrarte más tarde por si solo)
  2. Google asigna un presupuesto de rastreo y un tiempo de indexado.
  3. Google quiere acceder a ver que contenido hay en tu web, pero se encuentra con el robots.txt que existe en la raíz del servidor.
  4. Este crawler de Google respetará y hará caso al sitemaps.xml que se encuentra en ese robots.txt
  5. El crawler entrega la información a Google y este te indexa en sus resultados (SERPS)
  6. Google al ver el contenido de tu web, el tiempo de refresco de los artículos / contenidos (fressnesh) y la autoridad del dominio te re-asignará un nuevo crawl budget. No siempre es el mismo. De hecho, cuanto más optimices tu web y mejores el contenido, más crawl budget te asignará.
  7. Y así repetido infinitamente, desde el paso 4 hasta el paso 6.

¿Cómo saben los crawlers que páginas tiene que indexar?

No iba a ser todo malo el robots.txt, algo bueno debería tener. En este caso, podemos aprovechar el archivo para indicarle a Google cuales son las páginas que tenemos creadas. Para ello habrá que agregar una linea como esta:

Sitemap: https://www.miwebmola.com/sitemaps.xml
No siempre se llamará sitemap.xml, depende si lo hace manualmente o con WordPress. Si es este último, depende del plugin que hagas uso.

El crawler de turno siempre se pasará por el Sitemap que le especifiquemos, aunque veces podría decidir saltárselo y dejarlo pasar para pasar a rastrear manualmente la web. Enlace por enlace. Es decir, gracias al interlinking o enlazado interno de una web Google puede encontrar contenido nuevo o no. ¿Cómo sabe Google de esta forma que enlaces seguir o no?. Existen dos tipos de enlaces:

  • Enlaces dofollow: Si creas un enlace en tu web, a no ser que hagas lo contrario este se tratará de un enlace dofollow. Es decir, se trata de un enlace que por naturalidad google debería seguir.
  • Enlaces nofollow: Son enlaces normales también, funcionan igual que los enlaces dofollow. Estos tienen la peculiaridad de que si añades el atributo rel=”nofollow” a un enlace, el crawler de Google no va a rastrear el contenido al que apunta ese enlace desde la página que lo está viendo. Pero si podría indexar esa página viéndola desde el sitemap.xml. Se hace esta técnica para decirle a Google que, desde esa página, no pierda tiempo (para no perder crawl budget) en rastrear esa página.

Este sería un ejemplo de enlaces NOFOLLOW y DOFOLLOW:

robots txt infografia funcionamiento de enolaces dofollow y nofollow

Los enlaces nofollow suelen ser enlaces a páginas que no tienen mucho contenido o que no aportan nada de valor. Debemos de decirle a Google que esas páginas no aportan valor al usuario que nos visita. Los enlaces dofollow los reservamos para traspasar fuerza de dominio (esto es cosa del ámbito del SEO optimización de posicionamiento web-) y decirle a Google que rastree ese contenido.

Una vez Google accede a una página se puede encontrar de nuevo con otra barrera. Y es que cada página puede presentar cuatro (4) estados diferentes de rastreamiento:

  • Página INDEX, NOFOLLOW: Con estas <metas robots>, le estás diciendo a Google: “Ey, indexa esta web en las SERPS pero si hay algún enlace no lo sigas. No son relevantes”.
  • Página INDEX, FOLLOW: Con estas metas, le estás diciendo a Google: “Ey, indexa esta web en las SERPS y si además encuentras un enlace síguelo que el contenido es de calidad”.
  • Página NOINDEX, NOFOLLOW: Con estas metas, le estás diciendo a Google: “Ey, no sé como has llegado hasta aquí pero no quiero salir en las SERPS ni que sigas los enlaces si es que los hay”.
  • Página NOINDEX, FOLLOW: Con estas metas, le estás diciendo a Google: “Ey, no sé como has llegado hasta aquí pero no quiero salir en las SERPS con esta página pero si encuentras algún enlace síguelo.”.

robots.txt infografia

Como ves en la anterior infografía, lo primero que hace el crawler de Google (si es que lo hace) es entrar al robots.txt para saber a que páginas no tiene que acceder ni indexar. Además, también le indicamos a Google cuales son las páginas que tiene que indexar con el sitemaps.xml. Dentro del sitemaps saldrá un árbol con el listado de páginas que tiene que visitar.

Ya una vez dentro de cada una de ellas Google también se fija mucho en el enlazado interno de cada una de ellas. Pero claro, independientemente de si los enlaces son DOFOLLOW o NOFOLLOW, se debe de fijar también en el <meta robots> de la web y ver si tiene permiso de indexar la URL actual o no y si quiere que se sigan los enlaces o no.

Tiene prioridad las <meta robots>. Es decir, por mucho que haya enlaces dofollow hacia esa sección o página, si el <meta robots> indica que esa web no se tiene que indexar y que mucho menos siga los enlaces así lo hará (Es jerarquización de reglas).

Diferencia entre robots.txt y el meta robots

Existe una diferencia entre el robots.txt y el <meta robots> que la gente suele confundir. El robots.txt es un archivo que se sube a la raíz de un hosting y sirve como directriz a los motores de búsqueda a que URL puede acceder y a cuales no. Es imposible especificar todas las URL’s en un robots.txt, por eso nacieron las meta robots que son directiva que funciona bajo demanda. Es decir, cuando el crawler encuentre una página que no está especificada en el robots.txt, hará caso a la etiqueta <meta robots> donde se especifica si era URL se debe indexar o no y si se debe rastrear o no.

Arquitectura que sigue un robots.txt en orden de importancia

Existe un orden de prioridad que debe seguir un crawler para respetar la armonía y arquitectura de la web. Esta arquitectura es la siguiente:

  • Robotx.txt. El crawler le dará mayor importancia a lo que encuentre en el fichero y además ahorrarás crawl budget ya que adelantas que URL’s son importantes y cuales no.
    • Meta robots. Si el crawler accede a una página que no vió en el robots.txt, mirará el <meta robots>para saber que hacer.
      • Enlazado interno. El crawler se fijará en el enlazado interno que seguirá a un enlace/página si es dofollow o nofollow. Si en una página existen enlaces dofollow y en el metarobots se especifica que no hay que seguir los enlaces, no serán seguidos bajo ningún concepto.

Como se comporta un crawler frente a los meta robots

Los meta robots son alternativas al propio robots.txt que ayudan a Google a interpretar que es importante y que no. Te voy a enseñar los casos que se pueden dar en una web y que hará el crawler de Google frente a los meta robots (Hay que recordar que no es lo mismo que el robots.txt).

Metarobots con INDEX, FOLLOW

<meta name=”robots” content=”index,follow”>

En realidad nunca vas a ver este meta en un código fuente ya que es la situación que se da por defecto si no especificas lo contrario. Si el crawler de Google entra a la web y se encuentra esta situación, lo que hará Google es:

  • Indexar la página en Google
  • Rastrear los enlaces dofollow de esa página a otras páginas
  • No rastrear los enlaces nofollow

Metarobots con INDEX, NOFOLLOW

<meta name=”robots” content=”index,nofollow”>

Este código si puedes verlo en el código fuente ya que es una sentencia que se pone forzosamente para hacerle entender a Google que debe hacer. Si no se especifica nada, el valor por defecto es el de index,follow. Si el crawler de Google entra a la web y se encuentra esta situación, lo que hará Google es:

  • Indexar la página en Google
  • No rastrear los enlaces dofollow de esa página a otras páginas
  • No rastrear los enlaces nofollow

Metarobots con NOINDEX, NOFOLLOW

<meta name=”robots” content=”noindex,nofollow”>

Este código si puedes verlo en el código fuente ya que es una sentencia que se pone forzosamente para hacerle entender a Google que debe hacer. Si no se especifica nada, el valor por defecto es el de index,follow. Si el crawler de Google entra a la web y se encuentra esta situación, lo que hará Google es:

  • No Indexar la página en Google
  • No rastrear los enlaces dofollow de esa página a otras páginas
  • No rastrear los enlaces nofollow

Metarobots con NOINDEX, FOLLOW

<meta name=”robots” content=”noindex,follow”>

Este código si puedes verlo en el código fuente ya que es una sentencia que se pone forzosamente para hacerle entender a Google que debe hacer. Si no se especifica nada, el valor por defecto es el de index,follow. Si el crawler de Google entra a la web y se encuentra esta situación, lo que hará Google es:

  • No Indexar la página en Google
  • Rastrear los enlaces dofollow de esa página a otras páginas
  • No rastrear los enlaces nofollow

Si no te has enterado muy bien, te dejo una infografía que te ayudará para el día de mañana a entender como funcionan los metarobots.

Infografía de como funcionan los metarobots

robots txt infografia metarobots

Ejemplo real de un robots.txt

A continuación te voy a enseñar un ejemplo real de un robots.txt de una web, en este caso, de esta misma web optimizarwordpress.com que es muy genérico en comparación con el resto de dominios. Puedes encontrar en ese robots.txt directrices allow, disallow, y user-agent. A continuación te explico que significa cada una:

robots txt ejemplo real

En este caso el ejemplo contiene las siguientes directrices:

  • User-agent: * -> Esto quiere decir que permitimos que cualquier crawler tenga acceso a nuestra web. No importa si el crawler es de Google, de Bing, de Yahoo, de Yandex… etc. No importa el motor, le damos acceso a todos.
  • Disallow: / -> A todos los agentes, debido a la linea anterior, NO le permitimos el acceso a ninguna página. Bloqueamos todas las páginas a todos los robots. Esto es debido a que justo en este mismo momento mientras escribo este artículo el blog está en fase de desarrollo y no quiero que ningún motor de búsqueda me encuentre y me indexe.

Si te fijas, falta una cosa muy importante y es algo que ya hemos comentado antes ¿Recuerdas que era? ¡Eso es, el sitemap.xml! Los crawlers tienen una base de datos importante de donde se suelen encontrar los sitemaps normalmente en una web como por ejemplo:

  • http://miweb.com/sitemap.xml
  • http://miweb.com/sitemap_page.xml
  • http://miweb.com/sitemap_post.xml
  • http://miweb.com/paginas.xml
  • http://miweb.com/articulos.xml
  • http://miweb.com/categorias.xml

Y así un resto de páginas comunes pero es probable que tu web cuente con un sitemap.xml diferente o raro. En este caso, como tu web será WordPress, si tienes generado un sitemap.xml normalmente se encontrará en:

http://miweb.com/sitemap.xml

Por lo tanto, estaría bien que especificaras en el robots.txt donde se encuentra el sitemap.xml como en este caso:

robots txt sitemap ejemplo real

Ahí ya estamos notificando a Google cual es el sitemap.xml y donde está. Así ahorraremos a Google a encontrarlo y que NO pierda crawl budget. A continuación te voy a enseñar un robots.txt algo más complicado y mas largo de características:

robots txt ejemplo sitemap completo

En este robots.txt estás diciendo a los crawlers de Google, y al resto de crawlers de los motores de búsqueda, que:

  • Para todos los agentes o crawlers de búsqueda:
    • No permitir el acceso a:
      • /advertise
      • /bizshare
      • /biz_update
      • /thanks
      • etc…
    • Si termimos acceso a:
      • Todo lo demás
  • Para el agente o crawler “Fasterfox“:
    • No permitimos acceso a:
      • Nada
    • Si permitimos acceso a:
      • Nada, porque estamos bloqueando todo el contenido con la barra de “/” que indica todo el directorio.
  • Especificamos el sitemap.xml que está en https://optimizarwordpress.com/sitemap.xml.

Conclusiones de optimizar el robots.txt

Si logras hacer una buena optimización del robots.txt lograrás hacer entender a Google que contenido es vital para ti, que debería rastrear y que páginas no seguir. Con esta técnica el crawl budget mejora bastante y el link juice no se diluirá tan fácil si hacemos uso de los enlaces Nofollow y Dofollow de la mano de los meta robots (pero esto ya es otro ámbito diferente).

Por defecto, el robots.txt suele venir prácticamente sin configurar y si está configurado únicamente bloquea el /wp-admin/ a los motores de búsqueda. Por eso te toca a ti modificar el robots.txt para impedir que Google indexe URL’s o direcciones que a ti no te importen.