CSS crítico
CSS crítico: extraer los estilos por encima del pliegue, insertarlos en línea y diferir el resto para acelerar el primer pintado. Por qué Google lo considera una técnica avanzada y opcional, las contrapartidas reales (pérdida de caché, riesgo de mantenimiento, condiciones de carrera) y cómo saber si el CSS es realmente tu cuello de botella.
Idiomas
El CSS crítico es una técnica de rendimiento: extraer el CSS necesario para renderizar una vista por encima del pliegue elegida, insertarlo en línea en el <head> y diferir el resto de la hoja de estilos de forma asíncrona. Funciona porque el CSS bloquea el renderizado por defecto: el navegador no pinta nada hasta que se construye el CSSOM. No existe una altura universal para lo que está por encima del pliegue (el dispositivo, la orientación, el zoom y el estado de la página la cambian), así que trata la división como una decisión, no como un corte fijo en píxeles. Lo más importante que hay que entender: Google presenta el CSS crítico como una técnica avanzada y opcional, no como una recomendación por defecto; su propia documentación dice: «La mayoría de los sitios deberían poder alcanzar todos nuestros objetivos de rendimiento recomendados sin implementar esta técnica». Las contrapartidas son reales: el CSS insertado en línea no se almacena en caché para visitas repetidas (las segundas visualizaciones pueden ser más lentas), la división entre crítico y no crítico se rompe silenciosamente cuando cambian las plantillas o los estados, una política style-src de CSP puede bloquear directamente el bloque en línea, y el diferimiento con preload/onload puede generar condiciones de carrera o causar cambios de diseño. Primero diagnostica: confirma que el CSS (y no el JavaScript ni el tiempo de respuesta del servidor) es realmente tu cuello de botella de renderizado antes de tocarlo. El impacto en el SEO es indirecto, a través de las Core Web Vitals (Métricas web esenciales)/LCP, y no una señal de posicionamiento directa. No hay directrices específicas de Bing. Esta página se anida bajo el hub de Critical Rendering Path.
TL;DR — El CSS crítico es un truco de velocidad: toma solo los estilos necesarios para la parte de la página que las personas ven primero, pégalos directamente en el HTML y carga el resto de tu hoja de estilos más tarde. Puede hacer que una página parezca más rápida, pero el propio Google dice que la mayoría de los sitios no lo necesitan y tiene desventajas reales. Diagnostica antes de recurrir a él.
Qué es el CSS crítico
Cuando un navegador carga una página, no dibuja nada en pantalla hasta que ha leído tu CSS. Esto es intencional; de lo contrario, la página aparecería sin estilo y luego daría saltos. Pero esto significa que una hoja de estilos lenta o pesada puede retrasar todo el primer renderizado.
El CSS crítico es una forma de evitarlo. La idea tiene dos partes:
- Inserta los estilos importantes en línea. Extrae solo el CSS necesario para el
contenido above the fold (la parte visible antes de desplazarte) y colócalo directamente
en el
<head>de la página. Así, el navegador tiene lo que necesita para renderizar la parte superior de la página sin esperar un archivo separado. - Difiere el resto. Carga la hoja de estilos completa de forma asíncrona para que no bloquee ese primer renderizado. Llega un momento después y aplica los estilos al resto.
El equipo de web.dev de Google lo define como una técnica que extrae el CSS del contenido por encima del pliegue para renderizarlo al usuario lo más rápido posible.
Evidence for this claim Critical CSS extracts and inlines above-the-fold styles so the remaining CSS can load asynchronously. Scope: web.dev definition and implementation outline for critical CSS. Confidence: high · Verified: web.dev: Extract critical CSSLo que la mayoría de las personas entiende mal
La mayoría de los artículos presentan el CSS crítico como algo que deberías hacer. La propia documentación de Google dice lo contrario para la mayoría de los sitios: la mayoría de los sitios deberían poder alcanzar todos nuestros objetivos de rendimiento recomendados sin implementar esta técnica. Es una optimización avanzada de último recurso, no una casilla predeterminada que marcar.
Evidence for this claim web.dev presents critical CSS as an advanced technique that can cause bugs and says most sites can meet performance targets without it. Scope: web.dev codelab guidance; not a universal recommendation. Confidence: high · Verified: web.dev: Extract and inline critical CSSY no es gratis. Cuando insertas CSS en línea en el HTML, el navegador no puede almacenarlo en caché para tus otras páginas de la misma forma que almacena en caché una hoja de estilos normal — por lo que la segunda visualización de página de un visitante en tu sitio puede ser en realidad más lenta. La división entre “crítico” y “el resto” también tiene que mantenerse; cambia tu plantilla y puede romperse silenciosamente.
¿Ayuda al SEO?
Solo indirectamente. El CSS en sí no se lee como una señal de posicionamiento — Martin Splitt, de Google, ha dicho que no les importan los nombres de tus clases CSS. En lo que el CSS crítico puede ayudar es en la rapidez con la que se muestra la página, lo cual alimenta los Core Web Vitals (Métricas web esenciales) (específicamente LCP), y los Core Web Vitals (Métricas web esenciales) son un factor de posicionamiento menor. Así que la ruta es: pintado más rápido → mejor LCP → un beneficio de SEO modesto — no «el CSS crítico es un factor de posicionamiento».
¿Quieres la versión real — cómo implementarla, la posición real de Google, las compensaciones y cómo saber si el CSS es siquiera tu cuello de botella? Cambia a la pestaña Avanzado.
TL;DR — CSS crítico = extraer los estilos de la parte visible inicial (above the fold), insertarlos inline en el
<head>y diferir el resto de la hoja de estilos de forma asíncrona (rel="preload"+ intercambio (swap) enonload, fallback de<noscript>oloadCSS). Funciona porque el CSS bloquea el renderizado por defecto. La columna vertebral de precisión: Google lo presenta como algo avanzado y opcional, no como una recomendación predeterminada — «Most sites should be able to achieve all of our recommended performance targets without implementing this technique.» (traducción) «La mayoría de los sitios deberían poder alcanzar todos nuestros objetivos de rendimiento recomendados sin implementar esta técnica.» Mantén pequeña la carga inline. Las contrapartidas son reales: el CSS inline no se almacena en caché entre cargas de página (las visitas repetidas pueden ser más lentas), la división crítico/no crítico se rompe a medida que cambian las plantillas, y el diferimiento puede generar condiciones de carrera o causar FOUC/CLS. Diagnostica primero — confirma que el CSS (y no JavaScript ni el tiempo de servidor) es el cuello de botella real. Cuidado con las minas que una demo rápida no te mostrará: una políticastyle-srcde CSP puede bloquear directamente tu bloque<style>inline, “unused at capture” (traducción) «sin uso en el momento de la captura» no es lo mismo que “safe to defer” (traducción) «seguro de diferir» en todos los temas/personalizaciones/estados, y la inserción inline no resuelve los tiempos de carga de fuentes. El impacto en el SEO es indirecto, a través de Core Web Vitals (Métricas web esenciales)/LCP. No existe orientación específica para Bing.
Qué es realmente el CSS crítico
El problema que resuelve es el CSS que bloquea el renderizado. El web.dev de Google es explícito: Por defecto, el CSS se trata como un recurso que bloquea el renderizado, lo que significa que el navegador no renderizará ningún contenido procesado hasta que se construya el CSSOM. Esa es la razón de ser de la técnica — el navegador se niega a pintar hasta que tiene tus estilos, así que cualquier cosa que retrase el CSS retrasa el primer pintado. (Para conocer el pipeline completo que subyace a esto, consulta el hub de critical rendering path en el que se enmarca esta página, y su complementario, recursos que bloquean el renderizado.)
El CSS crítico ataca eso dividiendo tu CSS en dos.
la definición de web.dev: «Critical CSS is a technique that extracts the CSS for above-the-fold content in order to render content to the user as fast as possible.» (traducción) «El CSS crítico es una técnica que extrae el CSS del contenido visible en la parte superior de la página con el fin de renderizar el contenido para el usuario lo más rápido posible.»
Y la mecánica:
Incrustar los estilos extraídos en el <head> del documento HTML elimina la necesidad de realizar una solicitud adicional para obtener estos estilos. El resto del CSS puede cargarse de forma asíncrona.
Hay algo que web.dev deja claro y que muchas guías secundarias pasan por alto: no existe una altura única y universal para la parte superior visible — el tamaño del dispositivo, la orientación, la interfaz del navegador, el nivel de zoom y el estado de la página (un menú abierto, la personalización cargada, un estado de error), todo ello cambia lo que realmente tiene que estar en el conjunto “crítico”. Trata el CSS crítico como una decisión sobre un viewport/estado inicial elegido, no como un corte fijo de píxeles, y valídalo contra tus breakpoints y estados reales — no contra una sola captura de pantalla de escritorio.
Así que son dos tareas, en orden:
- Inserta en línea el CSS mínimo de la parte superior visible (above-the-fold) en el
<head>— sin ningún viaje de ida y vuelta adicional antes del primer renderizado (first paint). - Difiere el resto de la hoja de estilos — cárgala de forma asíncrona para que nunca bloquee ese primer renderizado.
Así es exactamente como lo he dividido en mis charlas sobre experiencia de página. En mi presentación Lo que sigue para la experiencia de página (SMX Next 2021) dividí el trabajo de CSS en dos grupos: una ruta temprana/crítica (eliminar el CSS sin usar → minificar el CSS → insertar en línea el CSS crítico) y una ruta tardía/diferida (diferir el CSS no crítico). La misma estructura que la de web.dev, solo que ordenada de la forma en que yo lo pienso.
Cómo implementarlo
Paso 1 — inserta el CSS crítico en línea. La propia recomendación de Lighthouse es
insertar los estilos críticos necesarios para el primer renderizado dentro de un bloque <style> en el head de la página HTML.
El objetivo de tamaño de Google para esa carga útil insertada en línea, según la misma página:
procura mantener el contenido por encima del pliegue por debajo de 14 KB (comprimido),
para que quepa en la primera ida y vuelta de red. Considera esa cifra como una
orientación de transporte histórica más que como una especificación atemporal — la página de origen data de 2019 y
es anterior al amplio despliegue actual de HTTP/2 and HTTP/3, y ambos cambian los cálculos de la
primera ida y vuelta. Sigue siendo la cifra que cita la propia documentación de Google, pero si
estás ajustando con precisión, verifícala frente a tu protocolo actual y el comportamiento de tu servidor
en lugar de tratar los 14 KB como una verdad absoluta.
Paso 2 — difiere el resto. El patrón que web.dev recomienda para
diferir el CSS no crítico es un
preload con un intercambio en onload además de una alternativa <noscript>:
<link rel="preload" href="styles.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="styles.css"></noscript>El consejo de web.dev para producción es
usar funciones para diferir CSS, como loadCSS, que encapsulan este comportamiento y funcionan bien en todos los navegadores
en lugar de implementar el intercambio manualmente. Si, en cambio, lo difieres con JavaScript, web.dev
señala que
esperar a que se ejecute JavaScript antes de cargar el CSS no crítico puede causar retrasos en el renderizado cuando los usuarios se desplazan —
por eso se usa preload para iniciar la descarga antes.
Herramientas. Rara vez extraes el CSS crítico a mano. La implementación de referencia de Google es el
paquete de npm critical
(Addy Osmani) — “a tool that extracts, minifies and inlines above-the-fold CSS.”
(traducción) «una herramienta que extrae, minifica e inserta en línea el CSS de la parte visible sin desplazamiento».
Las alternativas incluyen Penthouse y CriticalCSS, además de una gran cantidad de generadores SaaS/plugin
para WordPress y Shopify. Para encontrar las reglas críticas tú mismo, Google
te dirige a
la pestaña Coverage de Chrome DevTools para identificar CSS y JS no críticos.
Si estás usando un plugin o generador (WP Rocket, Autoptimize y similares), no tomes el recorrido por la interfaz de usuario de un proveedor o una captura de pantalla de la puntuación antes/después como una garantía de la plataforma — esas páginas mezclan libremente versiones del producto y resultados de sitios específicos, y las diferencias de puntuación no se reproducen de forma independiente. Antes de confiar en uno en producción: confirma el comportamiento con la documentación actual del plugin y el número de versión, y somételo a la misma matriz de pruebas que usarías para una implementación manual — cargas en frío y repetidas, tus puntos de ruptura/temas/estados reales y tu política CSP si usas una.
Ten en cuenta que el CSS crítico es solo una de las soluciones para el CSS que bloquea el renderizado. Las otras son delimitar el alcance de las hojas de estilo con el atributo media (para que se descarguen pero no bloqueen el pintado) y, desde el principio, simplemente enviar menos CSS; de hecho, el artículo sobre recursos que bloquean el renderizado de web.dev se apoya en el enfoque del atributo media en lugar de la inclusión en línea, por lo que Google tiene más de una recomendación oficial dependiendo del documento que leas.
La postura real de Google (la columna vertebral de la precisión)
Esta es la parte que casi todos los artículos de la competencia ocultan, y es la razón principal por la que quería escribir este artículo. Google no presenta el CSS crítico como una recomendación predeterminada. Su codelab es directo sobre el riesgo: este codelab describe una técnica avanzada de rendimiento que puede mejorar el rendimiento, pero también puede provocar errores si no se implementa correctamente. Y, dos veces en su documentación, Google dice que la mayoría de los sitios no deberían tomarse la molestia: la mayoría de los sitios deberían poder alcanzar todos nuestros objetivos de rendimiento recomendados sin implementar esta técnica.
Evidence for this claim web.dev presents critical CSS as an advanced technique that can cause bugs and says most sites can meet performance targets without it. Scope: web.dev codelab guidance; not a universal recommendation. Confidence: high · Verified: web.dev: Extract and inline critical CSSIncluso el beneficio viene con una advertencia. web.dev señala que la inserción en línea también tiene desventajas porque impide que el navegador almacene en caché el CSS para reutilizarlo en cargas de página posteriores, por lo que conviene usarla con moderación — y, sobre excederse, si todo se prioriza, entonces nada se prioriza. Si insertas demasiado en línea, inflas el HTML que estás intentando entregar rápidamente.
Así que el enfoque honesto es: el CSS crítico es una técnica real, documentada y a veces potente — y una técnica avanzada, opcional y de último recurso que, según Google, la mayoría de los sitios no necesitan para alcanzar sus objetivos. Trátalo así.
Las compensaciones reales
Los ingenieros de rendimiento independientes han sido las voces más fuertes aquí, y coinciden con las propias advertencias de Google.
Pérdida de caché en visitas repetidas. Matt Zeunert de DebugBear lo afirma sin rodeos: el CSS crítico no puede reutilizarse entre distintas cargas de página en tu sitio web; por eso las vistas posteriores pueden ser más lentas de lo que serían sin CSS crítico. Una hoja de estilo externa normal se almacena en caché una vez y se reutiliza en todas partes; el CSS en línea se vuelve a descargar dentro de cada respuesta HTML.
Riesgo de mantenimiento y regresión. El artículo contrario de Harry Roberts es la opinión más citada, y su advertencia es que adaptar el CSS crítico a posteriori es difícil y propenso a errores: una vez que has identificado el CSS como tu cuello de botella, «you need to keep it that way… One wrong decision can undo everything.» (traducción) «tienes que mantenerlo así… Una decisión equivocada puede deshacerlo todo.» No hay revalidación automática — un cambio de plantilla o diseño puede romper silenciosamente tu división de CSS crítico/no crítico.
Condiciones de carrera en el aplazamiento. Roberts también señala que el intercambio preload/onload
puede salir mal por los tiempos:
si tardas 1 s en analizar tu <head> y 0,5 s en obtener de forma asíncrona el CSS no crítico, el CSS volverá a convertirse en un archivo síncrono 0,5 s antes de que estuvieras listo para continuar.
Y cuando el CSS no crítico llega tarde, te arriesgas a un destello de contenido sin estilo y
a un cambio de diseño.
A menudo ni siquiera es el cuello de botella. La tesis central de Roberts: El CSS crítico solo ayuda si el CSS es tu mayor cuello de botella que bloquea el renderizado y, con bastante frecuencia, no lo es. DebugBear coincide: antes de insertarlo en línea, comprueba si el CSS es realmente el problema, porque si aún tienes código JavaScript que bloquea el renderizado, es poco probable que insertar el CSS en línea ayude, y «often it’s not the most impactful optimization.» (traducción) «a menudo no es la optimización de mayor impacto.»
Minas terrestres en producción: CSP, estado y fuentes
Tres modos de fallo más que no aparecen en una demo rápida, pero que muerden cuando esto está en producción:
Una política CSP puede bloquear directamente tu bloque <style> en línea. Una política
style-src de Content-Security-Policy puede bloquear un bloque <style>
crítico en línea a menos que la política lo permita explícitamente, normalmente mediante un nonce o
un hash coincidente. MDN documenta los casos de infracción y los mecanismos de nonce/hash.
Recurrir a unsafe-inline para hacer desaparecer el error de la consola debilita la política
en todo el sitio y no es la solución predeterminada: integra la generación de nonce/hash en
la herramienta que extrae el CSS crítico y comprueba si hay infracciones en la consola del navegador después
de publicar.
«Sin usar en la captura» no es lo mismo que «seguro de diferir». La pestaña Coverage te indica qué CSS se ejecutó durante una ejecución registrada. Una división segura tiene que preservar el orden de cascada y las reglas necesarias para tus breakpoints responsive, las variantes de tema, el contenido personalizado, los estados de foco, los menús/modales abiertos y los estados de error, no solo lo que resultó renderizado en esa única pasada. Roberts plantea la misma pregunta desde otro ángulo: ¿qué viewport y qué elementos fuera de pantalla o con los que no se interactuó (dropdowns, flyouts) necesita cubrir realmente tu extracción?
No resuelve tu problema de fuentes, y puede añadir trabajo de renderizado.
Insertar en línea los estilos de los elementos no hace por sí mismo que una
fuente web se descubra antes ni garantiza que el texto se renderice a tiempo; el
descubrimiento de fuentes, preload, font-display y las métricas de fallback
son dependencias separadas que el CSS crítico no toca. Y aplicar un subconjunto
en línea seguido de una hoja de estilos más grande puede significar recálculo de
estilos, layout y pintado adicionales; reducir la demora de descarga no
significa automáticamente menos trabajo total de renderizado. Mide ambos, no
solo la cascada de red.
Cómo diagnosticar si siquiera lo necesitas
Dado todo lo anterior, no empieces por «añadir CSS crítico»; empieza por «confirmar que el CSS es mi cuello de botella de renderizado» y no te detengas ahí. Cuatro condiciones, y todas tienen que cumplirse antes de que valga la pena hacerlo:
1. El CSS es un bloqueador comprobado, no una suposición.
- Abre el informe de PageSpeed Insights / Lighthouse. A partir de Lighthouse 13, la antigua auditoría «Eliminate render-blocking resources» se ha integrado en el insight Render-blocking requests — por lo que los artículos antiguos que hacen referencia al nombre anterior de la auditoría están desactualizados.
- Usa la pestaña Coverage de Chrome DevTools para ver cuánto de tu CSS (y JS) realmente no se usa en el primer renderizado.
- Separa las causas. Si tu cuello de botella es JavaScript que bloquea el renderizado, o una respuesta del servidor (TTFB) lenta, insertar CSS en línea no lo solucionará — estarías optimizando lo equivocado.
2. Puedes construir una cobertura de extracción realmente estable — en todos tus breakpoints reales, temas, personalización y estados interactivos, no en una sola captura de pantalla de escritorio (consulta las minas mencionadas arriba).
3. El costo de las vistas repetidas y de CSP es aceptable. El CSS en línea no se almacena en caché, así que
sopesa eso frente a la profundidad típica de tus sesiones. Si aplicas una política CSP
style-src, la generación de nonce/hash debe integrarse en el pipeline
antes de lanzar esto, no descubrirse después.
4. Realmente lo mantendrás. Regenéralo en cada cambio de plantilla o diseño y vuelve a ejecutar la matriz de pruebas completa — cargas en frío y repetidas, cada ruta/viewport/ estado que admitas — no una sola verificación visual después del despliegue.
Si se cumplen las cuatro condiciones, el CSS crítico vale el costo de mantenimiento. Si alguna
no se cumple, las soluciones más económicas — eliminar el CSS no utilizado, minificar y limitar las hojas de estilo no críticas
con media — son una opción mejor.
Un problema actual de 2026
Hay una complicación vigente que vale la pena señalar: existe un informe abierto y sin resolver que indica que el patrón exacto
<link rel="preload" as="style"> que la documentación de Google recomienda para diferir el CSS
comenzó a marcarse nuevamente como un recurso que bloquea el renderizado después de una actualización puntual de Lighthouse/PSI.
GitHub issue #17031
documenta que el CSS precargado aparecía en verde en Lighthouse 13.0.1 y luego se marcaba como
un recurso que bloquea el renderizado en 13.3.0. En el momento de escribir esto no hay una resolución pública de Google,
así que trátalo como un tema en desarrollo — pero la lección práctica se mantiene: si PSI marca tu
CSS diferido correctamente, la propia auditoría puede estar equivocada, así que lee el informe
críticamente en lugar de asumir que tu implementación está rota.
¿El CSS crítico ayuda al SEO?
Indirectamente, y de forma modesta. Hay dos cosas que distinguir:
- El CSS no es una señal de posicionamiento directa. Sobre los nombres de clase CSS, Martin Splitt, de Google, ha dicho lo siguiente: “I don’t think we care because the CSS class names are just that.” (traducción) «No creo que nos importe, porque los nombres de clase CSS son solo eso». Esto se refiere específicamente a los nombres de clase, pero refuta el mito más amplio de que tus decisiones de CSS se interpretan como un factor de posicionamiento.
- La velocidad es una señal (pequeña), a través de Core Web Vitals (Métricas web esenciales). El CSS crítico puede mejorar el primer pintado, lo que puede mejorar el LCP, que es una métrica de Core Web Vitals (Métricas web esenciales) que alimenta las señales de experiencia de página de Google. Esa es toda la conexión con el SEO: un pintado más rápido, no una bonificación por la técnica en sí.
Así que la justificación SEO del CSS crítico es exactamente tan sólida como su impacto en el LCP de tu sitio, el cual, según Google y la comunidad de rendimiento, frecuentemente es menor de lo que sugerirían las herramientas de los proveedores que lo venden.
¿Y qué hay de Bing?
Nada específico de Bing. A diferencia de Google —que tiene múltiples páginas en web.dev y un codelab sobre la técnica—, no pude encontrar ningún documento dedicado de Bing/Microsoft que aborde el CSS crítico. Se aplica la guía general de experiencia de página de Bing (mantén las cosas rápidas, mantén el contenido crítico accesible), pero no existe un equivalente en Bing del codelab de CSS crítico de web.dev. Cualquiera que te diga que Bing tiene una recomendación específica de CSS crítico se lo está inventando.
Dónde encaja esto
Esta página se ubica bajo el hub de Critical Rendering Path — el CSS crítico es una táctica para acortar esa ruta — y es la página hermana práctica de los recursos que bloquean el renderizado. El beneficio, cuando lo hay, se refleja en Largest Contentful Paint (LCP), First Contentful Paint (FCP), y el conjunto más amplio de Core Web Vitals (Métricas web esenciales). Para una visión más amplia del rendimiento, consulta el clúster de rendimiento web.
Resumen con IA
Una versión condensada de la versión Advanced:
- CSS crítico = extraer + insertar inline + aplazar. Extrae el CSS por encima
del pliegue, insértalo inline en el
<head>y carga el resto de la hoja de estilos de forma asíncrona. Funciona porque el CSS bloquea el renderizado por defecto (“the browser won’t render any processed content until the CSSOM is constructed” (traducción) «el navegador no renderizará ningún contenido procesado hasta que se construya el CSSOM»). No existe una altura universal por encima del pliegue: el dispositivo, la orientación, el zoom y el estado de la página cambian lo que es «crítico». - Implementación: inserta los estilos críticos inline en un bloque
<style>; aplaza el resto con el intercambio derel="preload"+onloady un fallback<noscript>(oloadCSS). Mantén la carga incrustada por debajo de ~14 KB comprimidos: una recomendación de Google con fecha de 2019, todavía citada con frecuencia, pero que conviene verificar frente al comportamiento actual del protocolo. Herramientas:critical(Addy Osmani), Penthouse, generadores de plugins (verifica de forma independiente las afirmaciones específicas por versión de cada plugin). Encuentra las reglas críticas en la pestaña Coverage de DevTools. - La postura de Google (eje de precisión): es una técnica avanzada y opcional, no la recomendación por defecto. Google: “Most sites should be able to achieve all of our recommended performance targets without implementing this technique,” (traducción) «La mayoría de los sitios deberían poder alcanzar todos nuestros objetivos de rendimiento recomendados sin implementar esta técnica», y el codelab advierte que “can also lead to bugs if not implemented properly.” (traducción) «también puede provocar errores si no se implementa correctamente».
- Compensaciones: el CSS incrustado no se almacena en caché entre cargas
de página (las visitas repetidas pueden ser más lentas — DebugBear); la
división crítico/no crítico se rompe cuando cambian las plantillas, los temas
o los estados (Harry Roberts: “One wrong decision can undo
everything” (traducción) «Una decisión equivocada puede deshacerlo todo»);
una política CSP
style-srcpuede bloquear el bloque inline sin un nonce/hash; el intercambio preload/onload puede provocar una condición de carrera o causar FOUC/CLS; y no corrige por sí sola los tiempos de carga de fuentes. - Primero diagnostica, cuatro filtros: confirma que el CSS —no JavaScript ni el tiempo de respuesta del servidor— es el verdadero cuello de botella que bloquea el renderizado (Roberts, DebugBear); confirma que la cobertura de extracción es estable en todos los breakpoints/temas/estados; confirma que el coste en vistas repetidas y en CSP es aceptable; confirma que realmente lo mantendrás y lo volverás a probar. Si JS está bloqueando, insertar CSS inline no ayudará.
- El impacto en el SEO es indirecto: el CSS no es una señal de ranking directa (Martin Splitt sobre los nombres de clase); la única palanca es un pintado más rápido → LCP → Core Web Vitals (Métricas web esenciales).
- No existe orientación específica para Bing. Y ten en cuenta una regresión activa de 2026 en Lighthouse 13.3.0 (issue #17031) que marca CSS correctamente aplazado como un recurso que bloquea el renderizado.
Documentación oficial
Documentación de fuentes primarias sobre CSS crítico y recursos que bloquean el renderizado.
Google / web.dev
- Extraer el CSS crítico — la definición central, el mecanismo de insertar en línea y diferir, el objetivo de ~14 KB y la advertencia sobre el almacenamiento en caché de «úsalo con moderación».
- Extraer e insertar en línea el CSS crítico con Critical (codelab) — práctica con la herramienta
critical; las advertencias «técnica avanzada… también puede provocar errores» y «la mayoría de los sitios… sin implementar esta técnica». - Diferir el CSS no crítico — el patrón de diferimiento con
rel="preload"+onloady la recomendación deloadCSS. - Precargar recursos críticos — por qué precargar el CSS diferido y la advertencia sobre el retraso del desplazamiento al diferir JS.
- CSS que bloquea el renderizado — por qué el CSS bloquea el renderizado; plantea la solución en torno al atributo
mediaen lugar de la inserción en línea. - Entender el critical path — dónde encaja el CSS crítico en el panorama más amplio del Critical Rendering Path.
Google / Chrome para desarrolladores (Lighthouse)
- Elimina los recursos que bloquean el renderizado — la auditoría detrás de este trabajo: inserta los estilos críticos en línea, difiere los no críticos y usa la pestaña Coverage. (Nota: se trasladó al insight “Render-blocking requests” a partir de Lighthouse 13.)
- Optimiza la entrega de CSS (heredado/obsoleto) — el documento original de PageSpeed Insights que popularizó el consejo sobre “CSS crítico”; útil por su valor histórico, no como guía actual.
MDN
- Content-Security-Policy: style-src — documenta cómo una política
style-srcde CSP bloquea los bloques<style>en línea sin un nonce o hash coincidente, y por quéunsafe-inlineno es la solución. La mina terrestre en producción que la mayoría de las guías de CSS crítico pasan por alto.
Bing / Microsoft
- No existe documentación sobre “CSS crítico” específica de Bing. Se aplica la orientación general de rendimiento/UX de Bing (consulta Site Scan de Bing Webmaster Tools), pero no hay un equivalente de Bing al codelab de CSS crítico de web.dev.
Citas de la fuente
Declaraciones oficiales de Google/web.dev, de Martin Splitt de Google y de expertos en rendimiento del sector identificados por su nombre. Cada enlace de web.dev/Chrome que admite un fragmento de texto es un enlace directo al pasaje citado.
Google / web.dev — qué es y cómo funciona
- “Critical CSS is a technique that extracts the CSS for above-the-fold content in order to render content to the user as fast as possible.” (traducción) «CSS crítico es una técnica que extrae el CSS para el contenido de la parte superior de la página con el fin de renderizar el contenido al usuario lo más rápido posible.» Ir a la cita
- “Inlining extracted styles in the
<head>of the HTML document eliminates the need to make an additional request to fetch these styles. The remainder of the CSS can be loaded asynchronously.” (traducción) «Insertar en línea los estilos extraídos en el<head>del documento HTML elimina la necesidad de realizar una solicitud adicional para obtener estos estilos. El resto del CSS puede cargarse de forma asíncrona.» Ir a la cita - “By default, CSS is treated as a render-blocking resource, which means that the browser won’t render any processed content until the CSSOM is constructed.” (traducción) «Por defecto, el CSS se trata como un recurso que bloquea el renderizado, lo que significa que el navegador no renderizará ningún contenido procesado hasta que se construya el CSSOM.» Ir a la cita
Google / web.dev — es avanzado y opcional (la columna vertebral de la exactitud)
- «Most sites should be able to achieve all of our recommended performance targets without implementing this technique.» (traducción) «La mayoría de los sitios deberían poder alcanzar todos nuestros objetivos de rendimiento recomendados sin implementar esta técnica.» — web.dev, codelab Extraer e insertar en línea CSS crítico. Leer el codelab
- “This codelab describes an advanced performance technique that can improve performance, but can also lead to bugs if not implemented properly.” (traducción) «Este codelab describe una técnica avanzada de rendimiento que puede mejorar el rendimiento, pero que también puede provocar errores si no se implementa correctamente.» Leer el codelab
- Sobre el exceso de inline: “If everything is prioritized then nothing is.” — web.dev, Extract critical CSS. (traducción) «Si todo es prioritario, entonces nada lo es.» Leer el artículo
Google / Chrome (Lighthouse) — la propia prescripción de la auditoría
- “Inline critical styles required for the first paint inside a
<style>block at theheadof the HTML page.” (traducción) «Inserta en línea los estilos críticos necesarios para el primer renderizado dentro de un bloque<style>en elheadde la página HTML.» Leer la auditoría
Martin Splitt, Google Search Relations (vía Search Engine Journal)
- Sobre si los nombres de clase CSS son una señal de posicionamiento: “I don’t think it does. I don’t think we care because the CSS class names are just that.” (traducción) «No creo que influya. No creo que nos importe, porque los nombres de clase CSS son solo eso.» Leer la cobertura
Harry Roberts, consultor independiente de rendimiento web (csswizardry.com)
- “Critical CSS only helps if CSS is your biggest render-blocking bottleneck, and quite often, it isn’t.” (traducción) «El CSS crítico solo ayuda si el CSS es tu mayor cuello de botella que bloquea el renderizado y, muy a menudo, no lo es.» Leer el artículo
- “Retrofitting Critical CSS is difficult and error prone.” (traducción) «Adaptar el CSS crítico a posteriori es difícil y propenso a errores.» — y, en cuanto al mantenimiento, “One wrong decision can undo everything.” (traducción) «Una sola decisión equivocada puede deshacerlo todo.» Leer el artículo
Matt Zeunert, fundador de DebugBear
- “critical CSS can’t be re-used between different page loads on your website. So subsequent page views can actually be slower than they would be without critical CSS.” (traducción) «el CSS crítico no puede reutilizarse entre distintas cargas de página en tu sitio web. Por lo tanto, las vistas de página posteriores pueden ser en realidad más lentas de lo que serían sin CSS crítico.» Leer el artículo
- “Before deciding to inline critical CSS, check if it’s actually the bottleneck for rendering content on your website. For example, if you still have render-blocking JavaScript code, inlining CSS is unlikely to help.” (traducción) «Antes de decidir insertar el CSS crítico en línea, comprueba si realmente es el cuello de botella para renderizar el contenido de tu sitio web. Por ejemplo, si todavía tienes código JavaScript que bloquea el renderizado, es poco probable que insertar el CSS en línea ayude.» Leer el artículo
#:~:text=. La frase de Martin Splitt se transmite
a través de la cobertura de Search Engine Journal, no de una transcripción primaria
de Google, y trata específicamente sobre los nombres de clases CSS. Verifica cualquier
cita con su fuente en vivo antes de considerarla definitiva. ¿Deberías implementar CSS crítico?
Dado que Google, Harry Roberts y DebugBear dicen “most sites don’t need this,” (traducción) «la mayoría de los sitios no necesitan esto», el artefacto útil aquí es un árbol de decisión de ¿debería implementarlo? — no una guía paso a paso. Recórrelo de arriba hacia abajo.
1. ¿PageSpeed Insights / Lighthouse llega a marcar recursos que bloquean el renderizado?
- No → No lo hagas. Estás resolviendo un problema que no tienes.
- Sí → Continúa.
2. ¿El recurso que bloquea el renderizado es CSS, o es JavaScript / un servidor lento (TTFB)?
- JavaScript o TTFB → Arregla eso primero. Insertar CSS en línea no ayudará si JS está bloqueando o tu servidor es lento (DebugBear). Vuelve solo si después CSS sigue siendo el cuello de botella.
- CSS → Continúa.
3. ¿Puedes alcanzar primero tus objetivos de rendimiento con soluciones de CSS más económicas? Prueba estas opciones antes de hacer inlining, en este orden:
- Elimina el CSS sin usar (pestaña Coverage).
- Minifica y comprime la hoja de estilos.
- Acota las hojas de estilo no críticas con el atributo
mediapara que se descarguen pero no bloqueen el pintado (la solución preferida del propio web.dev en su documento sobre CSS que bloquea el renderizado). - ¿Sigues sin alcanzar los objetivos? → Continúa.
4. ¿Puedes comprometerte a mantener la separación crítico/no crítico —en todos los
temas, estados y CSP?
El CSS crítico se rompe silenciosamente cuando cambian las plantillas (“one wrong decision can undo
everything”
(traducción) «una decisión equivocada puede deshacerlo todo»), y que el CSS quede «sin usar en la captura» durante una sola ejecución de prueba no es lo mismo que
«poder aplazarlo con seguridad» en todas las variantes de tu tema, el contenido personalizado y los estados abierto/focus/
error. Si aplicas una política CSP style-src, la generación de nonce/hash tiene que ser
parte del pipeline, no una ocurrencia de última hora.
- No / es una plantilla que cambia rápido, o no puedes cubrir la matriz de estados → Es probable que el costo de mantenimiento supere el beneficio. Opta por las soluciones más económicas anteriores.
- Sí, es una plantilla estable, puedes cubrir los estados reales y lo regenerarás cuando haya cambios → Continúa.
5. ¿Tienes muchas visitas repetidas por sesión? El CSS inlineado no se almacena en caché, por lo que la segunda/tercera vista de página pierde la ventaja de la caché y puede ser más lenta (DebugBear).
- Sí, sesiones profundas de múltiples páginas → Sopesa la penalización de las visitas repetidas; considera inlinear solo en las plantillas de aterrizaje/entrada.
- Principalmente entradas de una sola página (p. ej., páginas de contenido/aterrizaje) → Continúa.
Si sigues aquí: has confirmado que el CSS es el cuello de botella, has agotado las
soluciones más económicas, tienes una plantilla estable y tráfico de entrada única. Ahora el CSS crítico
sí vale la pena. Genéralo con una herramienta (critical, Penthouse, un plugin), mantén la
carga inlineada por debajo de ~14 KB comprimidos y vuelve a validar después de cada cambio de plantilla.
CSS crítico — lista de verificación de implementación
Comienza esto solo después de haber confirmado (pestaña Cobertura / PageSpeed) que el CSS es realmente tu cuello de botella que bloquea el renderizado.
- Confirmado que el cuello de botella es el CSS, no JavaScript que bloquea el renderizado ni una respuesta del servidor (TTFB) lenta.
- Probadas primero las soluciones más económicas — eliminado el CSS sin usar, minificado/comprimido
y restringidas las hojas de estilo no críticas con
media— y aun así no se alcanzan los objetivos. - Extraído el CSS crítico de la parte visible sin scroll (mediante
critical, Penthouse o un generador), no toda la hoja de estilo — comprobado frente a tus breakpoints, temas y estados reales, no frente a una sola captura de pantalla de escritorio. - Insertado el CSS crítico en un bloque
<style>dentro del<head>. - Si aplicas una política CSP
style-src, integrada la generación de nonce/hash en el pipeline y confirmado que no hay violaciones en la consola bajo la política real de producción. - Mantenido el payload insertado en línea por debajo de ~14 KB comprimidos — una recomendación de Google fechada en 2019, todavía citada pero que conviene verificar frente a tu protocolo actual (cabe en el primer viaje de ida y vuelta).
- Diferida la hoja de estilo completa de forma asíncrona (
rel="preload"+ intercambio enonload, oloadCSS). - Añadida la hoja de estilo de respaldo con
<noscript>para usuarios con JS desactivado. - Comprobado que no se produzca FOUC / cambio de diseño (layout shift) cuando llega el CSS diferido (vigila el CLS).
- Vuelto a ejecutar PageSpeed/Lighthouse — y leído con espíritu crítico el resultado de recursos que bloquean el renderizado (un archivo CSS diferido correctamente puede marcarse erróneamente; consulta el issue #17031).
- Configurado un recordatorio de revalidación: volver a generar el CSS crítico después de cualquier cambio de plantilla o de diseño, ya que la división se rompe de forma silenciosa.
- Realizada una comprobación de cordura del rendimiento en visitas repetidas — el CSS en línea no se almacena en caché, así que confirma que las segundas visualizaciones de página no han sufrido regresiones.
Antipatrones de CSS crítico
Los errores recurrentes — la mayoría de ellos provienen de tratar una técnica avanzada y opcional como una técnica predeterminada.
Recurrir a esta técnica antes de diagnosticar. El error más común. Si lo que bloquea el renderizado es JavaScript o un servidor lento, insertar CSS en línea no hace nada — si todavía tienes código JavaScript que bloquea el renderizado, es poco probable que insertar CSS en línea ayude. Primero confirma que el CSS es el cuello de botella.
Insertar todo en línea. Volcar toda tu hoja de estilos en línea infla el HTML que intentas entregar rápidamente. web.dev: si todo se prioriza, entonces nada se prioriza. El CSS crítico es CSS mínimo para la parte superior de la página, no «todo, en línea».
Ignorar el costo de las visitas repetidas. El CSS insertado en línea no se almacena en caché, por lo que las páginas vistas posteriores pueden de hecho ser más lentas de lo que serían sin CSS crítico. Aplicarlo en todo el sitio a un recorrido profundo de varias páginas puede hacer que la sesión general sea más lenta, no más rápida.
Configurar y olvidar. No hay revalidación automática. Como advierte Harry Roberts, una decisión incorrecta puede deshacerlo todo — un cambio de plantilla rompe silenciosamente la división y ahora estás entregando CSS incorrecto o incompleto para la parte superior de la página.
Tratar una advertencia de PSI como prueba de que el CSS es el problema. La auditoría marca recursos que bloquean el renderizado; no demuestra que CSS sea tu cuello de botella, e incluso puede marcar erróneamente CSS correctamente diferido (consulta la regresión en producción de Lighthouse 13.3.0, issue #17031). Lee el informe, no te limites a reaccionar ante la puntuación.
Esperar un impulso directo de SEO. El CSS crítico no es un factor de posicionamiento. El CSS no se lee como una señal de posicionamiento (Martin Splitt); la única palanca es un pintado más rápido → LCP → Core Web Vitals (Métricas web esenciales), y solo si la técnica realmente mejora tu LCP.
Publicarlo sin comprobar la CSP. Si tu sitio envía una cabecera Content-Security-Policy
style-src, un bloque <style> en línea sin un nonce o hash coincidente
se bloquea por completo —
y recurrir a unsafe-inline para silenciar el error debilita la política de
todo el sitio en lugar de corregir el pipeline.
Extraerlo de un solo tema, estado o ruta y darlo por terminado. “Sin usar” en una grabación de la pestaña Coverage no es lo mismo que “seguro de diferir” en tu tema oscuro, tu contenido personalizado o un modal abierto: una división que solo contempla el estado predeterminado publicará estilos rotos en la parte superior de la página para todos los demás.
Herramientas para el CSS crítico
Extracción / generación
critical(Addy Osmani) — el paquete npm de referencia de Google; “extracts, minifies and inlines above-the-fold CSS.” (traducción) «extrae, minifica e inserta en línea el CSS de la parte superior de la página». Es el que utiliza el propio codelab de Google.- Penthouse — un generador de CSS de ruta crítica muy utilizado, que a menudo se integra en los pipelines de compilación.
- CriticalCSS y varios generadores SaaS / de plugins — para implementadores no técnicos en WordPress, Shopify y similares (WP Rocket, corewebvitals.io y otros). Resultan convenientes, pero las mismas contrapartidas y el riesgo de mantenimiento siguen aplicándose.
Diagnóstico (haz esto primero)
- Chrome DevTools — pestaña Coverage — la propia recomendación de Google para identificar CSS y JS no críticos; muestra qué parte de cada archivo no se utiliza en el primer pintado.
- PageSpeed Insights / Lighthouse — la auditoría de recursos que bloquean el renderizado (ahora el insight “Render-blocking requests” en Lighthouse 13). Te dice si tienes un problema de recursos que bloquean el renderizado, pero no indica automáticamente que el CSS sea la causa.
- WebPageTest — lee el diagrama de cascada y la línea “Start Render” para ver exactamente qué recursos retrasan el primer pintado.
- DebugBear — monitoreo, además de una explicación clara de las contrapartidas entre el almacenamiento en caché y los cuellos de botella.
Diagnostica los problemas de CSS crítico por síntoma
La página muestra contenido sin estilo por un instante
Causa probable: el conjunto crítico extraído está incompleto o la hoja de estilos diferida llega demasiado tarde. Solución: restaura las reglas de diseño y tipografía necesarias para la primera ventana gráfica y, a continuación, vuelve a generarlo con respecto al estado real de la plantilla. Confirmación: un filmstrip en frío con limitación de ancho de banda muestra estilos desde el primer pintado.
La ventana gráfica inicial se ve bien, pero el contenido inferior se rompe
Causa probable: el paquete no crítico no se cargó o su patrón de carga compite con la inicialización de la página. Solución: verifica la solicitud de la hoja de estilos y el comportamiento de respaldo (fallback) sin depender únicamente de la ruta onload. Confirmación: el desplazamiento y la navegación revelan contenido completamente estilizado con JavaScript retrasado.
El CSS crítico ayuda a una plantilla y perjudica a otra
Causa probable: se reutilizó un conjunto generado en diseños con distinto contenido de primera vista. Solución: limita el alcance de la extracción por plantilla o elimina la optimización cuando el coste de mantenimiento supere la ganancia. Confirmación: cada plantilla admitida supera la misma prueba visual de carga en frío.
Las vistas repetidas se vuelven más lentas
Causa probable: se insertó demasiado CSS en línea en cada respuesta HTML y se perdió el almacenamiento en caché normal de las hojas de estilos. Solución: reduce el conjunto crítico y compara las ganancias de la primera vista con el coste de transferencia y análisis (parsing) de las vistas repetidas. Confirmación: tanto los recorridos en frío como en caliente mejoran, o la compensación se acepta explícitamente.
Falta el bloque de estilos en línea o la consola muestra una infracción de CSP
Causa probable: una política style-src de Content-Security-Policy está bloqueando el bloque <style> en línea porque carece de un nonce o hash coincidente. Solución: integra la generación de nonce/hash en el flujo de extracción en lugar de relajar la política con unsafe-inline. Confirmación: la consola del navegador no muestra infracciones de CSP y el bloque en línea se renderiza bajo la política de producción real, no bajo una política local relajada.
Un tema, una variante personalizada o un estado interactivo se muestra sin estilo
Causa probable: la extracción solo capturó un tema, un estado de sesión cerrada/predeterminado o una ruta, y las reglas de cascada necesarias para otros estados se descartaron como «sin usar». Solución: vuelve a extraer contra estados representativos — tema oscuro/claro, contenido personalizado, estados de foco/apertura/error — y preserva su orden de cascada. Confirmación: cada estado admitido pasa la misma prueba visual de carga en frío, no solo el predeterminado.
Usa el marco de trabajo de diagnosticar, extraer, entregar y mantener
- Diagnostica: demuestra que el CSS está en la ruta crítica con un diagrama de cascada, una grabación de cobertura y una traza. Detente si el tiempo de servidor o JavaScript son la mayor limitación.
- Extrae: incluye solo las reglas necesarias para renderizar el primer viewport real. Prueba los estados responsive y el contenido dinámico en lugar de asumir que una sola captura de pantalla cubre la plantilla.
- Entrega: inserta en línea el pequeño conjunto crítico y carga la hoja de estilos completa con un patrón a prueba de fallos. Preserva la CSP, el orden del código fuente y el comportamiento de la caché.
- Mantén: regenera cuando cambien las plantillas o los tokens de diseño y, a continuación, ejecuta comprobaciones visuales y de rendimiento. El CSS crítico desactualizado es un defecto de producción, no un costo de configuración único.
El marco de trabajo convierte al CSS crítico en un sistema basado en evidencia. Omitir el paso de mantenimiento es la forma en que una ganancia inicial de velocidad se convierte más adelante en una regresión visual.
Hoja de referencia para decisiones de CSS crítico
| Pregunta | Señal | Acción |
|---|---|---|
| ¿El CSS está retrasando el primer pintado? | Las hojas de estilo están en la ruta crítica medida | Continúa el diagnóstico |
| ¿Otra fase es mayor? | TTFB o JavaScript dominan | Corrige eso primero |
| ¿El conjunto crítico es pequeño y estable? | Pocas reglas de la primera vista compartidas por la plantilla | Considera la extracción |
| ¿El primer pintado parpadea o se desplaza? | La pista de filmstrip o de Layout Shifts muestra una regresión | Restaura las reglas críticas para el diseño que faltan |
| ¿El paquete diferido falla de forma segura? | La página sigue siendo utilizable durante la carga retrasada | Valida en los recorridos compatibles |
| ¿El equipo puede regenerarlo? | La extracción forma parte de los lanzamientos de plantillas o CSS | Mantén la optimización |
| ¿El mantenimiento es manual y frágil? | Se publica un resultado obsoleto después de los cambios de diseño | Prefiere una reducción o división de CSS más simple |
Demuestra que un cambio de CSS crítico funcionó
Prueba visual del primer pintado
Prueba para ejecutar: captura un filmstrip en frío y con limitación antes y después del cambio en los puntos de quiebre compatibles. Resultado esperado: el contenido útil visible sin desplazamiento se pinta antes y se muestra con los estilos correctos desde su primer fotograma. Interpretación del fallo: el conjunto crítico está incompleto o el CSS no era el cuello de botella real. Ventana de supervisión: inmediata en ejecuciones repetidas. Activador de reversión: parpadeos, contenido faltante o nuevos cambios de diseño.
Prueba de hoja de estilo diferida
Prueba para ejecutar: inspecciona los paneles Network y Performance mientras se carga la hoja de estilos completa. Resultado esperado: el paquete no crítico ya no bloquea el primer pintado y aun así se aplica de manera fiable posteriormente. Interpretación del fallo: el patrón de carga sigue bloqueando o compite con la inicialización. Ventana de monitoreo: inmediata, incluida una solicitud deliberadamente lenta. Activador de reversión: los estilos completos no se aplican o los controles de la página quedan inutilizables.
Prueba de regresión de plantillas
Prueba para ejecutar: ejecuta comparaciones visuales para cada plantilla y punto de ruptura que use el conjunto crítico generado. Resultado esperado: no hay reglas de la primera vista faltantes u obsoletas. Interpretación del fallo: la cobertura de extracción no coincide con las variantes de plantillas de producción. Ventana de monitoreo: en cada lanzamiento relevante de CSS o de plantillas. Activador de reversión: cualquier plantilla de producción se renderiza de forma incorrecta.
Recursos que merecen tu tiempo
Mis ponencias
- Qué sigue para Page Experience — SMX Next 2021 (SlideShare) — donde divido el trabajo de CSS en un grupo temprano/crítico (eliminar el no utilizado → minificar → insertar el CSS crítico inline) y un grupo tardío/diferido, con el patrón preload/onload defer. La idea central de «cómo encaja todo» para esta página.
- Actualización de Page Experience — TMC junio de 2021 (SlideShare) — una presentación más amplia sobre Page Experience/Core Web Vitals (Métricas web esenciales) que cubre la priorización de recursos críticos, la carga diferida y la inserción de CSS crítico inline.
- Señales de búsqueda de Google para Page Experience — SMX Advanced 2021 (SlideShare) — el contexto de Page Experience/Core Web Vitals (Métricas web esenciales) en torno a esta época de recomendaciones.
Mis artículos relacionados
- Qué son las Core Web Vitals (Métricas web esenciales) y cómo mejorarlas — mi guía amplia sobre CWV (LCP/CLS/INP). No aborda el CSS crítico por su nombre, que es exactamente el vacío que llena esta página; léelos en conjunto para la parte de LCP relacionada con los recursos que bloquean el renderizado.
- La guía para principiantes de SEO técnico — donde el rendimiento y el renderizado encajan en el panorama general.
Oficial
- web.dev — Extraer CSS crítico, el codelab de Critical, Diferir CSS no crítico y CSS que bloquea el renderizado.
- Chrome for Developers — Eliminar los recursos que bloquean el renderizado (Lighthouse).
Desde el sector
- ¿CSS crítico? ¡No tan rápido! (Harry Roberts, csswizardry.com) — la lectura discrepante esencial: cuándo ayuda el CSS crítico, cuándo no, y las trampas de mantenimiento y de condiciones de carrera.
- Insertar CSS crítico en línea: ¿hace que tu sitio web sea más rápido? (Matt Zeunert, DebugBear) — el compromiso de almacenamiento en caché y el argumento “diagnose the bottleneck first” (traducción) «diagnosticar primero el cuello de botella», con mediciones.
- Cómo identificar y reducir los recursos que bloquean el renderizado (Abby Hamilton / Dentsu, vía Search Engine Journal) — el flujo de trabajo operativo para leer la auditoría de recursos que bloquean el renderizado.
- Google confirma que los nombres de clase CSS no influyen en el SEO (Matt G. Southern, Search Engine Journal) — Martin Splitt explica por qué el CSS no es una señal de clasificación directa.
- Incidencia #17031 de Lighthouse (GitHub) — el informe activo de 2026 sobre CSS precargado marcado como recurso que bloquea el renderizado después de una actualización puntual de PSI; útil cuando tu CSS correctamente diferido queda marcado.
- Entender el CSS crítico (Smashing Magazine, 2015) — la explicación clásica; anticuada, pero ofrece contexto histórico útil sobre cómo se planteó inicialmente la técnica.
Ponte a prueba: CSS crítico
Cinco preguntas rápidas sobre qué es el CSS crítico, cuándo usarlo y sus contrapartidas. Elige una respuesta para cada pregunta y luego compruébalas.
Registro de cambios
Actualizado el 8 ago 2026.
Resumen editorial y detalles registrados del cambio.Detalles del cambio
-
Los detalles del cambio están disponibles actualmente en inglés.
La comparación completa no está disponible: no se archivó una instantánea anterior para esta revisión.
Actualizado el 2 ago 2026.
Resumen editorial y detalles registrados del cambio.Detalles del cambio
-
Los detalles del cambio están disponibles actualmente en inglés.
La comparación completa no está disponible: no se archivó una instantánea anterior para esta revisión.
Actualizado el 17 jul 2026.
Resumen editorial y detalles registrados del cambio.Detalles del cambio
-
Los detalles del cambio están disponibles actualmente en inglés.
-
Los detalles del cambio están disponibles actualmente en inglés.
-
Los detalles del cambio están disponibles actualmente en inglés.
La comparación completa no está disponible: no se archivó una instantánea anterior para esta revisión.