no ☞ 📈 ¿Cómo ejecuta, interpreta e indexa Google el contenido cargado mediante javascript? _ â–‚ â–ƒ â–… â–† â–ˆ

¿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!!!!

 

 

 




Posts anteriores en Cómo usar JavaScript AJAX


Space Needle
Publicado el 29 de mayo del 2017 por Lino Uruñuela Aunque hemos visto en otras ocasiones cómo podría tratar Google el contenido cargado mediante JavaScript (usando Ajax con jQuery u otros métodos) ultimamente estoy con la duda de si está cambiando algo, ya que v

Seguir leyendo
  • 2015-07-03 00:00:00

Publicado por Lino Uruñuela el 3 de julio del 2015 Una de las cosas que más curiosidad me provoca Google es saber hasta que punto rastrea JavaScript, y hasta que punto es capaz de interpretar lo que con JavaScript haces en el site. Desde hace tiempo se ha pensado que Google

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

function ejecutaCodigo2(variableJS){ if (window.XMLHttpRequest){ http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { // IE t

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

function ejecutaCodigo(){ if (window.XMLHttpRequest){ http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { // IE try {

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

Publicado el 14 de mayo del 2009 var nueva = "http://www.clavesde.com/experimento24.html"; alert("Esta es la URL que debería cachear si sigue las URLs en cualquier parte del código: http://www.clavesde.com/experimento24.html"); Hoy quiero comprobar si Google sigue las URLs que est&aacut

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

Publicado el 8 de febrero del 2008 ¿Qué ocurriría si a Google le da por mostrar sus resultados usando Ajax? Imagina que cuando tú buscas algo en Google la URL siempre fuese la misma, mostrando sus resultados utilizando Ajax. Para el usuario todo sería aparant

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

Google nos dice cómo debemos usar Ajax para que su buscador pueda acceder también a esos contenidos. Era lógico y ya lo dijimos. Por jemplo: <a href="paginadestino.php" onClick="funcionAjax(parametros);return false">enlace</a> Así dec

Seguir leyendo

Últimos posts

Últimos comentarios


Lino Urunuela

probando https
Post: Consultor SEO en Donosti

Lino Uruñuela

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

Javier

Bueenas Lino! Gracias por tu respuesta! Efectivamente, cogiendo texto de una página hecha con javascript y poniéndolo en Google entre comi
Post: Meta Robots Noindex

Lino Uruñuela

Hola @Javier repondiendo a tu pregunta "¿significa eso que google no está viendo el contenido en texto y no lo posicionará?" con el mismo
Post: Meta Robots Noindex

Lino Uruñuela

@Alex R , lo primero graciias por a ti por participar :) Sobre tu prebunta ¿Dentro de un mismo artículo o entrada podemos hacer que no s
Post: Meta Robots Noindex

Javier

Buenas Lino Mecagoenlos! (vaya apellido tienes...) Tu artículo me ha dado mucho que pensar... acaban de hacerme una web en una agencia y
Post: Meta Robots Noindex

Alex R

Hola Lino! Te leo desde hace algún tiempo (genial el cambio de look) y casualmente he venido aquí con una duda sobre indexación. Lo
Post: Meta Robots Noindex

Lino Uruñuela

@javier Lorente Aupa Javi, en algún proyecto en el que he aplicado el noindex y que podía analizar los accesos del bot (tenina cierto p
Post: Meta Robots Noindex

Javier Lorente

Kaixo Lino! Habría que ver si baja la frecuencia de rastreo en otras urls que no fuesen la home, muy difícil de medir por cierto. Po
Post: Meta Robots Noindex

pSeo

va como un tiro con el onready!!!
Post: Cómo cargar css y js y no bloquear la carga de contenido

Contacta

Lánzate y pregunta!

Nos gustan los robots, pero no tanto
7 + 3