
Critical CSS: extraer, minificar e inlinear para el LCP
Extrae el CSS above-the-fold, minifica el bloque, inlinalo en el head y carga el resto en async. Para el LCP, sin bloquearlo todo.
Por qué el CSS bloquea tu LCP
Cada hoja de estilo externa es render-blocking: el navegador retrasa la visualización hasta que ha descargado y parseado la integridad del CSS — aunque solo unas pocas reglas conciernan al contenido visible al cargar. En una landing de marketing con 180 KB de estilos, el Largest Contentful Paint (LCP) puede superar fácilmente los 3 segundos en móvil. La estrategia Critical CSS consiste en extraer los estilos del above-the-fold, minificarlos, inlinearlos en el `<head>` y luego cargar el resto de forma asíncrona. Para reducir de inmediato el tamaño del bloque extraído, un minificador CSS en línea FastMinify permite validar la ganancia en unos clics. Esta guía cubre el workflow completo — extracción, minificación, inline HTML y medición — como complemento de nuestra guía completa de la minificación CSS y del artículo sobre los Core Web Vitals y la minificación.
Impacto medible en el LCP
Cifras realistas para una página con Bootstrap + tema custom, medidas en móvil 4G simulada (Lighthouse):
Before optimization
- LCP
- 3,8 s
- Puntuación Google
- 62/100
- Tamaño de archivos
- 180 KB CSS bloqueante
- Tiempo de carga
- 2,1 s FCP
After optimization
- LCP
- 1,9 s
- Puntuación Google
- 91/100
- Tamaño de archivos
- 4 KB inline + 176 KB async
- Tiempo de carga
- 0,9 s FCP
Mejoras
La técnica aporta más valor en estos contextos:
Medir el impacto en tus Core Web Vitals
Comprueba que el Critical CSS mejora de verdad el LCP — no solo la puntuación Lighthouse sintética. Cruza lab y field data:
Compara antes/después en una muestra representativa de páginas. Consulta nuestros artículos sobre los Core Web Vitals y el posicionamiento de los sitios rápidos para los umbrales Google y el impacto SEO.
Inlinear el CSS crítico en el HTML
Combina CSS inline para lo crítico y carga diferida para el resto. Este patrón es compatible con la mayoría de stacks y evita el FOUC si el noscript está presente:
Antes
Después
Integración en los frameworks modernos
Next.js 13+ puede optimizar el CSS vía Critters (experimental). Activa `experimental.optimizeCss` o usa `@next/critical` para generar el critical en el build:
App Router
En `next.config.js`: `experimental: { optimizeCss: true }` — Critters inlinea automáticamente el CSS crítico de las páginas estáticas generadas.
Build manual
Para un control fino, ejecuta `critical` post-build sobre `out/index.html` (export estático) o sobre las páginas SSR snapshot.
El ecosistema Vue y React propone plugins maduros que automatizan la extracción:
Nuxt
Módulo `@nuxtjs/critters` — inyección automática del CSS crítico en el prerender.
Gatsby
Plugin `gatsby-plugin-critical` — genera e inlinea el critical para cada página en el build.
Buenas prácticas y trampas a evitar
Antes de empujar a prod, valida esta lista:
Estos problemas aparecen a menudo después de una primera implementación Critical CSS:
¿Qué es el Critical CSS?
El Critical CSS designa el conjunto mínimo de reglas necesarias para mostrar correctamente el contenido visible en el viewport inicial (above-the-fold): header, hero, tipografía de base, layout principal. Todo `<link rel="stylesheet">` externo bloquea el renderizado: el navegador construye el CSSOM antes de pintar. Minificar reduce el tamaño; el Critical CSS reduce el bloqueo al entregar esas reglas inline, sin ida y vuelta de red.
Esta es la transformación más habitual en una página estática o SSR:
Antes
Después
Minificar tu Critical CSS con FastMinify
Después de la extracción con `critical` o Penthouse, pega el CSS en el minificador CSS en línea FastMinify para obtener la versión más compacta antes del inline. Luego, minifica el HTML final con nuestro minificador HTML en línea si sirves páginas estáticas.
Paso 1: Extraer
Genera `critical.css` con critical/Penthouse sobre tu build de producción (no dev — las clases pueden diferir).
Paso 2: Minificar
Pega el CSS extraído en FastMinify. Compara tamaño antes/después — apunta a menos de 14 KB inline si es posible.
Paso 3: Inlinear y diferir el resto
Inserta el CSS minificado en `<style>` en el `<head>`. Carga la hoja completa en async vía preload o media print trick.
Extraer el CSS crítico de forma programática
El paquete `critical` es la referencia para generar el CSS crítico a partir de una URL o de un archivo HTML. Configura las dimensiones del viewport (móvil + desktop) para cubrir los casos reales:
Configuration
Uso
El CSS generado todavía contiene espacios y comentarios. Pásalo por CSSO o nuestra herramienta en línea antes de inlinearlo — ver la guía minificación CSS para las opciones avanzadas. Ganancia típica: 30 a 50 % sobre el bloque extraído.
Configuration
Uso
Conclusión
El Critical CSS es una de las optimizaciones más rentables para mejorar el LCP sin rehacer tu stack: extraer el above-the-fold, minificar de forma agresiva, inlinear en el HTML, diferir el resto. Combina este enfoque con la minificación CSS sistemática, la compresión Brotli y un HTML aligerado para maximizar el impacto en tus Core Web Vitals y tu posicionamiento.
Artículos relacionados

YAML roto, `on` o `jobs` ausentes, steps vacíos: valida la estructura de tus workflows antes del push — y deja actionlint para la CI.

Errores de sintaxis SDL, review de esquema y formateo antes del merge — complemento al beautify GraphQL existente.

Reduce la factura OpenAI/Anthropic/Gemini: estima input/output, activa batch y caching en tus cálculos — tarifas verificadas, 100 % local.