La carga en diferido de contenidos de una web (en inglés: «lazy load») es uno de los temas que llevamos discutiendo con desarrolladores y clientes desde hace algún tiempo. Se llevaba tiempo hablando de que Google no puede analizar el contenido cargado en diferido y ahora lo han confirmado.
Aunque se lleva hablando tiempo de que Google no puede analizar todo el contenido cargado en diferido (en inglés: lazy load) ahora ya hay confirmación oficial de que efectivamente esto es así.
Google no puede cargar todo el contenido en diferido (Lazy Load)
¿Qué es el contenido cargado en diferido? Con el lazy load lo que hacemos es diferir cargar parte del contenido hasta que el usuario lo visualice.
Por ejemplo si tenemos una página con muchas imágenes, cargaremos las que el usuario vea en su pantalla y conforme vaya haciendo scroll hacia abajo cargaremos las imágenes que vayan entrando en su campo de visión. De esta forma solo cargamos el contenido cuando el usuario llega al mismo, aumentando la velocidad de carga.
Esto no solamente se puede hacer con imágenes, sino con todo el contenido que no ve el usuario en pantalla y que requira cargar un archivo o acceder a una base de datos.
Y la verdad es que se pueden conseguir incrementos considerables de la velocidad de carga con este método, sobre todo en las webs con muchas imágenes.
El viernes 14 de agosto hay una confirmación oficial de John Mueller de Google sobre el tema. Dentro del «Google Webmaster Central office-hours hangout» de ese día, en el minuto 14:05 se respondió una pregunta sobre el contenido cargado en diferido en dispositivos móviles.
Y la respuesta rápida es: No. Google no puede cargar todo el contenido en diferido, dando igual que sea en sobremesa o móvil.
Y si Google no lo carga y no lo puede analizar, tampoco lo puede indexar. Es un contenido que para Google no existe.
El contenido cargado en diferido (lazy load) para #Google no existe. Clic para tuitearPasa algo similar con los elementos que por defecto el usuario no ve: Solapas con las que se accede a distinto contenido visualizado en el mismo sitio, contenido que está oculto y se visualiza al hacer click sobre el título o un botón, etc.
Lazy Loading: Pregunta y respuesta de John Mueller
Os dejamos la transcripción de la pregunta en inglés y una traducción libre nuestra.
Pregunta
Does google crawl and give same importance to the content which is lazy loaded on mobile, i.e. we keep loading the content as user swipe the screen down when on mobile device.
¿Google rastrea y le da la misma importancia al contenido que se carga en diferido en un dispositivo móvil? Nos referimos al contenido que se va cargando conforme el usuario va haciendo scroll con el dedo en un dispositivo móvil.
Respuesta
That’s tricky. So if we have the full content on the desktop page, then we would probably take that into account and use that also for ranking them on mobile.
If it is only a mobile page and the content only appears where you swipe down, then chances are, we most likely won’t be able to see all that content. The main difficulty there is that when GoogleBot loads a page, it doesn’t really know what to do to make all of the content appear, if it has to do something specific.
That is in regards to clicking on tabs, then it loads content. Or in regards to swiping in a certain way, from a direction, from a certain place, all of these things are really hard for us to kind of know what GoogleBot should not to kind of be doing.
So that is something where I’d recommend using the fetch as Google tools to kind of see how far Google sees the content, does Google see enough of the content or is there something missing. Because what we sometimes see with pages like that is that they sometimes use some type of infinite scrolling, where you can keep scrolling to see more and more content. If the additional content is content we indexed separately anyway, then there is not like we are missing anything anyway by just indexing the first page.
So that is kind of the situation where you kind of have to think about what content am I providing, is GoogleBot able to see all of that, and if so, maybe it doesn’t matter if GoogleBot can’t keep loading when you swipe up.
Eso es complicado. Si tuviéramos el contenido completo en un ordenador de sobremesa probablemente utilizaríamos ese contenido también para el posicionamiento en móviles.
Si sólo hay una página para móvil y el contenido sólo aparece cuando se hace scroll hacia abajo, entonces lo más probable es que nosotros no seremos capaz de ver todo ese contenido. La principal dificultad es que cuando GoogleBot carga una página no sabe que tiene que hacer algo para que aparezca todo el contenido.
Esto está relacionado con hacer click en una solapa para cargar contenido. O en relación a hacer scroll de alguna forma, en una dirección, desde un sitio de la web, etc. Todas esas acciones para cargar más contenido no deberían realizarse por GoogleBot.
Por tanto recomendamos usar la herramienta «Explorar como Google» para ver el contenido que verá Google de la página y poder analizar si falta algo. Por ejemplo con el scroll infinito si GoogleBot no hace el scroll para ver más contenido, pero ese contenido está indexado en otra parte de la web; aunque no lo vea en esa página, lo ha indexado en otra.
En esas situaciones es donde hay que analizar que contenidos se proporcionan, si GoogleBot puede verlo todo y si no lo puede ver todo, si es necesario que lo vea todo.
Resumiendo: Google y el Lazy Load
Google no puede indexar el contenido cargado en diferido. Y es importante comprobar la web con la herramienta de Google Search Console (antes Google Webmaster Tools) «Explorar como Google». Y a partir de ese análisis decidir si hay contenido que GoogleBot no ve y que interesa que vea.
Imágenes: Shutterstock – PathDoc, Shutterstock – Apatsara
Hola Ramón,
Muchos lo intuían, pero ahora llega la confirmación oficial. Gracias por traducirlo!
Se me ocurre ahora que esto es un problema para páginas que usan sistemas de comentarios como Disqus. Aún no está del todo claro que Google indexe esos comentarios. Nadie da una respuesta directa y clara.
Aquí un artículo(técnico) de como adaptar tu programación para que Google pueda indexar contenidos asíncronos
https://developers.google.com/webmasters/ajax-crawling/docs/learn-more
Saludos,
Laura
Hola Laura,
Me alegro que te haya gustado. Gracias por la aportación de los contenidos asíncronos.
Saludos.
Hablando de LazyLoadl, hay que matizar que se pueden hacer implementaciones correctas, por que se puede añadir contenidos alternativos a través de de noscript y no habría problemas.
He realizado eso en tres proyectos y subiendo como la espuma.
Un saludo!
Hola Rubén. Llevamos tiempo haciendo pruebas de este tema y no tengo claro si el esfuerzo de añadir contenidos con noscript merece la pena o es mejor no usar el lazyload.