Cómo lograr que JavaScript y la Búsqueda de Google funcionen en conjunto

Recibe las novedades y estadísticas más recientes de Google I/O 2019.

Están ocurriendo grandes cosas con la Búsqueda de Google, y nos complace compartirlas en Google I/O 2019.

En esta publicación, nos centraremos en las prácticas recomendadas para que las aplicaciones web con JavaScript sean detectables en la Búsqueda de Google, incluidas las siguientes:

  • La nueva versión perdurable de Googlebot
  • Canalización de Googlebot para el rastreo, el procesamiento y la indexación
  • Detección de funciones y manejo de errores
  • Estrategias de renderización
  • Herramientas de prueba para tu sitio web en la Búsqueda de Google
  • Desafíos comunes y posibles soluciones
  • Prácticas recomendadas para SEO en apps web con JavaScript

Conoce el robot perdurable

Este año anunciamos el tan esperado nuevo Googlebot perdurable.

Googlebot sosteniendo el logotipo de Chrome
El robot de Google ahora ejecuta un motor de renderización moderno de Chromium.

Ahora Googlebot usa un motor moderno de Chromium para renderizar sitios web para la Búsqueda de Google. Además, probaremos versiones más recientes de Chromium para mantener actualizado Googlebot, por lo general, unas semanas después de cada versión estable de Chrome. Este anuncio es una gran noticia para desarrolladores web y especialistas en SEO, ya que marca la llegada de más de 1,000 funciones nuevas, como ES6+, IntersectionObserver y Web Components v1, en Googlebot.

Más información sobre cómo funciona Googlebot

Googlebot es una canalización con varios componentes. Observemos cómo indexa las páginas de Googlebot para la Búsqueda de Google.

Un diagrama que muestra cómo una URL pasa de una cola de rastreo a un paso de procesamiento que extrae las URLs vinculadas y las agrega a la cola de rastreo, una cola de renderización que realiza el feed a un procesador que produce HTML. El procesador usa este HTML para volver a extraer las URLs vinculadas y, luego, indexar el contenido.
Canalización de Googlebot para rastrear, indexar y renderizar una página.

El proceso funciona de la siguiente manera:

  1. Googlebot pone en cola las URLs para rastrearlas.
  2. Luego, recupera las URLs con una solicitud HTTP basada en el presupuesto de rastreo.
  3. Googlebot analiza el código HTML en busca de vínculos y los pone en cola para rastrearlos.
  4. Luego, Googlebot pone la página en cola para su renderización.
  5. Tan pronto como sea posible, una instancia de Chromium sin interfaz gráfica renderizará la página, lo que incluye la ejecución de JavaScript.
  6. Googlebot usa el HTML renderizado para indexar la página.

Tu configuración técnica puede influir en el proceso de rastreo, procesamiento e indexación. Por ejemplo, tiempos de respuesta lentos o errores de servidor pueden afectar el presupuesto de rastreo. Otro ejemplo sería requerir que JavaScript renderice los vínculos, lo que puede provocar un descubrimiento más lento de estos vínculos.

Usa la detección de funciones y maneja errores

El Googlebot perdurable tiene muchas funciones nuevas, pero algunas aún no son compatibles. Si dependes de funciones no compatibles o no manejas los errores de forma adecuada, es posible que Googlebot no pueda procesar ni indexar tu contenido.

Veamos un ejemplo:

 <body>
   <script>
     navigator.geolocation.getCurrentPosition(function onSuccess(position) {
       loadLocalContent(position);
     });
   </script>
 </body>

Es posible que esta página no muestre contenido en algunos casos porque el código no controla cuándo el usuario rechaza el permiso o cuándo la llamada getCurrentPosition muestra un error. De forma predeterminada, Googlebot rechaza las solicitudes de permisos como esta.

Esta es una solución mejor:

 <body>
   <script>
     if (navigator.geolocation) {
       // this browser supports the Geolocation API, request location!
       navigator.geolocation.getCurrentPosition(
         function onSuccess(position) {
           // we successfully got the location, show local content
           loadLocalContent(position);
         }, function onError() {
           // we failed to get the location, show fallback content
           loadGlobalContent();
         });
     } else {
       // this browser does not support the Geolocation API, show fallback content
       loadGlobalContent();
     }
   </script>
 </body>

Si tienes problemas para indexar tu sitio de JavaScript, consulta nuestra guía de solución de problemas para encontrar soluciones.

Elige la estrategia de renderización adecuada para tu app web

En la actualidad, la estrategia de renderización predeterminada para las apps de una sola página es la renderización del cliente. El código HTML carga el JavaScript, que luego genera el contenido en el navegador a medida que se ejecuta.

Veamos una app web que muestra una colección de imágenes de gatos y usa JavaScript para renderizarlas por completo en el navegador.

Un cuadro de código que muestra HTML que carga algunas secuencias de comandos. Captura de pantalla de una página web en un dispositivo móvil que muestra imágenes de marcador de posición mientras se carga el contenido real.
La estrategia de renderización influye en el rendimiento y la solidez de tus apps web.

Si puedes elegir tu estrategia de renderización, considera usar la renderización previa o del servidor. Ejecutan JavaScript en el servidor para generar el contenido HTML inicial, lo que puede mejorar el rendimiento de los usuarios y los rastreadores. Estas estrategias permiten que el navegador comience a renderizar el HTML a medida que llega a través de la red, lo que hace que la página se cargue más rápido. En la sesión de renderización en I/O o en la entrada de blog sobre la renderización en la Web, se muestra cómo la renderización y la hidratación del servidor pueden mejorar el rendimiento y la experiencia del usuario de las apps web, y se proporcionan más ejemplos de código para estas estrategias.

Si buscas una solución alternativa para ayudar a los rastreadores que no ejecutan JavaScript (o si no puedes realizar cambios en la base de código de tu frontend), considera usar la renderización dinámica, que puedes probar en este codelab. Sin embargo, ten en cuenta que no obtendrás la experiencia del usuario ni los beneficios de rendimiento que obtendrías con el procesamiento previo o del servidor, ya que el procesamiento dinámico solo publica código HTML estático para los rastreadores. Eso la convierte en una solución temporal en lugar de en una estrategia a largo plazo.

Prueba tus páginas

Si bien la mayoría de las páginas generalmente funcionan bien con Googlebot, te recomendamos que las pruebes periódicamente para asegurarte de que tu contenido esté disponible para Googlebot y no haya problemas. Existen varias herramientas excelentes para ayudarte a hacerlo.

La forma más fácil de hacer una verificación rápida de una página es mediante la Prueba de optimización para dispositivos móviles. Además de mostrarte problemas relacionados con la optimización para dispositivos móviles, también te muestra una captura de pantalla del contenido de la mitad superior de la página y del HTML renderizado tal como lo ve Googlebot.

La prueba de optimización para dispositivos móviles muestra el HTML renderizado que ve Googlebot después de procesar la página
La prueba de optimización para dispositivos móviles te muestra el HTML renderizado que usa Googlebot.

También puedes averiguar si hay problemas de carga de recursos o errores de JavaScript.

La prueba de optimización para dispositivos móviles muestra errores de JavaScript y un seguimiento de pila.

Te recomendamos que verifiques tu dominio en Google Search Console para que puedas usar la Herramienta de inspección de URLs y obtener más información sobre el estado de indexación y rastreo de una URL, recibir mensajes cuando Search Console detecte problemas y conocer más detalles sobre el rendimiento de tu sitio en la Búsqueda de Google.

La Herramienta de inspección de URLs muestra una página que está indexada con información sobre el descubrimiento, el rastreo y la indexación de una URL
La Herramienta de inspección de URLs de Search Console muestra el estado de una página en el rastreo, el procesamiento y la indexación.

Para obtener orientación y sugerencias generales de SEO, puedes usar las auditorías de SEO en Lighthouse. Para integrar las auditorías de SEO en tu paquete de pruebas, usa la CLI de Lighthouse o el bot de CI de Lighthouse.

Un informe faro de SEO con una puntuación de 44 y advertencias sobre la optimización para dispositivos móviles, así como advertencias sobre prácticas recomendadas para el contenido
Lighthouse muestra recomendaciones generales de SEO para una página.

Estas herramientas te ayudan a identificar, depurar y corregir problemas con las páginas de la Búsqueda de Google, y deben formar parte de tu rutina de desarrollo.

Mantente al tanto y comunícate con nosotros

Si quieres mantenerte al tanto de los anuncios y cambios en la Búsqueda de Google, visita nuestro blog para webmasters, el canal de YouTube para webmasters de Google y nuestra cuenta de Twitter. Consulta también nuestra guía para desarrolladores sobre la Búsqueda de Google y nuestra serie de videos de SEO en JavaScript para obtener más información sobre SEO y JavaScript.