Errores críticos originados por el robots.txt

Publicado el 13 de abril del 2020 por Lino Uruñuela

Hay cosas muy importantes sobre el robots.txt que mucha gente no sabía hasta hace poco y que a día de hoy no todo el mundo conoce.

Por ejemplo ¿sabías que si el robots.txt no está disponible los rastreadores asumirán que pueden rastrear todas las urls de la web? ¿o que si el robots.txt está inacesible los rastreadores no volverán a rastrear ninguna URL de tu web hasta que pueda acceder al fichero robots.txt?.

Pero antes de ver lo desconocido vamos a hacer un pequeño resumen de qué es el robots.txt y para qué sirve:


¿Qué es el robots.txt?

El robots.txt es un fichero que proporciona información sobre las urls que los rastreadores pueden solicitar en tu web.

Este fichero se encuentra en el directorio raíz de cada host, recordemos que el host está formado por "subdominio + dominio", lo que quiere decir que para cada subdominio de un dominio le corresponde un robots.txt.

Por ejemplo, para el subdominio "www" (www.mecagoenlos.com) tenemos que la URL del robots.txt es www.mecagoenlos.com/robots.txt pero para el subdominio "m" (m.mecagoenlos.com) el robots.txt será m.mecagoenlos.com/robots.txt


¿Para qué sirve el robots.txt?

Mediante estas líneas indicamos a qué robot/s permitimos o no permitimos acceder a qué url/s

Las reglas Allow y Disallow en el robots.txt son directivas (igual que el meta robots, aunque este tiene diferente fin y modo de uso), por lo que Google (y la mayoría de buscadores) las respeta y no accederá a aquellas URLs restringidas por dichas reglas.

Solamente en algunos casos en los que justamente acabamos de modificar el robots.txt y Google todavía no haya actualizado la versión que tiene guardada (puede tardar desde algún minuto a como mucho y en raros casos, 24 horas) podríamos ver que accede a urls que, justo en ese mismo momento, están bloqueadas por robots.txt.

Pero esto no quiere decir que se salte el robots.txt sino que todavía no lo ha vuelto a consultar y por lo tanto la versión con la que hizo la comprobación no estaba actualizada. En cuanto la actualice no accederá a las urls que en el nuevo robots.txt se indiquen como restringidas.

Hay personas que te dirán que no es así, que Google se salta estas reglas y accede a URLs que están restringidas por el robots.txt. Si escuchas a alguien que dice que Google se salta las reglas del robots.txt, te doy un consejo, si no te dan pruebas fehacientes de ello desconfía de quién te lo diga.

He analizado miles de millones (literalmente) de logs (registros de texto dónde queda almacenado cualquier acceso a cualquier url de tu sitio web) y nunca he visto que Google se salte alguna de las prohibiciones definidas en el robots.txt. Y no es porque te lo diga yo sino que lo dice el propio Google por activa y por pasiva, incluso reta a cualquiera a demostrar lo contrario.

Aquí tienes más información de Google sobre el robots.txt

¿Comprueba Google el robots.txt para cada URL que rastrea?

La respuesta es . Google evalúa cada url con las reglas establecidas en el robots.txt de nuestro site para determinar si puede o no puede acceder a cada una de las urls que rastrea.

No accede al robots.txt cada vez que rastrea una URL, sino que usa la última versión que tiene guardada del robots.txt. Esta versión guardada se actualiza cuándo va a rastrear un nuevo bloque de URLs o cuándo ha transcurrido un determinado tiempo desde la última vez que accedió al robots.txt, este tiempo depende de cada host. 


¿Cómo determina Google qué URLs deben ser las siguientes en ser rastreadas?
Google tiene una cola de urls del site que debe rastrear, obtenida de diversas fuentes (sitemaps, anteriores rastreos, etc).

Esta lista está ordenada y las primeras URLs en la cola son las que primero debe rastrear. En base a qué variables y el cómo las usa para ordenar esta lista de URLs no es algo sencillo, pero podríamos resumir que se basa en:

  1. Frescura del contenido
    La probabilidad de que el contenido de una URL haya variado significativamente desde la última vez que realizó la  comprobación. Esto nos dice que cuánto más se actualice el contenido de una URL, con más frecuencia accederá a esa URL.

  2. Relevancia de la url (PageRank)
    El PageRank o popularidad de una URL también influye en su frecuencia de rastreo, cuánto más PageRank mayor frecuencia de rastreo.

  3. Políticas de rastreo
    Existen ciertos límites que se deben cumplir, pueden ser límites generales a todos los sites como los recursos máximos de Google destinados al crawling, o pueden ser límites de host, que sería el presupuesto de rastreo de cada host (cuántos recursos destina Google a cada host).

    También puede influir los límites dados por el propio site como podría ser la capacidad del servidor, es decir, cuántas urls por segundo es capaz de procesar el servidor sin perjudicar su velocidad de respuesta. Google irá modificando la frecuencia de rastreo para adaptarla a la capacidad de respuesta que tiene el servidor y así evitar que se sature.


No voy a entrar en más detalles de cómo decide qué URLs toca rastrear en cada momento, para eso podéis leer el artículo dónde explican qué es el crawl budget real, lo explican matemáticamente y a fondo!.


Por el bien de nuestros cerebros vamos pasar por alto los detalles de cómo Google ordena esa lista de URLs, pero sí vamos a representar un esquema del proceso que sigue Google cuando decide rastrear diferentes URLs de un site:

  1. Obtiene una lista de urls a rastrear
    Esta lista será un grupo con las siguientes URLs que toca rastrear, mejor que te lo cuente quién lo diseñó, lo explica aquí.

  2. Google comprueba las reglas definidas en el robots.txt para saber si puede o no acceder a cada URL
    Esta comprobación la realiza usando las reglas que obtuvo de la versión más reciente que tiene guardada del robots.txt, tal y como hemos comentado antes.

    La frecuencia con la que Google actualiza el contenido del robots.txt se calcula en base a cuánto cambia su contenido, en la frecuencia de rastreo general para el host y en la popularidad o relevancia del dominio.

    Es decir, Google no accede al robots.txt de todos los dominios con la misma frecuencia, sino que accede en relación a la probabilidad de que su contenido haya variado y en cuán popular sea el site, o mejor dicho, cuán populares son las URLs de ese host, cuanto más popular mayor frecuencia de rastreo para ese host y mayor frecuencia de accesos al robots.txt

    De esta manera por ejemplo en un site de noticias que sea conocido y muy popular accederá con mayor frecuencia al robots.txt que en un site con su misma popularidad pero que apenas varía el contenido.

    También accederá con mayor frecuencia al robots.txt de este periódico online que al robots.txt de un site que no es muy popular aunque se modifique el contenido con la misma frecuencia.


  3. Actualiza el contenido y valores de cada URL después de acceder o intentar acceder a ellas

    • Para URLs que no están restringidas por el robots.txt

      • Si no existe alguna versión previa de esa URL en su sistema, la creará con el contenido actual de la URL.
      • Si existiera una versión previa, comprobará si hay variaciones significativas en comparación con la última versión que tenía
        guardada, y si las hay, actualizará el contenido de esa url en su sistema.

    • Para las URL restringidas por robots.txt
      Actualizará la versión que tiene de esa url con los nuevos valores.

      Dado que no le hemos permitido acceder a la url, para Google podríamos decir que el contenido de esa URL es nulo, y así lo valorará y tendrá en cuenta a la hora de rankear esa URL.

      Esto hará mucho más improbable que se muestre como resultado de alguna búsqueda, pero no imposible.

      Podríamos decir que esas URLs tienen una enorme desventaja para posicionarse porque Google no puede evaluar su contenido, pero que aun así podrían estar indexadas y rankeando, independientemente de si son o no accesibles.

      Si no tienes clara la diferencia echa un vistazo a este otro artículo dónde explico la diferencia entre URLs indexadas y URLs accesibles.

      Tan verídico es que Google no accede a URLs restrijidas que muestra en sus resultados urls que dan un error 404 pero que al estar bloqueadas por robots.txt no puede acceder a ellas y no puede darse cuenta que esa url ya no existe... desde hace más de 10 años.

      Aquí un ejemplo:

      URL restringida por robots.txt y con error 404 en los resultados de Google


      Si quieres comprobarlo tú mismo, aquí dejo los enlaces para ello:


      Otra vez comprobamos que aunque Google no pueda acceder a esa URL no impide que esté indexada y que podría rankear en los resultados de Google para determinados términos.

Errores críticos ocasionados por el robots.txt

Debido a su naturaleza y cómo los buscadores tratan dichas reglas existentes en el robots.txt se pueden cometer graves errores que pueden diezmar el crawleo y ranking de tu web.
En este artículo vamos a centrarnos en determinados errores críticos que podemos tener con el fichero robots.txt. Sobretodo aquellos que son menos conocidos pero que pueden afectar mucho al rastreo de tu site.

Errores por definir reglas erróneas

Cuando se cometen errores al crear las reglas que se definen para impedir el acceso a Google a determinadas urls puede dar lugar a consecuencias catastróficas.

Por ejemplo se podría impedir el acceso de Google a más URLs de las que pretendíamos y que no nos hayamos dado cuenta de ello. Si estas URLs aportan mucho tráfico a nuestro site veremos las consecuencias rápidamente de diferentes maneras:

  • Descenso en el tráfico orgánico de Google Analytics para las urls restringidas.
  • Bajada en el número de clicks en el informe de rendimiento de Search Console.
  • Aumento del número de URLs bloqueadas por robots.txt en el informe de cobertura de Search Console.

El robots.txt no está disponible "archivo robots.txt no econtrado (404)"

Se define "no disponible" cuándo una url responde con un código de estado entre 400 y 499.

Cuando Google accede al robots.txt y su estado es "no disponible", por ejemplo da un error 404 o 410, Google entenderá que todo el site es rastreable, es decir sin ninguna url restringida.

Aquí está el estándar para esta directiva del robots.txt , indicando que en estos casos se asumirá que los rastreadores pueden acceder a cualquier recurso en el servidor, que coincide exactamente con el comportamiento que observamos

"If a server status code indicates that the robots.txt file is unavailable to the client, then crawlers MAY access any resources on the server or MAY use a cached version of a robots.txt file for up to 24 hours."

Además, indica que si no es accesible los rastreadores podrán usar la versión guardada con una antigüedad máxima de hasta 24 horas.

Cuándo ocurre esto y accedemos al probador de robots.txt, nos mostrará una advertencia la cual nos indica que rastreará todo el sitio, como si tuviésemos el robots.txt en blanco.



Error por robots.txt con error 404

Y esto podría ser un gran problema, porque que Google acceda a todas las urls de tu servidor, en determinadas webs puede ser algo muy negativo ya que Google podría rastrear muchísimas URLs innecesarias.

Por ejemplo si un site genera millones de urls para sus búsquedas internas (búsquedas que realizan los usuarios en el buscador interno de la web) Google podría rastrear e indexar todas esas urls.

Otro ejemplo podrían ser págins de clasificados, que suelen tener un gran número de posibles filtros y sus combinaciones y que podrían generar millones de URLs de muy baja calidad.


El robots.txt está inaccesible "Error al obtener el archivo robots.txt"

Se define como "inaccesible" cuándo la url da un código de estado con valor entre 500 y 599, simplificando, cuándo existe un error de servidor.

Google nos describe en esta tabla posibles errores que podrían causar el mensaje "url inaccesible".

Algo que hasta hace no mucho tiempo era desconocido por la mayoría de personas, pero que viene siendo así desde siempre es que si el robots.txt no está accesible Google no rastreará ninguna url de tu site hasta que el robots.txt esté de nuevo accesible.

En la misma página que antes, podemos ver en el estándar para esta directiva del robots.txt cómo se indica que cuándo el robots.txt esté inaccesible se debe asumir como totalmente prohibida cualquier url del servidor

"If the robots.txt is unreachable due to server or network errors,this means the robots.txt is undefined and the crawler MUST assume complete disallow."



Esta imagen está sacada del probador de robots.txt de un site que tenía el robots.txt inaccesible.
Error que muestra Search Console al obtener robots.txt



Cuando Google accede al robots.txt para comprobar si puede o no acceder a las urls que le toca rastrear, y no puede porque el fichero robots.txt no está accesible Google dejará de rastrear cualquier URL del site hasta que el robots.txt esté disponible de nuevo.

Este comportamiento ha sido confirmado por Google, y es algo que ocurre con más frecuencia de la que pensamos.

Estado del robots.txt según Google

Vemos en esta imagen oficial ofrecida por Google en una encuentro con webmasters en noviembre del 2019 cómo el 20% de los accesos al robots.txt por parte de Google fueron con resultado inaccesible.


Aumento en el número de URLs con algún tipo de error

Además del problemón que es que no rastreé ninguna URL del site, debemos añadirle el ruido que nos meterá en el resto de URLs.

Y es que también provoca un aumento en el número de URLs que presentan problemas de rastreo debido que cuándo intenta acceder a alguna URL del site, volverá a comprobar el robots.txt para saber si puede o no acceder lo que generará un error de rastreo para esa URL y la añadirá en alguno de los siguientes grupos.

  • Error - robots.txt ha bloqueado la URL enviada

    robots.txt ha bloqueado la URL enviada

    Google marca como Error algunas urls que no ha podido rastrear debido a que el robots.txt es inaccesible.

     

  • Warning - Se ha indexado aunque un archivo robots.txt la ha bloqueado

    Warning - Se ha indexado aunque un archivo robots.txt la ha bloqueado

     

    Para otras URLs, que presentan el mismo problema, Google las marca como Advertencia, y dice que la URL se ha indexado a pesar que ha sido bloqueada por el robots.txt.

    ¿Querrá decir que las URLs añadidas a este mensaje son más valiosas paara Google?. Podríamos pensar que si aun estando restringidas por robots.txt (ya sea por fallo o adrede) aun así las indexa podría indicarnos que por alguna razón Google las considera importantes. Posiblemente sea por la cantidad de enlaces que reciben.

     

  • Excluida - Bloqueada por robots.txt

    Excluida - Bloqueada por robots.txt

     

    Este grupo de URLs tienen el mismo problema que las anteriores, pero Google las marca como excluidas.

    Si seguimos el mismo razonamiento que en el caso anterior, ¿será un indicio de que estas URLs tienen poco valor, o menor valor, que las urls que sí ha indexado a paser de que el robots.txt las bloqueaba?

    Me parece un punto interesante a observar, para intentar comprender por qué URLs con el mismo tipo de problema, con el mismo origen pero sin embargo Google las cataloga de diferentes maneras....

     

Todo esto se genera porqué el robots.txt no es accesible! añadiendo ruido a los datos de Google Search Console.

En vez de indicar un único error, al no poder acceder al robots.txt, Gogole va acumulando errores para cada URL que le teocaba rastrear....

Así que vamos a ver cómo comprobar si el robots.txt tiene problemas de rastreo


¿Cómo saber si Google no puede acceder a nuestro robots.txt?

Identificar cuándo Google no puede acceder al robots.txt no es algo que se vea a simple vista, y si no te has topado con ello antes puede que lo pases por alto.

Mediante el Probador de robots.txt

Si accedes al probador de robots.txt de Search Console y te muestra el siguiente mensaje:

Mensje de error en el probador de robots.txt


Cuando ocurre esto quiere decir que Google no ha sido capaz de acceder al robots.txt la última que lo intentó (el robots.txt es o está "inaccesible") y por lo tanto no rastreará ninguna URL del site.

Se puede comprobar el estado en que anteriormente encontró el robots.txt mirando los diferentes mensajes que muestra la herramienta del robots.txt cuándo hacemos click en "Última versión vista..." 

cómo ver accesos al robots.txt 


Ahora podremos ver los últimos estados de nuestro robots.txt cuándo Google accedió a él.

Accesos de Google al robots.txt


Cuando el robots.txt es inaccesible, Google, tal y cómo indica el mensaje, dejará de rastrear el sitio y esto también lo podemos observar en las estadísticas de rastreo, ya que cuándo ocurre, Google deja de rastrear y las estadísticas de rastreo caen hasta cero durante el tiempo que el robots.txt esté inaccesible.

A veces estas gráficas se observan con periodos prolongados sin rastrear ninguna URL, nos podría indicar que el problema no está solucionado y que durante ese periodo el robots.txt estuvo inaccesible.


estaditicas de rastreo errores del robots.txt


Otras veces se podría ver una gráfica con picos en los que las urls rastreadas se quedan a cero, pero por breves periodos de tiempo. Eso podría indicar que en determinados momentos el servidor se saturó y el robots.txt no estuvo accesible durante un periodo de tiempo pero que posteriormente se recuperó.

graficas estadisticas de rastreo

Mediante el Inspector de URLs de Google Search Console

Cuándo vas a inspeccionar alguna URL mediante el Inspector de URLs de Search Console y ves un mensaje que dice "La URL no está en Google: errores de indexación" y que está clasificada en el informe de cobertura como "bloqueada por robots.txt"

Mensaje del Inspector de URls - Bloqueada por robots.txt



Pero que al comprobar esa misma url con el probador de robots.txt, te indica que Googlebot sí tiene permitido el acceso, esto son señales que nos podrían indicar que en algún momento el robots.txt ha estado inaccesible.

cómo ver accesos al robots.txt


Para comprobarlo podemos hacer click en la flecha (en verde en la anterior imagen) que nos mostrará los últimos estados de nuestro robots.txt, igual que hemos visto anteriormente

Accesos de Google al robots.txt

Esto nos indicará si el robots.txt ha estado inaccesible o "no disponible" anteriormente y cuándo fue la última vez que lo procesó correctamente. Es importante identificar si tenemos errores que dejen al robots.txt inaccesible ya que eso tendrá como consecuencia que no rastreará ninguna URL de nuestro site.


¿Cómo solucionar problemas causados porque nuestro robots.txt esté inaccesible?

Para resolver el problema lo primero que debemos comprobar es el por qué el robots.txt estuvo inaccesible, las causas podrían ser de diversas:

  • Configuración del servidor, firewall, CDN u otras causas que impiden el acceso de Google al robots.txt (o a todo el servidor)
  • El servidor está o estuvo caído, las causas podrían ser demasiadas peticiones en poco tiempo, error de programación, error de red, y otras posibles causas que "tumban" el servidor y son ajenas a la configuración.

Una vez que sepas qué fue lo que causó el que no pudiese acceder al robots.txt y lo hayas solucionado (o si no sabes cómo ni porqué pero ya responde correctamente), puedes solicitar a Google que actualice la versión que tiene almacenada del robots.txt, esto puedes realizarlo de dos formas:

  1. Desde el probador de robots.txt
    Este método no garantiza que lo actualice en ese mismo momento, al menos si lo haces más de una vez, la primera vez lo seguramente lo actualice, pero la segunda vez, si no ha transcurrido cierto tiempo no lo hará aunque te indique lo contrario.

    Actualizar robots.txt
  2. Desde el Inspector de URLs:
    Solicita que inspeccione cualquier url del site, esto hará que compruebe en ese momento el robots.txt, CREO, y que actualice la versión que tiene del robots.txt.


    Si muestra el error "robots.txt ha bloqueado la url enviada" pero realmente no lo está, es que Google no puede acceder al robots.txt y deberías investigar el por qué.

    robots.txt ha bloqueado la url enviada




    Si por el contrario, ha accedido correctamente y el robots.txt es, al menos, accesible (por ejemplo da un 404) no te mostrará ese mensaje sino que mostrará algún otro, por ejemplo diciendo que Google no reconoce esa URL, pero no que el robots.txt se lo ha impedido:

    La url no está en google




    O que indique que esa url está en indexada en Google:

    La url está en google

Estos dos últimos mensajes nos indican que Google ha podido acceder al robots.txt

Así que no descuides tu robots.txt ya que te puede indicar otro punto de vista sobre el estado de salud de tu servidor y cómo afectan determinados errores que pueden provocar caídas del servidor y hacer que Google no rastree las URLs de tu site tal como debiese.

Espero haber aclarado más dudas de las que os he podido crear!

Si tienes alguna pregunta no dudes en escribir un comentario.



 


Xavier (@)hace 194 días

Lino estoy haciendo un experimento y tengo una duda, si en una web donde puedes crearte un perfil de usuario capan mediante Robots.txt, pero haciendo site: ha indexado unas pocas Urls de perfiles. Mi pregunta es ... Puedo hacer que google indexe mi perfil forzando con enlaces?
Que ha tenido en consideración Google a la hora de indexar esas URLs de perfiles y no otras?


Tal vez no me he explicado bien o he dicho una tontería.
Espero curioso tu respuesta.

Lino (@errioxa)hace 188 días

@Xavier que Google no pueda acceder no significa que no pueda indexarla. Lo que no hará es entrar, y por lo tanto, no podrá ver el contenido.

Así que se puede posicionar pero para KWs muy poco frecuentes si la enlazas con ese texto.

Arriba he puesto un ejemplo dónde sale una url que da 404 pero está restringida por robots.txt por lo que la sigue mostrando en las serps ya que no puede saber (al no poder acceder) que esa url da 404

FunnelPunk (@funnelpunk)hace 188 días

@Lino probando mi script del futuro

Miriam (@)hace 110 días

Buenas Lino,

No sé si me podrás echar una mano, estoy intentando comprobar porque Google no puede acceder a mi robots.txt, incluso he eliminado el fichero robots.txt de mi sitio web y cuando sigo intentando acceder a través de robots.txt testing tool obtengo el mismo mensaje de "Tienes un archivo robots.txt que en estos momentos no podemos obtener." aunque este ya no exista, la verdad que google no está indexando mi sitio web desde unos días y no sé como solucionar este problema.
Me han comentado que puede ser debido a no tener binding https ??

Un saludo.

Lino (@errioxa)hace 105 días

Hola Miriam, crea un robots.txt vacío para probar, también podrías añadir uno básico con las dos siguientes líneas

User-agent: *
Allow: /*

Una vez creado y comprobado que puedes acceder a él desde cualquier navegador, sigue estos pasos:


  • Ve al viejo probador de robots.txt y solicita a Google que actualice la versión del robots.txt

    Solicita a Google que actualice la versión del robots.txt

    Y luego

    versión del robots.txt


  • Si no te da problemas, ya debería estar solucionado!

  • Si te muestra algún mensaje de error, vuelve al blog y seguimos indagando :)

  • Desde el probador de robots.txt puedes ver si Google ha tenido algún error al acceder al robots.txt para ello debes darle a la flechita que señalo en verde.

    URL Bloqueada por robots.txt

Saludos

FunnelPunk (@)hace 105 días

Complementando la respuesta (y aprovechando para comprobar mi "avisador" por Twitter), por si Google no pudiese acceder al robots.txt y no supieras por qué, os dejo aquí este enlace dónde enumero algunas posibles causas.

Saludos, @errioxa



Lea otros artículos de El fichero Robots.txt para SEO

Últimos posts

Últimos comentarios


Lino

Hola @RicOriFra sí lo hay :), al vídeo sobre Search Console en el
Post: Logs y Big Data

Lino

Hola @davidzslv sí me aparecieron, pero no siempre :s. Creo funciona igual que desde el Inspector, es decir, cuando quiere la indexa y cuá
Post: Solicitar indexación de una URL usando API Indexing + API Explorer

David

Estupendo, es justo lo que necesitaba, ¿al final te aparece en las serps?
Post: Solicitar indexación de una URL usando API Indexing + API Explorer

Lino

Hola @acoutin te estoy usando de pruebba, esta será la última :)
Post: Google podria no querer el HTML de una URL

Lino

@Pedro Amador ¿y funciona bien?
Post: Solicitar indexación de una URL usando API Indexing + API Explorer

Pedro Amador

¡Excelente truco Lino! Ya ha pasado a estar en mi rutina del día a día.
Post: Solicitar indexación de una URL usando API Indexing + API Explorer

Adrian Coutin

muy bueno Lino, nos indica un elemento, de los tantos, en la optimización de googlebot, no trabajar en vano... ;-) ciao
Post: Google podria no querer el HTML de una URL

Ricardo

Hola, Hay vídeo de la charla de Seonthebeach? saludos,
Post: Logs y Big Data

Lino

@Felipe quizás si puedes añadir javacript podrías añadirla, pero si no creo que no podrás ya que el meta canonical va a nivel de cabec
Post: Consolidación de urls canónicas en Google Search Console

Jordi

Presentarl@ a un amig@ = Redirección.
Post: El SEO para ligar