Soporte » Guías – Resolución de problemas » Probador de robots.txt

  • ResueltoModerador almendron

    (@almendron)


    Tenía un robots.txt de esta forma:

    User-agent: *
    directiva
    directiva
    ........
    directiva
    
    User-Agent: Googlebot
    Allow: /*.css$
    Allow: /*.js$

    El caso es que me voy al probador de robots.txt de Search Console y me encuentro con que no bloquea nada de los que debería bloquear.

    Tras efectuar las correspondientes comprobaciones, me encuentro con que el problema está en las líneas:

    User-Agent: Googlebot
    Allow: /*.css$
    Allow: /*.js$

    En concreto, si quito la línea User-Agent: Googlebot, todo funciona correctamente.

    Por lo que estoy viendo, Google solo hace caso a esas dos líneas por tratarse de una regla más específica.

    De momento, lo que he hecho ha sido duplicar las reglas:
    Unas para todos los robots
    Otra idéntica pero añadiendo los css y js para Google
    Lo podéis ver en https://www.almendron.com/robots.txt

    La otra solución sería habilitar los css y js para cualquier robot.

    ¿A alguien se le ocurre algo más?

    • Este debate fue modificado hace 1 semana, 3 días por  almendron.
    • Este debate fue modificado hace 1 semana, 3 días por  almendron.
    • Este debate fue modificado hace 1 semana, 3 días por  almendron.
    • Este debate fue modificado hace 1 semana, 3 días por  almendron.
    • Este debate fue modificado hace 1 semana, 3 días por  almendron.
    • Este debate fue modificado hace 1 semana, 3 días por  almendron.

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 12 respuestas - 1 de 12 (de 12 total)
  • ¿Probaste poniendo al inicio lo que permites a Googlebot y sin expresión regular?:

    
    User-Agent: Googlebot
    Allow: .js
    Allow: .css
    

    Así le permites a Googlebot indexar todos los js y css.

    Moderador almendron

    (@almendron)

    Los “Allow” no importan. De hecho, los puedes quitar y dejar solo lo de “User-Agent: Googlebot”, que el robot sigue sin bloquear.

    En cuanto a ponerlo arriba, da lo mismo. Tampoco funciona.

    Creo que es un problema de jerarquías. Si el robot de Google encuentra las dos líneas (“User-Agent: Googlebot” y “User-Agent: *”) hace caso omiso de la segunda y solo responde a las directivas de la primera.

    Ojo, porque de ser así, tendríamos un problema porque en todos los sitios aconsejan poner lo de

    User-Agent: Googlebot
    Allow: /*.css$
    Allow: /*.js$

    Y eso hace que no bloqueemos absolutamente nada.

    • Esta respuesta fue modificada hace 1 semana, 3 días por  almendron.

    Pues habrá que darle un vistazo más en detalle, a ver si saco un ratito y hago algunas pruebas…

    Moderador almendron

    (@almendron)

    Por mi parte, he quitado lo duplicado y he permitido que cualquier robot use los css y js. He quitado lo de “User-Agent: Googlebot”.
    Seguiré con las pruebas.

    Moderador almendron

    (@almendron)

    Haciendo pruebas en el probador de la Consola, he encontrado lo siguiente:

    User-Agent: Googlebot
    directiva (cualquiera)
    
    User-Agent: *
    Resto de directivas

    Nota: no importa donde coloques el código.

    Y el resultado es que no bloquea nada. Tiene que ser un problema de jerarquías.

    • Esta respuesta fue modificada hace 1 semana, 3 días por  almendron.
    Moderador almendron

    (@almendron)

    En caso de poner solo “User-Agent: Googlebot”,es decir, sin ninguna directiva sino solo eso.

    1) Colocado al principio y por encima de “User-Agent: *”: sin problemas.

    2) Colocado al final: no bloquea nada.

    Hola! Si entiendo bien, creo que quieres bloquear los archivos css y js, pero con esa directiva creo que estarías permitiendo, no bloqueando. Además el archivo txt es sensible a las mayúsculas y minúsculas. Si quisieras bloquear deberías de escribir:

    User-agent: Googlebot
    Disallow: /*.css$
    Disallow: /*.js$

    En este caso el símbolo del dólar marca el final de la cadena ($). Fijarse que el “agent” está en minúscula, a diferencia de los ejemplos que habéis puesto. Espero que funcione así al probarlo en Search Console. 🙂

    Moderador almendron

    (@almendron)

    Lo de mayúsculas y minúsculas ya lo he probado y el resultado es el mismo.

    El problema no es el que comentas sino otro muy distinto.

    Lo vuelvo a explicar. Si coges cualquier manual, podrás comprobar que se aconseja añadir

    User-agent: Googlebot
    Allow: /*.css$
    Allow: /*.js$

    Pues bien, tras realizar las pertinentes pruebas, he llegado a la conclusión de que el bot de Google hace caso omiso de las reglas existentes en “User-agent: *” y solo aplica las dos que acabo de indicar.

    Eso hace que, en realidad, no sirva de nada todo lo que le pongas tras User-agent: *”.

    Pues yo acabo de probar y me ha funcionado, bloqueando css para todos los agentes de usuario y permitiendo css para Googlebot:

    Moderador almendron

    (@almendron)

    Hacer la siguiente prueba:

    Poner

    User-agent: Googlebot
    Allow: /*.css$" (o cualquier otro allow)
    
    User-agent: *
    Disallow: /wp-admin/

    Ahora, comprobar la ruta que hemos dicho que bloquee (la de wp-admin)

    El resultado será que no se bloquea.

    Ahora dejáis solo

    User-agent: *
    Disallow: /wp-admin/

    El resultado será el correcto, es decir, que la ruta a wp-admin está bloqueda.

    Moderador almendron

    (@almendron)

    No os olvidéis de seleccionar en el probador “Googlebot”.

    Moderador almendron

    (@almendron)

    https://developers.google.com/search/reference/robots_txt?hl=es#orden-de-prioridad-para-los-agentes-de-usuario

    Cito textualmente: Solo hay un grupo de registros de miembro de grupo válido para cada rastreador. El rastreador debe determinar cuál es el grupo de registros correcto buscando el grupo que tenga el agente de usuario más específico con el que exista coincidencia. El rastreador ignorará los demás grupos de registros.

    Esto significa que el consejo para añadir

    User-agent: Googlebot
    Allow: /*.css$
    Allow: /*.js$

    a nuestro robots.txt es erróneo. La consecuencia es que abrimos totalmente nuestro sitio a la indexación. O lo que es lo mismo, de nada sirve lo que pongamos bajo “User-agent: *” porque el bot de Google hará caso omiso.

Viendo 12 respuestas - 1 de 12 (de 12 total)
  • Debes estar registrado para responder a este tema.