Existe esto, que añade un loader ligeramente antes…
¿Tienes alguna fuente sobre el impacto percibido en el rendimiento que afecta al posicionamiento en los resultados de búsqueda, o te refieres a FCP/LCP? FCP y LCP son métricas específicas con requisitos técnicos, a pesar de basarse en conceptos de percepción. Ten en cuenta además que FCP no forma parte de las “Core Web Vitals” de Google (aunque LCP sí lo es).
Algunos detalles más de https://web.dev/lcp/:
Según la especificación actual de la API Largest Contentful Paint, los tipos de elementos considerados para Largest Contentful Paint son:
- Elementos
<img>- Elementos
<image>dentro de un elemento<svg>- Elementos
<video>(se utiliza la imagen de portada)- Un elemento con una imagen de fondo cargada mediante la función
url()(en contraposición a un gradiente CSS)- Elementos de bloque que contienen nodos de texto u otros elementos hijos de texto a nivel de línea.
Si una página elimina un elemento del DOM, ese elemento ya no se tendrá en cuenta. Del mismo modo, si cambia el recurso de imagen asociado a un elemento (por ejemplo, cambiando
img.srcmediante JavaScript), ese elemento dejará de considerarse hasta que se cargue la nueva imagen.
Estos requisitos lo hacen un poco complicado; quizás un elemento de carga con una imagen o texto grande podría funcionar si, en lugar de eliminarlo del DOM, lo ocultas de otra manera. El spinner anterior utiliza z-index para ocultarse, así que tal vez eso podría funcionar… pero el spinner por sí solo no es suficiente porque no es una imagen ni texto (es CSS).
Estoy de acuerdo en que algún tipo de loader sería bueno para los usuarios con conexiones lentas, pero hay requisitos específicos que cumplir para Google (y no sabemos si resolvería el problema planteado por el OP).