feat(pagespeed): Fase 4.3 - Preload fuentes para reducir CLS
- Agregar preload de Poppins regular (400) y semibold (600) - Agregar fallback font con size-adjust para minimizar layout shift - Actualizar font stack con 'Poppins Fallback' Impacto esperado: CLS 0.133 → ~0.05-0.08 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -24,11 +24,12 @@
|
|||||||
--font-system: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
--font-system: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
||||||
Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
|
Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
|
||||||
|
|
||||||
/* Fuente primaria - Poppins según template y documentación */
|
/* Fuente primaria - Poppins con fallback ajustado (Fase 4.3 PageSpeed)
|
||||||
--font-primary: 'Poppins', sans-serif;
|
'Poppins Fallback' tiene size-adjust para reducir CLS durante font swap */
|
||||||
|
--font-primary: 'Poppins', 'Poppins Fallback', sans-serif;
|
||||||
|
|
||||||
/* Fuente para encabezados - Poppins según template */
|
/* Fuente para encabezados - Poppins con fallback ajustado */
|
||||||
--font-headings: 'Poppins', sans-serif;
|
--font-headings: 'Poppins', 'Poppins Fallback', sans-serif;
|
||||||
|
|
||||||
/* Fuente para código (monospace) */
|
/* Fuente para código (monospace) */
|
||||||
--font-mono: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono',
|
--font-mono: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono',
|
||||||
@@ -56,8 +57,22 @@
|
|||||||
Pesos incluidos: 400, 500, 600, 700
|
Pesos incluidos: 400, 500, 600, 700
|
||||||
Formato: WOFF2 (mejor compresión)
|
Formato: WOFF2 (mejor compresión)
|
||||||
|
|
||||||
|
Fase 4.3 PageSpeed: Fallback con size-adjust para reducir CLS
|
||||||
|
- size-adjust: 106% ajusta métricas del fallback para coincidir con Poppins
|
||||||
|
- Reduce layout shift cuando las fuentes se intercambian
|
||||||
|
|
||||||
============================================ */
|
============================================ */
|
||||||
|
|
||||||
|
/* Fallback font con métricas ajustadas para Poppins */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Poppins Fallback';
|
||||||
|
src: local('Arial'), local('Helvetica Neue'), local('Helvetica'), local('sans-serif');
|
||||||
|
size-adjust: 106%;
|
||||||
|
ascent-override: 105%;
|
||||||
|
descent-override: 35%;
|
||||||
|
line-gap-override: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Poppins';
|
font-family: 'Poppins';
|
||||||
src: url('../fonts/poppins-v24-latin-regular.woff2') format('woff2');
|
src: url('../fonts/poppins-v24-latin-regular.woff2') format('woff2');
|
||||||
|
|||||||
@@ -321,29 +321,44 @@ function roi_add_resource_hints( $urls, $relation_type ) {
|
|||||||
add_filter( 'wp_resource_hints', 'roi_add_resource_hints', 10, 2 );
|
add_filter( 'wp_resource_hints', 'roi_add_resource_hints', 10, 2 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Preload de recursos críticos para mejorar LCP
|
* Preload de recursos críticos para mejorar LCP y reducir CLS
|
||||||
*
|
*
|
||||||
* Preload indica al navegador que descargue recursos críticos lo antes posible.
|
* Preload indica al navegador que descargue recursos críticos lo antes posible.
|
||||||
* Útil para fuentes, CSS crítico, y imágenes hero.
|
* Útil para fuentes, CSS crítico, y imágenes hero.
|
||||||
*
|
*
|
||||||
|
* Fase 4.3 PageSpeed: Preload de fuentes .woff2 para reducir CLS
|
||||||
|
* - Sin preload: navegador descubre fuentes después de parsear CSS (tarde)
|
||||||
|
* - Con preload: fuentes se descargan en paralelo con CSS (temprano)
|
||||||
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
|
* @updated 1.0.22 Agregado preload de fuentes Poppins para reducir CLS
|
||||||
*/
|
*/
|
||||||
function roi_preload_critical_resources() {
|
function roi_preload_critical_resources() {
|
||||||
// NOTA: Fuentes Poppins se cargan desde Google Fonts (enqueue-scripts.php)
|
$theme_uri = get_template_directory_uri();
|
||||||
// No se necesita preload de fuentes locales
|
|
||||||
|
|
||||||
// Preload del CSS de Bootstrap (crítico para el layout)
|
// Preload del CSS de Bootstrap (crítico para el layout)
|
||||||
$bootstrap_css = get_template_directory_uri() . '/Assets/Vendor/Bootstrap/Css/bootstrap.min.css';
|
|
||||||
printf(
|
printf(
|
||||||
'<link rel="preload" href="%s" as="style">' . "\n",
|
'<link rel="preload" href="%s" as="style">' . "\n",
|
||||||
esc_url( $bootstrap_css )
|
esc_url( $theme_uri . '/Assets/Vendor/Bootstrap/Css/bootstrap.min.css' )
|
||||||
);
|
);
|
||||||
|
|
||||||
// Preload del CSS de fuentes (crítico para evitar FOIT/FOUT)
|
// Preload del CSS de fuentes (crítico para evitar FOIT/FOUT)
|
||||||
$fonts_css = get_template_directory_uri() . '/Assets/css/css-global-fonts.css';
|
|
||||||
printf(
|
printf(
|
||||||
'<link rel="preload" href="%s" as="style">' . "\n",
|
'<link rel="preload" href="%s" as="style">' . "\n",
|
||||||
esc_url( $fonts_css )
|
esc_url( $theme_uri . '/Assets/css/css-global-fonts.css' )
|
||||||
|
);
|
||||||
|
|
||||||
|
// Fase 4.3 PageSpeed: Preload de fuentes Poppins críticas
|
||||||
|
// Regular (400) - texto del body
|
||||||
|
printf(
|
||||||
|
'<link rel="preload" href="%s" as="font" type="font/woff2" crossorigin>' . "\n",
|
||||||
|
esc_url( $theme_uri . '/Assets/fonts/poppins-v24-latin-regular.woff2' )
|
||||||
|
);
|
||||||
|
|
||||||
|
// Semibold (600) - headings y elementos destacados
|
||||||
|
printf(
|
||||||
|
'<link rel="preload" href="%s" as="font" type="font/woff2" crossorigin>' . "\n",
|
||||||
|
esc_url( $theme_uri . '/Assets/fonts/poppins-v24-latin-600.woff2' )
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
add_action( 'wp_head', 'roi_preload_critical_resources', 2 );
|
add_action( 'wp_head', 'roi_preload_critical_resources', 2 );
|
||||||
|
|||||||
Reference in New Issue
Block a user