¿Cómo ejecuta, interpreta e indexa Google el contenido cargado mediante javascript?

Publicado el 14 de agosto del 2017 by Lino Uruñuela, SEO

El otro día realizamos un test de lo más interesante, ¿Interpreta Google cualquier JavaScript que esté en el onready?, para intentar entender cómo Google rastrea, renderiza e indexa el contenido cargado mediante JavaScript.

Ya habíamos hecho muchos experimentos SEO sobre Google y Java Script en este blog, pero queríamos profundizar en dos aspectos
  1. ¿Es capaz Google de ejecutar funciones "complejas" de JavaScript?

  2. ¿Indexa Google el contenido que se ha cargado mediante Ajax a través de llamadas "complejas" de JavaScript?

 

Recordemos brevemente qué distintos métodos de carga de contenido mediante JavaScript hacíamos en el experimento sobre cómo interpreta Google el JavaScript dentro del onready

  1. Carga de contenido mediante Ajax con una función en el onready (por defecto)
  2. Carga de contenido mediante Ajax con una función en el onready tras haber pasado entre 1 y 5 segundos desde su carga.
  3. Carga de contenido mediante Ajax con una función en el onready tras haber pasado entre 5 y 10 segundos desde su carga.
  4. Carga de contenido mediante Ajax con una función en el onready tras haber pasado entre 11 y 14 segundos desde su carga.
  5. Carga de contenido mediante Ajax con una función al hacer scroll por parte del usuario.
  6. Carga de contenido mediante Ajax con una función al hacer click en un elemento del HTML, elemento 1
  7. Carga de contenido mediante Ajax con una función al hacer click en un elemento del HTML, elemento 2

 

Resultados del experimento

Han pasado más de dos meses, y vamos a analizar los resultados que de momento he obtenido. Como primer punto a analizar vamos a ver los accesos de Google tanto a la url del experimento cómo a las urls que cargaban el contenido mediante Ajax y que estaban ofuscadas en base64.

 

Googlebot ajax

 

 

He separado los accesos a cada uno de los tres días para facilitar la visión, de estos datos extraídos de los logs podemos intuír lo siguiente.

  • Google interpreta y ejecuta el javascript que esté en el onready, por muy ofuscado que esté, Google ejecutará las órdenes JS al igual que un navegador normal.
  • Google accede a todas las urls que cargan contenido mediante ajax si el código JavaScript para obtener este contenido externo está dentro del onready.
  • Google crawlea tanto la url original desde la que se hacen las llamadas ajax como las url que son llamadas
    Desde la url original, la que se pone en la url /Posicionamiento/interpreta-google-el-javascript.php, Google accede a casi todas a las urls a las que se las hace llamda desde javascript en el onready. Lo hace de la misma manera que accede a otros recursos que se solicitan desde esa url (imágenes, css, js, etc)
  • No se aprecia que Google acceda a las urls cargadas mediante ajax sin rastrear a la vez la url original.
  • Google no accede a ninguna url que cargue contenido mediante eventos que lanza el usuario, por ejemplo onClick, onScroll, etc

 

 

Google ejecuta el javascript que esté en el onready

Me di cuenta de que estaba accediendo a urls ofuscadas que cargaban anuncios mediante ajax. Cuando examiné los logs me di cuenta de que Google estaba accediendo a esas urls y nos estaba generando miles de errores 503 cuándo accedía Google, ya que por seguridad estas urls solo aceptaban peticiones de nuestro propio servidor y al resto se le daba un 503.

ERrores 503 por ajax

 

Fue el motivo de hacer esta serie de experimentos, para poder comprobar que realmente Google interpretaba el javascript y para ver cuándo lo hacía y cuándo no. Partiendo de este "descubrimiento" los siguientes puntos que estamos comentando tienen todo el sentido del mundo.

 

Google indexa el contenido cargado mediante JavaScript si permanece en el tiempo

Lo primero que me sorprendió fue el primer punto de los anteriores, "Google interpreta y ejecuta el javascript que esté en el onready, por muy ofuscado que esté, Google ejecutará las órdenes JS al igual que un navegador normal." ya que de primeras pensé que Google no ejecutaría la mayoría de funciones javascript en un creawleo "normal" pero me equivoqué.

Pero en lo que más me sorprendió, todavía más que el anterior, fue ver qué contenido había indexado Google. Al comprobar los resultados del expermiento para cada una de las variaciones que creamos vemos los siguientes resultados

  1. Carga de contenido mediante Ajax con una función en el onready (por defecto)
  2. Carga de contenido mediante Ajax con una función en el onready tras haber pasado entre 1 y 5 segundos desde su carga.
  3. Carga de contenido mediante Ajax con una función en el onready tras haber pasado entre 5 y 10 segundos desde su carga.
  4. Carga de contenido mediante Ajax con una función en el onready tras haber pasado entre 11 y 14 segundos desde su carga.
  5. Carga de contenido mediante Ajax con una función al hacer scroll por parte del usuario.
  6. Carga de contenido mediante Ajax con una función al hacer click en un elemento del HTML, elemento 1
  7. Carga de contenido mediante Ajax con una función al hacer click en un elemento del HTML, elemento 2

 

Vemos cómo Google solamente ha indexado el contenido que se ha cargado tras más de 10 segundos

Indexa contenido ajax

Es decir, el contenido que permanece en la web tras haberse ejecutado todo el onready, mientras que el resto de contenido cargado por ajax, al que Google sí que accede como hemos visto en los logs, no lo ha indexado.

Sin haber hecho más experimentos no me atrevo a decir en que otros eventos se produce esto, pero supongo que será en todos los que se lancen sin necesidad de que sean provocados por los usuarios, como por ejemplo el onLoad. Habrá que asegurarse.


Casos para los que debemos tenerlos en cuenta

De este experimento hemos extraído una información muy importante a tener en cuenta, aquí oso pongo los que para mi son los tres puntos más importantes que resumen los distintos tests que hicimos.

  1. Dentro del onready Google accederá a todas las urls que se carguen por ajax por muchas cosas que tenga que interpretar y ejecutar en JavaScript.

  2. Google no interpreta ni ejecuta el código javascript que se ejecuta tras un evento que haya de realizar el usuario.
  3. Google solo indexa el cotenido que se "queda" en la página tras ser cargado.

 


Se me ocurren distintos escenarios en los que esta información nos podría ser útil, por ejemplo los siguientes

  • Anuncios cargados via ajax que no queremos indexar.
    Por ejemplo si no te interesa que Google relacione ese contenido con tu site no lo cargues en el onready, si quieres evitar pasarle Link Juice ponle rel="nofollow" a esos enlaces, etc.
  • Contenido cargado u ofuscado en JavaScript que no queremos que sea indexado, si la llamada que lo hace "visible" al usuario es el onready Google lo verá y lo indexará.
    A veces metemos mediante JavaScript determinado contenido que no queremos que Google valore, ya sea porque es repetido en gran parte de tu site como si es porque pudiese variar el KW density hacia términos que no te interesan.
  • Contenido relacionado que nos proporcionan herramientas externas como Orbian que muchas veces carga el contenido mediante ajax o javascript y que se lanza desde el onready. Ahora has de tener en cuenta que ese contenido podría indexarlo Google como parte de tu site, y si los enlaces no llevan nofollow, añádeselos tú.

 

Por supuesto haremos más experimentos sobre carga de contendo mediante javascript y su indexación y valoración por parte de Google, pero eso será cuándo vuelva de mis merecidas vacaciones en Septiembre!!!!

 

 

 


Comentarios

Otro SEOhace 96 días

Si escribieses en inglés lo petabas!

Muchas gracias por compartir

Alvaro Rondonhace 93 días

Mola! mola mucho! me lo comentaste en el Seo on the beach y estaba esperando este articulo!

Es curioso aunque lógico que indexe solo el contenido que carga y se queda. Me ha sorprendido mucho que interprete y ejecute el js en el onready.

Probaré algunas cosillas jijiji

Buen trabajo tio! un abrazo grande!

Antonio José Soler Morillashace 50 días

Uff, que buen curro, una duda, "si quieres evitar pasarle linkjuice ponle nofollow"

No pasas LJ si usas nofollow para los anuncios cargados en Ajax o para cualquier link?

Errioxahace 48 días

@Antonio solo Google sabe si se pasa o no lj con nofollow, en principio la url de destino no se vería beneficiada porque no lo contaría, pero a la hora de dividir tu PR entre tus enlaces salientes (inteternos o externos) solo Google lo sabe, así que si se puede mejor usar oro método.

En casos que no se pueda usar otro método por supuesto que a los anuncios se lo pongo.

Deja un comentario


Posts anteriores en Links y experimentos


Space Needle
Publicado el 10 de diciembre del 2015, por Lino Uruñuela Hola de nuevo! Después de más de un mes sin escribir nada voy a realizar el que puede ser el último experimento SEO de este año 2015. Es fácil y sencillo!! ObjetivoSaber si Google valora los

Seguir leyendo
Space Needle
Publicado por Lino Uruñuela el 24 de septiembre del 2015 Hoy escribo este post desde la humildad, desde la humildad de saber que no sabes nada seguro, desde la humildad que debemos adoptar lleves lo que lleves en este sector porque nadie lo sabe todo y aunque sepas mucho, lo que sabes hoy pu

Seguir leyendo
Space Needle
Publicado por Lino Uruñuela el lunes 20 de julio del 2015 Una de las mejores soluciones cuando se modifican urls son las redirecciones 301, que como bien sabemos traspasan el valor que tenía la antigua URL a la nueva. Por ejemplo en PHP las redirecciones 301 se crean con un simpl

Seguir leyendo
Space Needle
Publicado por Lino Uruñuela el viernes 23 de enero del 2015 Normalmente desde Mecagoenlos.com creamos experimentos para intentar comprobar alguna teoría o hipótesis, podríamos decir que lo hacemos siguiendo el método científico, es decir, a partir de un

Seguir leyendo
Space Needle
Publicado el lunes 15 de diciembre del 2014 por Lino Uruñuela El otro día a Javier Ortiz le asaltó una  duda sobre cómo tiene en cuenta Google los enlaces hacia, urls con redirección y a urls con canonical, ¿qué valor otorga Google a cada uno

Seguir leyendo
Space Needle
Publicado por Lino Uruñuela el viernes 26 de septiembre del 2014 En los dos anteriores posts os comentaba el problema que determinados sites pueden tener a la hora de enlazar internamente todo correctamente, ya que no siempre es tan fácil y frecuentemente nos encontramos con escen

Seguir leyendo
Space Needle
Publicado el miércoles 17 de septiembre del 2014 por Lino Uruñuela En diversas ocasiones hemos comprobado como valora Google los links que hay dentro de una url, así pudimos comprobar que Google sólo tiene en cuenta el primer link que encuentra hacia una URL, ignorando

Seguir leyendo
Space Needle
Publicado el 24 de marzo del 2013 El otro día hicimos un experimento para ver cómo se compartaba Google ante una url con el meta noindex.  Los objetivos eran dos: Saber si Google accede a esa URL Saber si Google indexa y almacena el contenido de esa URL Saber si G

Seguir leyendo
Space Needle
Publicado el 16 de marzo del 2013 by Lino Uruñuela Hoy voy a tratar de enterder cómo funciona Google con el meta noindex. Según Google este meta noindex es tratado de la siguiente manera Si Google detecta una metaetiqueta "noindex" en una p&a

Seguir leyendo
Space Needle
Publicado el 10 de febrero del 2013, by Lino Uruñuela ACTUALIZACIÓN: El primer código del htaccess que puse al final del artículo tenía algún error. Estoy intentando hacer que funcione siempre, algo va mejorando.

Seguir leyendo
Space Needle
Publicado el 12 de noviembre del 2012 por Lino Uruñuela El propósito es saber cómo valora Google los links "desactivados" con su nueva herramienta. Para evitar un SEO negativo (que una persona intente penalizar una web a base de enlaces malos) Google habilitó

Seguir leyendo
Space Needle
Publicado el 24 de octubre del 2012, by Lino Uruñuela Dicen que a la tercera va la vencida... a ver si es verdad!! pero tambien dicen que no hay mal que por bien no venga. Y esto sí que se ha cumplido. Hemos visto como antes me confundía al hacer el test (lo que tiene el hace

Seguir leyendo
Space Needle
Publicado el 24 de octubre del 2012  ACTUALIZACION: Con este experimento estoy gafado! ahora gracias a Montse que me avisó, me doy cuenta que hay dos metas Title, un fallo de programación al meterlo "a pelo". Pero curioso que posiciona l

Seguir leyendo
Space Needle
Publicado el 10 de octubre del 2012, by Lino Uruñuela Desde hace bastante tiempo tengo una duda sobre cómo valora Google los distintos tipos de documentos, HTML, PDF, Flash, txt. Con los documentos PDF ya he realizado alguna prueba, no sacando nada concluyente en cuanto

Seguir leyendo
Space Needle
Publicado el 7 de octubre del 2012, by Lino Uruñuela   Esta es una prueba con imágenes, a ver si consigo personalizar mis resultados A ver si lo consigo...

Seguir leyendo
  • 0000-00-00 00:00:00

Publicado el 27 de julio del 2012 Ya era hora! después de no sé cuánto tiempo vuelvo a escribir un post! Espero poder cumplir mi promesa de principios de año de escribir dos por semana, creo que ya me he cargado las pilas otra vez. Esta vez voy a hacer un test un po

Seguir leyendo
  • 0000-00-00 00:00:00

Publicado el 22 de abril del 2012, by Lino Uruñuela Estoy que me salgo, dos post en un día!! que no sirva de precedente :D Este experimento es fácil y sencillo, quiero comprobar si Google guarda caché y valora los links que hay en URLs que tienen un meta canonical

Seguir leyendo
Space Needle
Publicado el 22 de abril del 2012, by Lino Uruñuela El otro día intentamos ver de que manera Google podría valorar el meta canonical, y de momento podemos pensar en las siguientes conclusiones: Google traspasa el valor de los links que apuntaban a una página co

Seguir leyendo
  • 0000-00-00 00:00:00

Publicado el 18 de abril del 2012 El otro día hicimos un experimento para ver cómo trataba Google el meta canonical, y los resultados son, como diría Iker Jimenez, cuanto menos inquietantes... A los pocos días de hacer el test, podíamos buscar una de las KW

Seguir leyendo
Space Needle
Publicado por Lino Uruñuela el lunes 20 de julio del 2015 Una de las mejores soluciones cuando se modifican urls son las redirecciones 301, que como bien sabemos traspasan el valor que tenía la antigua URL a la nueva. Por ejemplo en PHP las redirecciones 301 se crean con un simpl

Seguir leyendo

Datos de contacto
  • 637167218
  • wachynaky@gmail.com

Dónde encontrarme

FunnelPunk.com


Blog Seo de Lino Uruñeula
Co-Fundador



Lánzate y pregunta!

Nos gustan los robots, pero no tanto
7 + 3

Últimos posts

Últimos comentarios


Mateo Bohorquez

Hola hermano, lo he intentado y no me funciona. para acotar problemas lo que hize fue usar ejemplo que nos redirige a otra pagina. este:
Post: Ofuscando enlaces para mejorar Link Juice

Juan M.

¿Esto lo has probado en Safari o Firefox? No pilla bien el preload para css
Post: Cómo cargar css y js y no bloquear la carga de contenido

Luis Salazar Jurado

Buenas Lino He hecho un test en mi site: www.seotecnico.com y tras hacer test en Iphone, Chrome y Firefow parece que funciona Sería a
Post: Cómo cargar css y js y no bloquear la carga de contenido

Luis Salazar Jurado

Gracias Lino por avisar. Solo he aplicado las mejoras de CSS y va como un tiro. Debido a que la web en la que lo he implementado cargo
Post: Cómo cargar css y js y no bloquear la carga de contenido

Tomás

...la línea ---?php wp_head()--- Gracias.
Post: Cómo cargar css y js y no bloquear la carga de contenido

Tomás

Hola Lino. En WordPress, ¿de qué manera se podría editar una línea de código CSS y JS para añadir las modificaciones en verde que menc
Post: Cómo cargar css y js y no bloquear la carga de contenido

Juan M.

Para mí, esa forma de cargar los estilos donde todo se ve sin estilo y los carga a los segundos me da una muy mala sensación del site. Tan
Post: Cómo cargar css y js y no bloquear la carga de contenido

Errioxa

@Luis actualizado! Si te da algún problema avisa!
Post: Cómo cargar css y js y no bloquear la carga de contenido

Luis Salazar Jurado

Lo he implementado y va como la seda Espero la actualización que has comentado en Twitter para ver el Javascript, pero solo con el CSS y
Post: Cómo cargar css y js y no bloquear la carga de contenido

Errioxa

@Antonio solo Google sabe si se pasa o no lj con nofollow, en principio la url de destino no se vería beneficiada porque no lo contaría, p
Post: ¿Cómo ejecuta, interpreta e indexa Google el contenido cargado mediante javascript?

Categorias