El rastreador web de Google simula estados inactivos para desencadenar eventos de JavaScript. Este cambio mejora la renderización de callbacks inactivos
En un reciente episodio del podcast Search Off The Record, se reveló que el sistema de renderizado de Google ahora finge estar "inactivo" para activar ciertos eventos de JavaScript y mejorar la renderización de páginas web.
Zoe Clifford, Martin Splitt y John Mu, personal del equipo de renderizado de Google, hablaron sobre cómo los rastreadores web de la compañía manejan los sitios basados en JS, sobre cómo funciona la renderización y qué es el misterioso "iteratorect". También discuten qué es el DOM, si todas las páginas se renderizan, cuánto tiempo lleva y qué deben tener en cuenta los propietarios de sitios web al crear sitios impulsados por JavaScript.
Esta revelación es interesante para todos aquellos que trabajen con webs que utilizan frameworks de JavaScript o diversos métodos para diferir la carga de contenido.
Hasta 2019 Google utilizaba el motor Blink para analizar una web, pero les daba problemas ya que as actualizaciones eran casi impredecibles e inestables, sin embargo pasaron a headless Chromium el cual ha resultado tener menos problemática para analizar el js de una web. Antes de eso, utilizar un CSR en una web era directamente renunciar a Google.
Googlebot simula estados “inactivos” durante la renderización, lo que desencadena eventos de JavaScript como requestIdleCallback.
Los desarrolladores utilizan esta función para diferir la carga de contenido menos crítico hasta que el navegador esté libre de otras tareas.
Antes de este cambio, el proceso de renderizado de Google era tan eficiente que el navegador siempre estaba activo, causando que algunos sitios web no cargaran contenido importante.
Había un sitio web de videos muy popular que no nombraré... que difería la carga de cualquier contenido de la página hasta después de que se activara requestIdleCallback.
Dado que el navegador nunca estaba inactivo, este evento no se disparaba, impidiendo que gran parte de la página se cargara correctamente. — Zoe Clifford
Así que Google implementó un sistema donde el navegador finge estar inactivo periódicamente, incluso cuando está ocupado renderizando páginas.
Este ajuste asegura que los callbacks inactivos se activen correctamente, permitiendo que las páginas carguen completamente su contenido para la indexación.
Clifford enfatizó la importancia de que los desarrolladores implementen un manejo de errores adecuado en su código JavaScript.
Los errores no manejados pueden llevar a páginas en blanco, redirecciones o contenido faltante, impactando negativamente en la indexación.
En este contexto, "Idle" no es un acrónimo, es simplemente una palabra en inglés que significa "inactivo" o "sin actividad". Googlebot simula estados "idle" o de inactividad para mejorar la renderización de páginas web y desencadenar ciertos eventos de JavaScript.
Cuando se habla del "truco de inactividad" de Google, se refiere a una técnica que utiliza Googlebot (el rastreador web de Google) durante la renderización de páginas web.
Contexto de "Idle" en Googlebot:
requestIdleCallback
. Esta función de JavaScript permite a los desarrolladores diferir la ejecución de ciertas tareas hasta que el navegador esté inactivo y tenga recursos disponibles.En resumen, el "truco de inactividad" de Google implica que Googlebot simula periodos de inactividad para mejorar la renderización de sitios web que utilizan requestIdleCallback
y otras funciones relacionadas, asegurando así una indexación más completa y precisa del contenido.
Principalmente, en base solo a la parte que he desarrollado del artículo nos tendríamos que quedar con dos cuestiones.
Implementar un manejo de errores adecuado es fundamental para garantizar que las páginas se carguen correctamente, incluso si algunas partes del código fallan. Esto significa que debes preparar tu sitio para lidiar con posibles fallos de manera que no afecten la experiencia del usuario. Por ejemplo, si un script no se carga bien, la página aún debería mostrarse y funcionar de la mejor manera posible. Es como tener un plan de respaldo: si algo falla, el resto del sitio sigue funcionando.
Esto no siempre es posible, y menos en las páginas de Frameworks de JS, entonces nos tendremos que asegurar con auditorías y conocimiento que vaya lo mejor que se pueda, pudiendo solucionar ágilmente los errores que vayan sucediendo. Trabajando con entornos de prueba/staging y asegurándonos de que todo está correcto antes de ir a producción.
Google ha mejorado en el manejo y entendimiento de callbacks inactivos, lo que son funciones que se ejecutan cuando un evento específico ocurre, pero no deberías depender demasiado de ellas. Aunque Google puede manejar estos callbacks, es importante no abusar de estas funciones porque pueden hacer que tu sitio sea más complicado y potencialmente menos eficiente. En resumen, utiliza los callbacks con moderación y asegúrate de que tu sitio funcione bien sin ellos.
Hay otros temas interesantes en ese vídeo, como los desafíos que presenta la detección de agentes de usuario y el manejo de redirecciones de JavaScript, sobre lo que puede que haga otro post. También te puedes apuntar a la próxima SEOminada sobre renderización, donde podremos tocar estos temas con mayor profundidad.
Los Shenanigans es la práctica de utilizar un user-agent engañoso en una web. Se recomienda probar Googlebot en chrome (a menos que la web tenga protección anti-shenanigans para comprobar que no se muestra al usuario un contenido diferente a Google. Es decir Cloaking.
Para sorpresa de nadie, Google bajo ciertas condiciones puede leer las redirecciones de JavaScript pero no es lo más efectivo. Y Google no suele tener problemas para leer los cambios o inserción de un JSON que se haya cambiado por js de una página indexable.
Te falta mi máster. Accede a una formación avanzada que te permitirá aplicar e implementar SEO en cualquier tipo de WEB
¡Accede al Máster de SEO Técnico!