Introducción

Fcp Explained

Ver contenido

FCP (First Contentful Paint): Entendiendo el Renderizado Inicial de Página

Introducción

First Contentful Paint (FCP) mide el tiempo desde que una página comienza a cargar hasta que cualquier parte del contenido de la página se renderiza en la pantalla. Es una de las métricas de rendimiento clave que indica qué tan rápido los usuarios ven algo significativo en tu página.

FCP es particularmente importante porque marca el primer punto en el que un usuario podría empezar a percibir la página como cargada. Antes de FCP, los usuarios no ven nada más que una pantalla en blanco—una experiencia frustrante que puede llevar al abandono.

¿Qué es FCP?

FCP mide cuando el navegador renderiza el primer bit de contenido del DOM. Esto incluye:

  • Texto (cualquier nodo de texto)
  • Imágenes (incluyendo imágenes de fondo)
  • Elementos SVG
  • Elementos <canvas> no blancos

Qué Mide FCP

Línea de Tiempo de Carga:
Inicio Navegación → Primer Byte → First Paint → FCP → LCP → Página Completa
                                                ↑
                                    Primer contenido visible

Distinción clave:

  • First Paint (FP): Cualquier cambio visual (podría ser solo color de fondo)
  • First Contentful Paint (FCP): Contenido real visible (texto, imagen, etc.)

Umbrales de FCP

Según la documentación de web.dev de Google, las puntuaciones de FCP se categorizan como:

✅ Bueno:           ≤ 1.8 segundos
⚠️ Necesita Mejora: 1.8 - 3.0 segundos
❌ Pobre:           > 3.0 segundos

Objetivo: Al menos el 75% de las visitas a la página deberían tener un FCP de 1.8 segundos o menos.

¿Por Qué es Importante FCP?

FCP importa por varias razones clave:

1. Percepción del Usuario

FCP es el momento en que los usuarios saben que “algo está pasando”. Antes de FCP:

  • El usuario ve pantalla en blanco
  • Incertidumbre sobre si la página está cargando
  • Mayor probabilidad de abandono

2. Puntuación de Rendimiento de Lighthouse

FCP es una de las seis métricas que Lighthouse usa para calcular puntuaciones de rendimiento:

  • FCP: 10% de peso
  • LCP: 25% de peso
  • TBT: 30% de peso
  • CLS: 25% de peso
  • Speed Index: 10% de peso

3. Relación con Otras Métricas

FCP está relacionado pero es distinto de otras métricas:

Métrica Qué Mide
FCP Primer contenido aparece
LCP Contenido más grande aparece
TTFB Tiempo de respuesta del servidor
FP Primer cambio visual

Un buen FCP no garantiza un buen LCP, pero un FCP pobre casi siempre lleva a un LCP pobre.

¿Qué Afecta el FCP?

Varios factores retrasan el FCP:

1. Respuesta Lenta del Servidor (TTFB)

Si el servidor es lento, todo se retrasa:

Solicitud Usuario → Procesamiento Servidor → Primer Byte → Descargar HTML → Parsear → FCP
                   └──────── TTFB ────────┘
                   ↑ Lento aquí retrasa FCP

2. Recursos que Bloquean el Renderizado

CSS y JavaScript que bloquean el renderizado previenen FCP:

<!-- Estos bloquean el renderizado -->
<link rel="stylesheet" href="estilos-grandes.css">
<script src="script-bloqueante.js"></script>

<!-- FCP no puede ocurrir hasta que estos se procesen -->

3. Archivos CSS Grandes

CSS bloquea el renderizado por defecto. Archivos CSS grandes retrasan FCP:

HTML Recibido → Solicitar CSS → Descargar CSS → Parsear CSS → FCP
                               └──── Retraso ────┘

4. JavaScript Síncrono

JavaScript en <head> sin async o defer:

<!-- ❌ Bloquea renderizado -->
<script src="analytics.js"></script>

<!-- ✅ No bloquea renderizado -->
<script src="analytics.js" defer></script>

5. Documento HTML Grande

Archivos HTML muy grandes toman más tiempo en descargar y parsear.

Mejores Prácticas Básicas

1. Reduce el Tiempo de Respuesta del Servidor

Mejora TTFB para darle ventaja a FCP:

Técnicas de optimización:
├── Usa una CDN
├── Habilita caché del servidor
├── Optimiza consultas de base de datos
├── Usa HTTP/2 o HTTP/3
└── Considera edge computing

2. Elimina Recursos que Bloquean el Renderizado

<!-- Difiere JavaScript no crítico -->
<script src="analytics.js" defer></script>

<!-- Carga asíncrona de CSS no crítico -->
<link rel="preload" href="no-critico.css" as="style"
      onload="this.onload=null;this.rel='stylesheet'">

3. Minimiza CSS

Mantén el CSS pequeño y crítico:

<!-- CSS crítico en línea -->
<style>
/* Solo estilos necesarios para contenido above-the-fold */
body { margin: 0; font-family: system-ui; }
.header { background: #071952; color: white; }
</style>

<!-- Carga CSS completo asíncronamente -->
<link rel="preload" href="estilos-completos.css" as="style"
      onload="this.rel='stylesheet'">

4. Precarga Recursos Críticos

Dile al navegador qué es importante:

<link rel="preload" href="fuente-critica.woff2" as="font" crossorigin>
<link rel="preload" href="imagen-hero.webp" as="image">

5. Usa Renderizado de Texto Eficiente

Asegura que el texto se muestre rápidamente:

/* Muestra texto inmediatamente con fuente de respaldo */
@font-face {
    font-family: 'FuentePersonalizada';
    src: url('fuente.woff2') format('woff2');
    font-display: swap;
}

FCP vs LCP: Entendiendo la Diferencia

Aspecto FCP LCP
Qué lo dispara Cualquier contenido Contenido más grande
Elemento típico Texto, imágenes pequeñas Imagen hero, encabezado principal
Percepción del usuario “La página está cargando” “La página está cargada”
Umbral 1.8 segundos 2.5 segundos
Core Web Vital No (diagnóstico) Sí (factor de ranking)

Insight clave: FCP es una métrica de diagnóstico que ayuda a identificar problemas de bloqueo de renderizado, mientras que LCP es el Core Web Vital que afecta los rankings.

Cómo Verificar con UXR SEO Analyzer

La extensión UXR SEO Analyzer te ayuda a monitorear FCP:

  1. Instala la extensión UXR SEO Analyzer en Chrome
  2. Navega a cualquier página de tu sitio web
  3. Abre la extensión
  4. Ve a la pestaña “Performance
  5. Revisa el evaluador “FCP

La extensión mostrará:

  • Valor actual de FCP
  • Si cumple el umbral de 1.8s
  • Recursos que bloquean el renderizado detectados
  • Sugerencias de mejora

Próximos Pasos

¿Quieres dominar todas las técnicas avanzadas de optimización de FCP? Lee nuestra guía completa de optimización de FCP donde cubrimos:

  • Optimización de la ruta crítica de renderizado
  • Estrategias de entrega de CSS
  • Patrones de carga de JavaScript
  • Beneficios del renderizado del lado del servidor
  • Resource hints y preloading

Artículos Relacionados:

Referencias

Este artículo cita las siguientes fuentes autorizadas:

[1] web.dev: First Contentful Paint (FCP) https://web.dev/articles/fcp Documentación oficial de Google que define FCP. Explica qué contenido dispara FCP, el umbral de 1.8 segundos, y cómo FCP se relaciona con otras métricas de rendimiento como LCP y TTFB.

[2] Chrome Developers: Lighthouse FCP Audit https://developer.chrome.com/docs/lighthouse/performance/first-contentful-paint Documentación técnica sobre cómo Lighthouse mide y puntúa FCP. Incluye recomendaciones detalladas para mejorar puntuaciones de FCP y entender el impacto de la métrica en el rendimiento general.

[3] MDN Web Docs: Performance API https://developer.mozilla.org/en-US/docs/Web/API/Performance Referencia técnica para la API de Performance del navegador que permite medir FCP a través de entradas de paint timing. Esencial para entender cómo se captura FCP en el monitoreo de usuarios reales.

Recursos Adicionales


Nota: Este artículo es parte de nuestra serie de análisis SEO. Explora todos los artículos en el Hub de SEO de Rendimiento.


Fuentes: web.dev (FCP), Chrome Developers (Lighthouse), MDN Web Docs (Performance API)

Artículos relacionados

Versión relacionada

Guía detallada

Fcp Optimization Guide

First Contentful Paint (FCP) mide cuándo los usuarios ven por primera vez contenido en tu página

Hub de categoría

Hub

Performance Seo Hub

El rendimiento es un factor de ranking crítico e impacta directamente la experiencia del usuario

En la misma categoría

Introducción

Lcp Explained

Largest Contentful Paint (LCP) es uno de los Core Web Vitals de Google—un conjunto de métricas que miden la experiencia real del usuario en tu sitio web

Introducción

Ttfb Explained

Time to First Byte (TTFB) mide el tiempo desde que un usuario o cliente hace una solicitud HTTP hasta que el primer byte de la respuesta llega al navegador del...