Mejorar la velocidad tema Astra de WordPress en PageSpeed Insights 馃殌

Estos son algunos de los errores que marca PageSpeed Insights y como solucionarlos para mejorar la performance de nuestra web, en este caso una Landing Page que queremos que vuele literalmente con un SEO técnico perfecto.

Mejorar velocidad WordPress para PageSpeed Insights

.

⚠️ Alertas o Warnings de PageSpeed y como solucionarlos

Estos son los tres errores más comunes que nos salen en PageSpeed Insights y veremos paso a paso como solucionar cada uno de ellos:

  • Warning ⚠️: Solicitudes que bloquean el renderizado
  • Warning ⚠️: Latencia de solicitud del documento Ahorro potencial de XXX ms
  • Warning ⚠️: Árbol de dependencia de red: Evita encadenar solicitudes críticas reduciendo la longitud de las cadenas.
  • Warning ⚠️: Considera el uso CSS de carga crítica para mejorar el rendimiento de la carga
  • Warning ⚠️: Reduce el contenido CSS que no se use Ahorro potencial
  • Warning ⚠️: Reduce el contenido JavaScript que no se use
  • Warning ⚠️: Usar tiempos de vida de caché eficientes

Veremos como solucionar estos Warnings de Pagespeed sobretodo si usas el Tema de Wordpress Astra, aunque es aplicable a otros temas ultra rápidos como GeneratePress u OceanWP

.

Solicitudes que bloquean el renderizado Pagespeed

Solicitudes que bloquean el renderizado⚠️

Para solucionar el error de «Solicitudes que bloquean el renderizado» y mejorar el rendimiento de la página, se puede implementar una optimización que posponga la carga de los recursos de JavaScript y CSS que están bloqueando el renderizado inicial de la página. Aquí te dejo algunas sugerencias sobre cómo hacerlo.

Solución para posponer recursos:

  1. Posponer la carga de jQuery y otros scripts: Puedes posponer la ejecución de jQuery y otros scripts hasta que el contenido crítico esté cargado, lo que reducirá el tiempo de renderizado inicial. El objetivo es cargar estos recursos de manera asíncrona o diferida para que no bloqueen el renderizado.

1. Posponer jQuery con el atributo defer 🛠️

En el archivo de tu plantilla o en el código del tema, puedes modificar la carga de los scripts para que utilicen el atributo defer, que pospone su ejecución hasta que el HTML inicial esté completamente procesado. Esto debería aplicarse a los archivos de JavaScript como jquery.min.js y jquery-migrate.min.js.

Por ejemplo, si estás trabajando directamente en el archivo header.php de tu plantilla de WordPress, deberías buscar las líneas que cargan estos scripts y modificarlas como sigue:

<!-- En tu archivo header.php o footer.php -->
<script src="https://tupaginawordpress.es/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" defer="defer"></script>
<script src="https://tupaginawordpress.es/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" defer="defer"></script>

2. Cargar CSS de manera asíncrona 🕒

Lo mismo se aplica a los archivos de estilo. Puedes cargar CSS de manera asíncrona para que no bloqueen la visualización inicial. Existen varios enfoques para esto, pero una forma sencilla de hacerlo es utilizando un plugin de optimización de rendimiento como Autoptimize, o bien agregar el siguiente código en tu archivo functions.php para cargar el CSS de manera asíncrona.

Código para posponer CSS:

function wp_defer_css($tag, $handle) {
// Asegúrate de que el archivo CSS sea el que quieres posponer
if ('wp-block-library' !== $handle) {
return $tag;
}
return str_replace("rel='stylesheet'", "rel='stylesheet' media='print' onload=\"this.media='all'\"", $tag);
}

add_filter('style_loader_tag', 'wp_defer_css', 10, 2);

3. Uso de un plugin de optimización de rendimiento 🧩

Si no quieres hacer cambios manuales en el código de la plantilla, puedes usar un plugin como Autoptimize o WP Rocket para hacer estas optimizaciones de manera automática.

Autoptimize:

  • Minimiza y concatena scripts y estilos. ☑️
  • Pospone la carga de JavaScript. ☑️
  • Optimiza el CSS crítico. ☑️

En Autoptimize, puedes activar la opción para posponer jQuery y otros scripts. Solo ve a la configuración del plugin y marca las opciones para «Defer» o «Asynchronous» en los recursos que están causando el bloqueo de renderizado.

WP Rocket:

Si utilizas WP Rocket, también puedes habilitar las opciones de «Cargar JS de forma diferida» o «Posponer JavaScript», lo que retrasará la ejecución de los scripts hasta que el contenido visible haya cargado. También puedes optimizar el CSS crítico con la opción «Optimizar el CSS».

4. Uso de «critical CSS» (CSS crítico)

Una técnica avanzada es extraer el CSS crítico, que es el conjunto mínimo de reglas CSS necesarias para el primer renderizado de la página, y cargarlo de forma inmediata. El resto del CSS puede cargarse de manera diferida. Este proceso se puede hacer manualmente, pero lo más sencillo es usar un plugin como WP Rocket o Autoptimize, que lo genera automáticamente para ti.

5. Eliminar la dependencia de jQuery (si es posible)

Si no es necesario que tu sitio dependa de jQuery para la funcionalidad básica, podrías considerar eliminar su carga o reemplazarla por una versión más ligera. Muchas veces, los temas y plugins de WordPress aún dependen de jQuery de forma innecesaria, lo que añade peso a la página. Si no es estrictamente necesario, podrías hacer que tu sitio funcione sin jQuery o reemplazarlo por una versión más optimizada.


💡 Recomendaciones adicionales:

  • Evita el uso de demasiados plugins: A veces, los plugins adicionales generan solicitudes de red innecesarias que afectan el rendimiento. 🆗
  • Optimiza imágenes: Las imágenes también pueden bloquear el renderizado si no están optimizadas. Usa un plugin como Smush o ShortPixel para optimizar las imágenes en tu sitio. 🆗
  • Asegúrate de que el servidor sea rápido: Si el servidor tarda mucho en responder, la velocidad de carga se verá afectada. Considera mejorar el rendimiento del servidor si es posible. 🆗

Agregar el código para posponer el CSS directamente en la plantilla de WordPress 📝

Puedes agregar el código para posponer el CSS directamente en la plantilla de WordPress. La mejor manera de hacerlo es en el archivo functions.php de tu tema, que es donde se agregan funciones personalizadas y hooks en WordPress.

Pasos para agregar el código en functions.php:

  1. Accede a tu Panel de Administración de WordPress: 1️⃣
    • Ve a Apariencia > Editor de Archivos de Tema.
  2. Encuentra el archivo functions.php: 2️⃣
    • En el panel lateral izquierdo, selecciona el archivo functions.php de tu tema activo.
  3. Añadir el código para posponer el CSS: 3️⃣
    • Al final del archivo functions.php, agrega el siguiente código:
function wp_defer_css($tag, $handle) {
// Asegúrate de que el archivo CSS sea el que quieres posponer
if ('wp-block-library' !== $handle) {
return $tag;
}
// Posponer la carga del CSS para que se cargue en segundo plano
return str_replace("rel='stylesheet'", "rel='stylesheet' media='print' onload=\"this.media='all'\"", $tag);
}

add_filter('style_loader_tag', 'wp_defer_css', 10, 2);

Explicación del código:

  • El código anterior usa el filtro style_loader_tag para modificar cómo se carga el CSS en la página.
  • wp-block-library es el identificador del CSS de los bloques predeterminados de WordPress, pero puedes cambiarlo por el identificador del CSS que deseas posponer.
  • media='print' hace que el CSS se cargue solo cuando la página esté completamente cargada, y el atributo onload se asegura de que se cambie a media='all' una vez que el CSS se haya cargado.

¿Dónde colocar este código? ❓

  • Este código debe ser colocado en el archivo functions.php de tu tema activo, que generalmente se encuentra en la siguiente ruta de tu servidor: bashCopiarwp-content/themes/tu-tema/functions.php Si prefieres no tocar el archivo directamente, también puedes agregar este código utilizando un plugin de fragmentos de código como Code Snippets para WordPress, que facilita la inserción de código sin modificar los archivos del tema.

⚠️ Precaución:

  • Si estás trabajando con un tema hijo (tema hijo o child theme), asegúrate de agregar el código en el functions.php de tu tema hijo para evitar que se pierdan las modificaciones al actualizar el tema principal.
  • Si tu tema usa un constructor como Elementor o similar, asegúrate de que el código no interfiera con los estilos cargados por ese constructor.

Una vez que hayas guardado los cambios, puedes verificar si el CSS se ha pospuesto correctamente utilizando herramientas como Google PageSpeed Insights para comprobar si el error relacionado con «Solicitudes que bloquean el renderizado» ha desaparecido.

Poner el código directamente en el archivo de la plantilla WordPress

puedes poner el código directamente en el archivo page-landing-fast.php de tu tema, aunque la mejor práctica sería agregarlo en el archivo functions.php para que se ejecute en todo el sitio de manera global. Sin embargo, si solo deseas que se aplique a una página específica o prefieres manejarlo directamente en ese archivo de plantilla, también es posible.

Cómo hacerlo en page-landing-fast.php:

  1. Abre tu archivo page-landing-fast.php:
    • Accede a tu servidor a través de FTP o usa el editor de temas en el panel de administración de WordPress.
    • Navega hasta el archivo page-landing-fast.php, que probablemente se encuentre en la carpeta de tu tema (wp-content/themes/tu-tema/).
  2. Agregar código directamente en el archivo page-landing-fast.php: Aunque este archivo está diseñado para renderizar el contenido de la página específica, puedes incluir el código para posponer el CSS en la parte superior o inferior del archivo, utilizando el siguiente código PHP:
<?php
// Posponer el CSS solo en esta página específica

function wp_defer_css_single_page($tag, $handle) {
if ('wp-block-library' !== $handle) {
return $tag;
}
// Asegúrate de que el CSS se cargue solo cuando el contenido esté listo
return str_replace("rel='stylesheet'", "rel='stylesheet' media='print' onload=\"this.media='all'\"", $tag);
}

add_filter('style_loader_tag', 'wp_defer_css_single_page', 10, 2);

// Aquí puedes poner el resto del contenido de tu página 'page-landing-fast.php'
?>

<!-- Tu código HTML y WordPress para la página -->

Explicación:

  • Este código funciona solo en la página donde se incluye, y el filtro style_loader_tag se aplica para posponer la carga de los estilos CSS.
  • Colocar este código en page-landing-fast.php hace que solo esta página aproveche la optimización, mientras que otras páginas del sitio seguirán cargando los recursos de manera habitual.

Recomendaciones:

  1. Coloca el código al principio del archivo: Coloca este código justo al principio del archivo page-landing-fast.php (antes de cualquier HTML) para asegurarte de que se ejecute lo antes posible cuando se cargue la página. ✔️
  2. Verifica el identificador del CSS: Asegúrate de que el identificador del CSS que quieres posponer sea el correcto (en el ejemplo se usa 'wp-block-library', pero si hay otros archivos CSS que necesitas modificar, cámbialo por el identificador adecuado). ✔️
  3. Verifica si afecta a otras funcionalidades: Dado que este cambio solo se aplica a una página, asegúrate de que no haya problemas con otras funcionalidades del sitio que dependan de que el CSS esté cargado de manera inmediata. Este método es más específico y menos global que hacerlo en functions.php. ✔️

Alternativa: Usar el plugin Autoptimize o WP Rocket 🚀

Si prefieres no tocar el código, tanto Autoptimize como WP Rocket ofrecen la opción de posponer CSS y JavaScript de forma automática, lo que podría ser una alternativa más sencilla y menos arriesgada.

.

Latencia de solicitud del documento Ahorro potencial de XXX ms pagespeed

Latencia de solicitud del documento Ahorro potencial de XXX ms ⚠️

El nuevo problema que estás viendo, relacionado con la latencia de solicitud del documento, puede ser causado por varios factores, como la respuesta lenta del servidor, redirecciones innecesarias, o la falta de compresión de texto. Este problema afecta el tiempo que tarda el navegador en obtener el primer byte de la respuesta del servidor, lo que puede aumentar significativamente el tiempo de carga.

Aquí te dejo algunas soluciones que puedes aplicar para mejorar este aspecto:

1. Evita las Redirecciones: ❌

Las redirecciones (por ejemplo, de http:// a https://, o de www a sin-www) pueden aumentar la latencia, ya que el navegador tiene que hacer una solicitud adicional. Asegúrate de que todas las URLs de tu sitio estén configuradas correctamente para evitar redirecciones innecesarias.

Cómo evitar las redirecciones:

  • Verifica la URL base: Ve a Ajustes > Generales en el panel de administración de WordPress y asegúrate de que la URL del sitio esté correctamente configurada como https://tudominio.com o http://tudominio.com, según corresponda.
  • Configura las redirecciones 301 correctamente: Si necesitas redirigir, usa redirecciones 301 permanentes, pero minimiza su uso.

2. Habilitar la Compresión de Texto (Gzip o Brotli):

La compresión de texto (como Gzip o Brotli) puede reducir considerablemente el tamaño de los archivos transferidos entre el servidor y el navegador, acelerando el tiempo de carga. Sin esta compresión, los archivos como CSS, JavaScript y HTML son transferidos sin ser comprimidos, lo que aumenta la latencia.

Cómo habilitar la compresión Gzip:

Si tu servidor está utilizando Apache o Nginx, puedes habilitar Gzip con los siguientes métodos:

  • Apache:
    1. Abre el archivo .htaccess en la raíz de tu instalación de WordPress.
    2. Agrega el siguiente código para habilitar Gzip:
    apacheCopiar# Habilitar compresión Gzip <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/text text/html text/xml text/css application/javascript application/x-javascript text/javascript application/json </IfModule>
  • Nginx:
    1. Si tu servidor usa Nginx, agrega lo siguiente en la configuración del servidor (generalmente en /etc/nginx/nginx.conf):
    nginxCopiar# Habilitar compresión Gzip gzip on; gzip_types text/plain text/css application/javascript application/json;

Si no tienes acceso a la configuración del servidor, puedes usar un plugin de WordPress como WP Rocket o W3 Total Cache, que puede habilitar la compresión de archivos automáticamente.

3. Mejorar el Tiempo de Respuesta del Servidor (Tiempo de Primer Byte – TTFB): 🆙

El Tiempo de Primer Byte (TTFB) es el tiempo que tarda el servidor en empezar a enviar los datos después de que el navegador hace la solicitud. Si el servidor responde lentamente, esto afectará directamente a la latencia.

Soluciones para mejorar TTFB:

  • Optimizar el servidor:
    • Si tu alojamiento web está usando un servidor compartido, puede que no sea lo suficientemente rápido para tu tráfico. Considera cambiar a un servidor dedicado o servidor gestionado (por ejemplo, Kinsta, SiteGround, WP Engine, etc.) que está optimizado para WordPress.
    • Si es posible, configura un servidor PHP 7.4+ (preferiblemente PHP 8), ya que las versiones más nuevas de PHP ofrecen una mayor velocidad de procesamiento.
  • Activar la Caché de Páginas Completas:
    La caché de páginas completas reduce la carga en el servidor y disminuye la latencia al almacenar versiones estáticas de tus páginas. Esto evita que el servidor tenga que generar la página dinámicamente en cada solicitud. Usando un plugin como WP Rocket o W3 Total Cache, puedes habilitar la caché de páginas completas de manera sencilla.
  • Optimizar la Base de Datos:
    Si tienes una base de datos de WordPress grande, esto también puede afectar la respuesta del servidor. Puedes usar un plugin como WP-Optimize o Advanced Database Cleaner para limpiar y optimizar tu base de datos.

4. Elegir un Tema Ligero:

Algunos temas de WordPress pueden ser bastante pesados, con muchas solicitudes de recursos innecesarias. Un tema ligero, como los basados en bloques o aquellos diseñados para ser rápidos (por ejemplo, GeneratePress, Astra, o Neve), generalmente cargan más rápido y son menos exigentes para el servidor.

Si tu tema es pesado o no está optimizado para velocidad, considera cambiar a un tema más ligero y optimizado.

5. Desactivar Plugins Innecesarios:

Si tienes plugins que no son necesarios para el funcionamiento de tu sitio, desactívalos o elimínalos. Cada plugin adicional agrega carga al servidor y puede ralentizar el tiempo de respuesta de tu sitio.

  • Usa un plugin como Plugin Performance Profiler para identificar qué plugins están afectando el rendimiento.
  • Desactiva o elimina plugins que no estés utilizando o que estén ralentizando el sitio.

6. Usar un CDN (Red de Distribución de Contenidos):

Un CDN (como Cloudflare o KeyCDN) puede ayudar a reducir la latencia al distribuir tu contenido estático a través de servidores ubicados cerca de los usuarios, lo que acelera la carga de tu página.

7. Revisar los Registros del Servidor:

Finalmente, si tu servidor responde lentamente, revisa los registros de errores del servidor (en cPanel o en tu panel de hosting) para identificar cualquier problema o cuellos de botella en el servidor.


Resumen de las acciones recomendadas:

  1. Evitar redirecciones innecesarias.
  2. Habilitar la compresión Gzip.
  3. Mejorar el TTFB optimizando el servidor, usando PHP 8 y activando la caché.
  4. Elegir un tema ligero y optimizado.
  5. Desactivar plugins innecesarios.
  6. Implementar un CDN.
  7. Optimizar la base de datos y el servidor.

Al aplicar estas optimizaciones, reducirás considerablemente la latencia y mejorarás el tiempo de respuesta del servidor, lo que resultará en una experiencia de usuario más rápida y un mejor puntaje en PageSpeed Insights.

.

Árbol de dependencia de red Evita encadenar solicitudes críticas reduciendo la longitud de las cadenas pagespeed

Árbol de dependencia de red: Evita encadenar solicitudes críticas reduciendo la longitud de las cadenas. ⚠️

El mensaje que ves, «Árbol de dependencia de red», sugiere que hay recursos críticos que se están cargando de manera secuencial, lo que está afectando el LCP (Largest Contentful Paint), una métrica importante en la evaluación de la velocidad de carga de la página.

Este tipo de problemas puede estar causado por las solicitudes encadenadas de archivos JavaScript como jquery.min.js y jquery-migrate.min.js, que están bloqueando el renderizado de la página. Las solicitudes de estos archivos, al ser críticas, están retrasando la carga de los elementos visuales importantes de la página.

Soluciones para mejorar el Árbol de Dependencia de Red y reducir la latencia:

1. Posponer la Carga de jQuery y jQuery Migrate 🛠️

Como jQuery es necesario para el funcionamiento de muchos scripts y plugins, pero no debe ser cargado de manera sincrónica (bloqueando el renderizado), lo que puedes hacer es posponer su carga utilizando el atributo defer para que se cargue después de que se haya renderizado la página.

Ya te di un ejemplo antes sobre cómo hacerlo, pero lo repetiré con una explicación más detallada:

function posponer_jquery() {
// Verifica si la página está utilizando jQuery
if (!is_admin()) {
// Posponer la carga de jQuery
wp_deregister_script('jquery');
wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js', false, null, true);
wp_enqueue_script('jquery');
}
}

add_action('wp_enqueue_scripts', 'posponer_jquery', 1);

Este código asegura que jQuery se cargue de manera asíncrona, sin bloquear el renderizado de la página.

2. Cargar jQuery de Forma Asíncrona con async o defer

Si no deseas tocar el archivo functions.php, otra forma de hacerlo es directamente en la carga del script con async o defer. Ambos atributos sirven para posponer la ejecución del script, pero tienen pequeñas diferencias:

  • defer asegura que el script se ejecutará en el orden en el que está en el código, pero después de que se haya cargado el HTML completo.
  • async hace que el script se ejecute tan pronto como se haya descargado, sin importar si el HTML ha terminado de cargar.

Ejemplo de cómo hacerlo para jQuery:

function add_async_attribute($tag, $handle) {
// Aplica el atributo async o defer solo al script jQuery
if ('jquery' === $handle) {
return str_replace('src', 'defer="defer" src', $tag);
}
return $tag;
}

add_filter('script_loader_tag', 'add_async_attribute', 10, 2);

Este código agrega el atributo defer al archivo de jQuery, lo que significa que el archivo de jQuery no bloquea el renderizado de la página.

3. Posponer o Diferir la Carga de Otros Recursos JavaScript ⏱️

Además de jQuery, otros archivos JavaScript, como jquery-migrate.min.js, también pueden posponerse. Al igual que con jQuery, puedes usar los atributos async o defer para posponer su carga.

Si necesitas posponer otros scripts, puedes hacerlo agregando este código a tu archivo functions.php:

function defer_scripts($tag, $handle) {
// Si el script no es crítico, posponerlo
$non_critical_scripts = ['jquery-migrate']; // Puedes agregar más scripts aquí

if (in_array($handle, $non_critical_scripts)) {
return str_replace('src', 'defer="defer" src', $tag);
}
return $tag;
}

add_filter('script_loader_tag', 'defer_scripts', 10, 2);

Este código se encarga de aplicar el atributo defer a los scripts que no sean críticos, como jquery-migrate.min.js.

4. Reducir el Tamaño de los Archivos JavaScript

Aunque el tamaño de los archivos JS que mencionas (como jquery.min.js y jquery-migrate.min.js) es relativamente pequeño, es posible minificar y combinar estos archivos para reducir aún más el tamaño total de la carga.

Plugins como Autoptimize o W3 Total Cache pueden ayudarte a hacer esto automáticamente. Te permiten minificar y combinar JavaScript y CSS, lo que ayuda a reducir el número de solicitudes de red y optimiza la carga de la página.

5. Cargar JavaScript Solo en Páginas Necesarias 🛠️

Si tienes JavaScript que solo se utiliza en ciertas páginas (por ejemplo, scripts específicos de formularios o interactividad), puedes condicionalmente cargar esos scripts solo en las páginas que los necesiten.

Por ejemplo, si solo necesitas jQuery en ciertas páginas, puedes cargarlo de forma condicional de la siguiente manera:

function load_jquery_on_pages() {
if (is_page('tu-landing-page')) {
wp_enqueue_script('jquery');
}
}

add_action('wp_enqueue_scripts', 'load_jquery_on_pages');

Esto asegurará que jQuery solo se cargue en la página que lo necesite, lo que puede reducir la latencia de otras páginas.

6. Uso de un Plugin de Optimización como WP Rocket o Autoptimize

Si prefieres una solución más sencilla, los plugins WP Rocket o Autoptimize ofrecen opciones para posponer o asíncronamente cargar los scripts JavaScript, así como para minificar y combinar los archivos.

En WP Rocket y Autoptimize, solo tienes que activar las opciones de «Defer JS» o «Load JS Deferred» para optimizar la carga de los scripts y reducir la longitud de la cadena de dependencias.


💡 Resumen de Soluciones:

  1. Posponer la carga de jQuery utilizando el atributo defer.
  2. Posponer otros scripts JavaScript, como jquery-migrate.min.js.
  3. Reducir el tamaño de los archivos JavaScript mediante minificación y combinación.
  4. Cargar JavaScript solo cuando sea necesario en páginas específicas.
  5. Usar un plugin como Autoptimize o WP Rocket para optimizaciones automáticas.

Estas estrategias deberían ayudarte a reducir la latencia en el árbol de dependencias y mejorar la carga de tu página.

Realizar ajustes para mejorar la latencia, optimizar la ruta crítica y reducir las solicitudes que bloquean el renderizado. Aquí puedes optar por un código ajustado para que sea lo más rápido posible, aún en perjuicio del CSS:

Cambios y Mejoras Realizadas:

  1. Posponer la carga de jQuery y jQuery Migrate: He movido el <script> de jQuery a la parte inferior del cuerpo y he asegurado que solo se cargue de forma diferida (defer) para no bloquear el renderizado.
  2. Optimización de CSS: He pospuesto el CSS no crítico utilizando el atributo media="print" para cargarlo de forma diferida.
  3. Eliminación de redundancias: He eliminado la inclusión redundante de jquery.min.js desde el head y he ajustado la carga de los scripts para evitar solicitudes duplicadas.
  4. Uso de defer en los scripts de JavaScript: Los scripts que son importantes para la funcionalidad de la página (como jQuery y jQuery Migrate) ahora se cargan de forma diferida.
  5. Inclusión de solo lo esencial en el head: Minimizar la carga de recursos esenciales, dejando el resto para cuando la página ya está visible.

Cambios detallados:

  1. Posponer la carga de CSS: He añadido el filtro wp_defer_css_single_page para posponer la carga del CSS no crítico. Este código asegura que el CSS se cargue solo cuando el contenido esté listo.
  2. Posponer los scripts de jQuery: Los scripts de jQuery y jQuery Migrate se cargan con el atributo defer para posponer su ejecución, lo que impide que bloqueen el renderizado.
  3. Cargar el CSS en el head solo cuando sea necesario: He agregado una carga diferida para los recursos CSS usando el atributo media='print' que se convierte en media='all' después de que se carga. Esto ayuda a evitar que el CSS bloquee la ruta crítica de renderizado.

Recomendaciones adicionales:

  • Usa un plugin de caché: Implementa un plugin como WP Rocket o W3 Total Cache para asegurarte de que la caché de la página se gestione correctamente y los recursos se entreguen más rápido.
  • Minificación de CSS y JS: Utiliza un plugin como Autoptimize o WP Rocket para minificar y combinar archivos CSS y JS. Esto reducirá el número de solicitudes HTTP y el tamaño de los archivos, mejorando el rendimiento.
  • Revisa el servidor: Si el servidor sigue siendo lento, considera actualizar tu hosting a uno más rápido o utilizar un CDN (como Cloudflare) para mejorar el tiempo de respuesta.

Con estos cambios, tu página debe cargar mucho más rápido, reduciendo la latencia y mejorando el Largest Contentful Paint (LCP).

.

Considera el uso CSS de carga crítica para mejorar el rendimiento de la carga pagespeed

Considera el uso CSS de carga crítica para mejorar el rendimiento de la carga ⚠️

1. Eliminar o hacer el CSS crítico

Un aspecto clave para mejorar la velocidad de carga es optimizar el CSS crítico. Esto se refiere a minimizar la cantidad de CSS que necesita cargarse antes de que se renderice la página. Lo ideal es que solo se cargue el CSS crítico que es necesario para la carga inicial de la página, y el resto de los estilos se carguen después, para que no bloqueen el renderizado.

Solución:

Puedes usar herramientas como Critical CSS para extraer solo los estilos que son necesarios para renderizar el contenido visible inmediatamente y posponer el resto. Esto se puede hacer de manera manual o con plugins como Autoptimize o WP Rocket, que extraen el CSS crítico y lo cargan inline en el <head> para evitar bloqueos.

Pasos con Autoptimize:
  1. Instala y activa Autoptimize.
  2. Ve a Ajustes > Autoptimize y marca la opción «Inline and defer CSS» para diferir el CSS no crítico.
  3. Habilita la opción «Optimizar CSS» para combinar y minimizar los archivos CSS.

Esto reducirá la cantidad de CSS que se descarga inicialmente y solo cargará los recursos necesarios para el contenido visible.

2. Posponer las solicitudes que bloquean el renderizado

Las solicitudes de jQuery y jQuery Migrate son los recursos que están bloqueando el renderizado inicial, ya que tienen un tiempo de carga alto (por ejemplo, 480 ms cada uno). Para mejorar esto, se puede posponer o cargar de manera diferida esos recursos.

Solución:

Actualmente, ya estás utilizando el atributo defer en los scripts de jQuery, pero aún están bloqueando el renderizado. Es posible que necesites hacer un par de ajustes adicionales.

  • Mover los scripts a la parte inferior del cuerpo (<body>) para asegurarte de que se cargan después de que el contenido HTML principal esté cargado.
  • Cargar jQuery de manera asíncrona utilizando el atributo async o defer, pero aplicarlo a todos los scripts relevantes.

Por ejemplo:

// Desregistrar y volver a registrar jQuery para cargarlo de manera diferida
function custom_defer_jquery() {
if (!is_admin()) {
wp_deregister_script('jquery');
wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js', false, null, true);
wp_enqueue_script('jquery');
}
}

add_action('wp_enqueue_scripts', 'custom_defer_jquery');

Aquí, estamos usando el defer directamente en el código de WordPress, lo que garantiza que jQuery se cargue después de que la página principal esté cargada.

3. Habilitar compresión de texto (Gzip/Brotli) ⚙️

La compresión de texto es una técnica que comprime los archivos como HTML, CSS y JavaScript antes de enviarlos al navegador. Si no está habilitada, es probable que se estén descargando archivos más grandes de lo necesario, lo que contribuye a la latencia.

💡 Solución:

Si no lo has hecho aún, habilita la compresión Gzip o Brotli en tu servidor. Esto reduce el tamaño de los archivos y acelera la descarga.

  • Si tienes acceso a cPanel, puedes habilitar la compresión Gzip desde allí.
  • Si usas Apache, agrega lo siguiente a tu archivo .htaccess para habilitar Gzip:
# Habilitar compresión Gzip
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascript text/javascript application/json
</IfModule>
  • Si usas Nginx, agrega este bloque de código a tu configuración de Nginx:
# Habilitar compresión Gzip
gzip on;
gzip_types text/plain text/css application/javascript application/json;

Si no tienes acceso a la configuración del servidor, muchos plugins de optimización de rendimiento, como WP Rocket o Autoptimize, incluyen la opción de activar la compresión de Gzip.

4. Preconnect a Orígenes Importantes

El Preconnect es una optimización que permite al navegador establecer una conexión anticipada con los orígenes (servidores) más importantes antes de que se necesite hacer la solicitud real. Esto puede reducir la latencia, especialmente si estás cargando recursos desde un CDN o un dominio diferente.

💡 Solución:

Añadir preconnect a orígenes que son críticos para la carga de tu página. Aquí hay un ejemplo de cómo hacerlo en tu archivo header.php:

<link rel="preconnect" href="https://ajax.googleapis.com">
<link rel="preconnect" href="https://tupaginawordpress.es">

Esto permitirá que el navegador se conecte de antemano a estos dominios, lo que reduce el tiempo de latencia.

5. Eliminación de Redirecciones

Una de las sugerencias en el informe es evitar redirecciones innecesarias. Si tienes configuraciones de redirección HTTP a HTTPS o www a no-www, asegúrate de que estén correctamente configuradas para que no agreguen tiempo adicional.

Solución:

  • Asegúrate de que en Ajustes > Generales de WordPress, la URL de WordPress y la URL del sitio estén correctamente configuradas con https:// y www o sin www, de acuerdo con tu preferencia.
  • Evita cualquier redirección que no sea absolutamente necesaria.

6. Consideraciones adicionales

  • Servidor y alojamiento: Si el servidor está respondiendo lentamente (como se observa en los informes), considera cambiar a un servicio de alojamiento más rápido, optimizado para WordPress (por ejemplo, Kinsta, WP Engine o SiteGround).
  • Eliminar Plugins Innecesarios: Si tienes plugins que no son esenciales, desactívalos o elimínalos para reducir la carga del servidor.
  • Utiliza un CDN: Si aún no lo has hecho, utiliza una red de distribución de contenido (CDN) como Cloudflare para acelerar la entrega de contenido estático y reducir la latencia.

Resumen de acciones:

  1. Minimiza y extrae el CSS crítico usando herramientas como Autoptimize o WP Rocket.
  2. Posponer jQuery y otros scripts utilizando el atributo defer y asegurando que se carguen en el pie de página.
  3. Habilitar la compresión Gzip o Brotli en el servidor.
  4. Preconnect a orígenes importantes (CDN, servidor propio, etc.).
  5. Eliminar redirecciones innecesarias y asegurarte de que tu configuración de WordPress no esté causando redirecciones innecesarias.

Implementando estas optimizaciones, deberías ver una mejora significativa en los tiempos de carga de tu página y en las métricas clave de rendimiento.

Y si quito el jQuery que puede pasar? daran errores en la consola?

Quitar jQuery de tu página de WordPress puede tener efectos importantes dependiendo de cómo esté estructurado tu sitio, ya que muchos temas y plugins de WordPress dependen de jQuery para manejar interacciones y funcionalidades dinámicas, como formularios, sliders, menús desplegables, animaciones, etc.

Posibles Consecuencias de Eliminar jQuery:

  1. Errores en la consola de JavaScript: Si tienes funcionalidades que dependen de jQuery (como un slider o un formulario que usa validación jQuery), eliminar jQuery podría causar errores en la consola del navegador, ya que los scripts que intenten usar jQuery no podrán ejecutarse. Los errores se mostrarán como Uncaught ReferenceError: $ is not defined o algo similar, porque $ es el alias de jQuery.
  2. Interacción y funcionalidad rotas: Algunas interacciones y elementos visuales que se cargan mediante jQuery pueden no funcionar, como menús desplegables, sliders, validaciones de formularios, animaciones y otros scripts interactivos.
  3. Impacto en plugins: Algunos plugins de WordPress dependen de jQuery para su funcionamiento, y si jQuery es eliminado, los plugins dejarán de funcionar correctamente.
  4. Rendimiento mejorado a costa de funcionalidad: Si decides eliminar jQuery y el sitio no depende de funcionalidades que lo usen, es probable que veas una mejora en el rendimiento debido a que se reduce el tamaño de la página (al no cargar jQuery). Pero la pérdida de funcionalidades interactivas puede afectar la experiencia del usuario.

¿Cómo saber si puedes eliminar jQuery?

Para determinar si puedes eliminar jQuery sin que afecte negativamente la funcionalidad de tu sitio, puedes hacer lo siguiente:

  1. Desactivar jQuery temporalmente:
    • Puedes desregistrar jQuery temporalmente y ver cómo se comporta tu sitio en el navegador. Si el sitio sigue funcionando correctamente, es probable que no estés utilizando jQuery activamente. Puedes hacerlo con el siguiente código en functions.php:
    phpCopiarfunction remove_jquery() { if (!is_admin()) { wp_deregister_script('jquery'); } } add_action('wp_enqueue_scripts', 'remove_jquery'); Esto desactivará jQuery, y podrás comprobar si algunas interacciones dejan de funcionar.
  2. Verifica la consola del navegador:
    • Después de desactivar jQuery, abre la consola del navegador (con F12 o clic derecho y seleccionar «Inspeccionar» > «Consola») y observa si aparecen errores como Uncaught ReferenceError: $ is not defined. Si ves este tipo de errores, significa que jQuery es utilizado en tu sitio.
  3. Revisa el uso de jQuery en tu tema y plugins:
    • Si tienes un tema que utiliza jQuery o plugins que lo dependen, revisa su código o la documentación del tema/plugin. La mayoría de los temas modernos usan jQuery solo cuando es necesario, pero algunos plugins pueden tener dependencias estrictas de jQuery.

Alternativa: Reemplazar jQuery por JavaScript Vanilla

Si decides eliminar jQuery porque no lo necesitas o por razones de rendimiento, puedes reemplazar las funcionalidades dependientes de jQuery con JavaScript Vanilla (JavaScript puro). Esto elimina la necesidad de cargar la biblioteca de jQuery, pero te obliga a escribir o reemplazar los scripts existentes.

Por ejemplo, un código jQuery para cambiar el contenido de un elemento podría ser reemplazado con JavaScript puro:

jQuery:

$('#miElemento').text('Nuevo texto');

JavaScript Vanilla:

document.getElementById('miElemento').textContent = 'Nuevo texto';

Resumen:

  1. Eliminando jQuery sin problemas:
    • Puedes eliminar jQuery si tu sitio no depende de él, pero esto puede causar errores si alguna parte del sitio o un plugin lo usa.
  2. Probar antes de eliminar:
    • Puedes desactivar jQuery temporalmente y revisar si el sitio sigue funcionando correctamente, o si aparecen errores en la consola del navegador.
  3. Reemplazar jQuery con JavaScript Vanilla:
    • Si necesitas eliminar jQuery para mejorar el rendimiento, pero no quieres perder funcionalidad, puedes reemplazar los scripts que dependen de jQuery con JavaScript puro.

¿Qué hacer si encuentras errores después de eliminar jQuery?

Si después de eliminar jQuery notas que algunas funcionalidades del sitio dejan de funcionar correctamente, puedes:

  • Revertir la eliminación de jQuery y mantenerlo solo cuando sea necesario, es decir, cargar jQuery solo en las páginas que realmente lo necesiten.
  • Reemplazar el código que depende de jQuery con JavaScript Vanilla.

Si decides eliminar jQuery, hazlo con cuidado y siempre asegúrate de probar bien el sitio para no perder funcionalidades importantes.

Algunas recomendaciones adicionales:

  1. Revisar el rendimiento de nuevo:
    Ahora que jQuery ha sido eliminado, sería útil volver a analizar el rendimiento de tu página en herramientas como Google PageSpeed Insights o GTmetrix para asegurarte de que los tiempos de carga y las métricas como LCP (Largest Contentful Paint) y FCP (First Contentful Paint) han mejorado significativamente.
  2. Monitorear la funcionalidad:
    Aunque todo esté funcionando bien ahora, es importante asegurarse de que todas las funcionalidades interactivas de la página sigan siendo operativas, como formularios, sliders, menús desplegables, etc. Si en algún momento necesitas agregar interactividad avanzada, puedes optar por JavaScript Vanilla en lugar de jQuery, como mencionamos antes.
  3. Mantener el sitio liviano:
    Como has hecho ahora, es una buena práctica minimizar el uso de recursos pesados como bibliotecas que no sean estrictamente necesarias. Esto puede incluir:
    • Eliminar CSS no utilizado.
    • Optimizar imágenes para que se carguen más rápido (plugins como Smush o ShortPixel pueden ayudar).
    • Habilitar caché y compresión Gzip para archivos.
  4. Usar un CDN:
    Si aún no lo has hecho, implementar un CDN (Red de Distribución de Contenido) como Cloudflare o KeyCDN puede mejorar aún más la velocidad, especialmente si tienes visitantes de diversas ubicaciones geográficas.
  5. Seguir vigilando el rendimiento:
    Aunque ahora el sitio vaya más rápido, es importante seguir optimizando periódicamente, especialmente si agregas contenido o nuevas funcionalidades. Mantener un sitio liviano y rápido es una tarea constante.

.

Reduce el contenido CSS que no se use Ahorro potencial pagespeed

Reduce el contenido CSS que no se use Ahorro potencial… ⚠️

La advertencia que ves sobre CSS no utilizado hace referencia a las reglas de estilo que están siendo cargadas pero no son necesarias para la carga inicial de la página, lo que puede afectar el tiempo de carga y aumentar el uso de datos innecesarios.

En tu caso, se trata de la hoja de estilos block-library/style.min.css de WordPress, que es utilizada por el editor de bloques (Gutenberg) y sus estilos, pero parece que no se está utilizando en tu página de Landing.

💡 Solución para eliminar o evitar la carga de CSS no utilizado

Existen varias formas de eliminar o evitar que esta hoja de estilo se cargue en tu landing page si no la necesitas. Te voy a mostrar cómo hacerlo.

1. Eliminar el CSS de Gutenberg para páginas específicas

La hoja de estilos block-library/style.min.css se carga por defecto en todas las páginas de WordPress, especialmente en las que usan Gutenberg. Si tu página de Landing no utiliza el editor de bloques, puedes desregistrar ese CSS en las páginas que no lo necesiten.

🧩 Código para desregistrar el CSS de Gutenberg en tu landing page

Agrega el siguiente código en el archivo functions.php de tu tema para evitar que el CSS de Gutenberg se cargue en la página de landing:

function remove_gutenberg_css() {
// Verifica si es una página específica
if (is_page('tu-landing-page')) {
wp_dequeue_style('wp-block-library'); // Desregistra el estilo de Gutenberg
}
}

add_action('wp_enqueue_scripts', 'remove_gutenberg_css', 20);

Este código hace lo siguiente:

  • wp_dequeue_style('wp-block-library') elimina la carga de block-library/style.min.css en páginas específicas (en este caso, la página de Landing con el slug tu-landing-page).

Nota: Cambia 'tu-landing-page' por el slug de la página en tu sitio, si es diferente.

2. Eliminar el CSS de Gutenberg globalmente (si no se necesita en todo el sitio) 🧩

Si no usas Gutenberg en todo tu sitio, puedes eliminar completamente el CSS de Gutenberg. Para hacerlo de manera global, usa el siguiente código:

function remove_gutenberg_css_globally() {
wp_dequeue_style('wp-block-library'); // Elimina el CSS de Gutenberg en todo el sitio
}

add_action('wp_enqueue_scripts', 'remove_gutenberg_css_globally', 20);

Este código eliminará wp-block-library/style.min.css de todas las páginas de tu sitio si no necesitas los estilos de Gutenberg en ninguna parte.

3. Usar el plugin Autoptimize (opcional)

Si prefieres no escribir código, puedes usar el plugin Autoptimize para optimizar el CSS y eliminar el CSS no utilizado:

  1. Instala y activa el plugin Autoptimize.
  2. Ve a Ajustes > Autoptimize.
  3. En la pestaña CSS, activa la opción «Optimizar CSS».
  4. Marca la opción «Eliminar CSS no utilizado» (aunque este método no es tan preciso como hacerlo manualmente).
  5. Guarda los cambios y revisa el rendimiento.

4. Eliminar el CSS no utilizado con un plugin de optimización como WP Rocket

WP Rocket también te permite eliminar CSS no utilizado y hacer optimizaciones automáticas sin necesidad de escribir código. Si tienes WP Rocket:

  1. Ve a la pestaña Archivos estáticos.
  2. Activa «Eliminar CSS no utilizado».
  3. Guarda los cambios.

5. Comprimir y minificar el CSS restante

Si decides eliminar el CSS no utilizado, también es recomendable minificar el CSS restante para reducir aún más el tamaño del archivo. Si usas plugins como Autoptimize o WP Rocket, ambos realizan esta tarea automáticamente. Si no usas ninguno de estos plugins, puedes hacerlo manualmente o mediante herramientas en línea como CSS Minifier.

Resumen de pasos:

  1. Eliminar el CSS de Gutenberg (usando código en functions.php o un plugin de optimización).
  2. Eliminar el CSS no utilizado globalmente si no usas Gutenberg.
  3. Usar un plugin de optimización como Autoptimize o WP Rocket para realizar optimizaciones adicionales de CSS.
  4. Minificar y comprimir el CSS restante para reducir aún más el tamaño de los archivos.

.

Reduce el contenido JavaScript que no se use pagespeed

Reduce el contenido JavaScript que no se use⚠️

Para reducir el contenido de JavaScript no utilizado y seguir optimizando el rendimiento de tu landing page, hay varias opciones que puedes implementar. La advertencia que ves se refiere al JavaScript de jQuery que aún está siendo cargado y no se está utilizando activamente en la página.

Aquí te dejo algunas soluciones para reducir o eliminar el uso de jQuery y otros scripts de JavaScript que no se utilizan.

1. Desregistrar jQuery de forma condicional

Si no estás usando jQuery en tu página de Landing, puedes desregistrarlo completamente para evitar que se cargue. Esto se puede hacer de forma condicional solo para la página de landing.

🧩 Código para eliminar jQuery solo en la página de Landing (en functions.php):

function remove_jquery_on_landing_page() {
// Verifica si es la página de landing (por ejemplo, por su ID o slug)
if (is_page('tu-landing-page')) {
wp_deregister_script('jquery'); // Elimina jQuery de la cola
}
}

add_action('wp_enqueue_scripts', 'remove_jquery_on_landing_page', 20);

Este código desactiva jQuery solo en la página específica (tu-landing-page) donde no lo necesitas. Si el slug de tu página es diferente, cambia 'tu-landing-page' por el nombre correcto.

2. Posponer la carga de JavaScript que no es crítico ⏱️

Si decides seguir usando jQuery para algunos elementos en la página, puedes posponer su carga hasta que se necesite, de forma que no bloquee el renderizado inicial.

🧩 Código para cargar jQuery de manera diferida (en functions.php):

function load_jquery_differed() {
if (!is_admin()) {
// Desregistrar jQuery
wp_deregister_script('jquery');
// Registrar jQuery con defer
wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js', false, null, true);
wp_enqueue_script('jquery');
}
}

add_action('wp_enqueue_scripts', 'load_jquery_differed', 20);

Este código asegura que jQuery se cargue de forma diferida (después de que el HTML y los recursos críticos estén cargados).

3. Eliminar JavaScript no utilizado de los plugins ✖️

El siguiente paso es identificar y eliminar el JavaScript que proviene de plugins o del tema y que no se utiliza en la página de Landing. Esto puede incluir scripts que se cargan globalmente pero no afectan a la página de Landing.

¿Cómo hacerlo?

  • Identificar scripts no utilizados: Usa las DevTools de Chrome para inspeccionar la cobertura de código y ver qué scripts JavaScript están siendo cargados pero no utilizados en la página.
    1. Abre la consola de desarrolladores en Google Chrome (presiona F12 o Ctrl+Shift+I).
    2. Ve a la pestaña «Coverage» (Cobertura) y recarga la página.
    3. Observa los archivos JavaScript que están siendo cargados pero no se están utilizando en la página.
  • Desregistrar scripts no necesarios: Si tienes scripts que no se usan en la página de Landing, puedes desregistrarlos y evitar que se carguen.

Por ejemplo, si un plugin o tu tema carga JavaScript que no usas, puedes desregistrarlo con algo como esto en functions.php:

function remove_unused_scripts() {
// Desregistrar scripts de plugins que no se usan en esta página
if (is_page('tu-landing-page')) {
wp_dequeue_script('script-handle'); // Reemplaza 'script-handle' por el identificador del script
}
}

add_action('wp_enqueue_scripts', 'remove_unused_scripts', 20);

4. Usar un plugin de optimización como Autoptimize o WP Rocket 🚀

Si prefieres una solución más sencilla sin escribir código, puedes usar un plugin de optimización como Autoptimize o WP Rocket, que pueden:

  • Minificar y combinar archivos JavaScript.
  • Posponer la carga de JavaScript no crítico.
  • Eliminar el JavaScript no utilizado.

Pasos para optimizar con Autoptimize:

  1. Instala y activa Autoptimize.
  2. Ve a Ajustes > Autoptimize.
  3. En la pestaña JavaScript, activa las opciones:
    • «Optimizar JavaScript».
    • «Posponer JavaScript».
  4. Guarda los cambios y revisa si los scripts no utilizados ya no se cargan.

5. Minificar y combinar los archivos JavaScript restantes

Otra acción clave para mejorar el rendimiento es minificar y combinar los archivos JavaScript que aún estás utilizando. Esto reduce el número de solicitudes HTTP y el tamaño total de los archivos.

Hacerlo con WP Rocket o Autoptimize:

  • Autoptimize: Activa la opción «Optimizar JavaScript» y «Combinar los scripts JavaScript» en la pestaña de configuración.
  • WP Rocket: Si usas WP Rocket, ve a la pestaña Archivos estáticos y activa las opciones para minificar y combinar JavaScript.

Resumen de acciones para eliminar JavaScript no utilizado:

  1. Desregistrar jQuery o cargarlo de forma diferida si no es necesario.
  2. Eliminar scripts no utilizados de plugins y desregistrarlos en páginas específicas.
  3. Usar un plugin de optimización como Autoptimize o WP Rocket para automatizar el proceso de minificación, combinación y posposición de JavaScript.
  4. Revisar el uso de JavaScript en la página con las DevTools de Chrome y desregistrar los scripts innecesarios.
  5. Minificar y combinar los scripts restantes para reducir el número de solicitudes y el tamaño de los archivos.

Implementando estas optimizaciones, deberías poder reducir aún más el contenido de JavaScript que no se usa y mejorar la latencia de la página

aquí tienes el código específico para desregistrar el archivo de JavaScript jquery.min.js en la página de Landing (o en cualquier otra página donde no lo necesites):

🧩 Código en functions.php para desregistrar jquery.min.js:

function remove_unused_scripts() {
// Verifica si es la página de Landing (por su slug o ID)
if (is_page('tu-landing-page')) {
// Desregistrar jQuery si no se necesita en esta página
wp_dequeue_script('jquery'); // 'jquery' es el identificador de jQuery en WordPress
}
}

add_action('wp_enqueue_scripts', 'remove_unused_scripts', 20);

Explicación:

  • wp_dequeue_script('jquery'): Este comando desregistra el script de jQuery que se ha encolado en la página de WordPress.
  • is_page('tu-landing-page'): Esta condición asegura que jQuery solo se desregistre en la página de Landing (cambia 'tu-landing-page' por el slug de tu página de landing si es diferente).

Pasos para usarlo:

  1. Accede a tu archivo functions.php en tu tema (preferiblemente en el tema hijo si estás usando uno). 🗹
  2. Agrega el código proporcionado al final del archivo functions.php. 🗹
  3. Guarda los cambios. 🗹

Con esto, jQuery se eliminará de la página de Landing, lo que reducirá el tamaño de la página y mejorará el tiempo de carga. Si necesitas aplicar esta optimización a más páginas, simplemente cambia la condición is_page() para que se aplique en otras páginas de tu sitio.

Optimizar aun más una Landing para Pageespeed Insights 🚀

¡Vamos a optimizar aún más tu página de Landing! Ya has realizado algunos grandes avances al desregistrar jQuery y eliminar el CSS no necesario, pero aquí te dejo algunas recomendaciones adicionales para mejorar el rendimiento y la eficiencia de la página.

💡 Optimización adicional:

  1. Evitar cargar jQuery si no se necesita: Aunque has hecho un buen trabajo desregistrando jQuery, aún lo estás cargando manualmente al final del archivo. Si no necesitas jQuery para esta página en particular, podemos eliminar esa carga manual también.
  2. Posponer el CSS crítico: Ya estás usando una técnica para posponer el CSS no crítico. Sin embargo, puedes optimizar aún más utilizando CSS crítico en línea y cargando el resto de los estilos después del contenido visual.
  3. Eliminar JavaScript innecesario: Si en algún momento agregas más scripts o plugins, asegúrate de que solo se cargue lo necesario. Si no se usa ningún JavaScript en tu página, puedes eliminarlo completamente.
  4. Mejorar la estructura del código HTML: Eliminar elementos innecesarios en el HTML y optimizar el CSS en línea para mejorar la carga.

Cambios y optimizaciones realizadas:

  1. Eliminar jQuery si no se necesita:
    • Desregistrar jQuery en la página de Landing utilizando la función wp_dequeue_script('jquery'). Esto previene que jQuery se cargue innecesariamente. 👍
    • Eliminar la carga de jQuery al final si no lo necesitas para ninguna funcionalidad de la página. Si decides eliminar jQuery por completo, también elimina la carga de jquery.min.js y jquery-migrate.min.js. 👍
  2. Posponer CSS no crítico:
    • Ya estás utilizando el filtro wp_defer_css_single_page para posponer el CSS de Gutenberg hasta que el contenido esté listo, lo cual es una excelente práctica. 👍
    • CSS crítico en línea: Añadí un bloque de CSS crítico directamente en la sección <head>. Esto asegura que los estilos esenciales para el contenido visible de la página se carguen de inmediato sin bloqueos, y el resto del CSS se carga posteriormente. 👍
  3. Carga deferida de jQuery:
    • Si decides seguir usando jQuery en la página de Landing, los scripts de jQuery se cargan al final del documento, lo que evitará que bloqueen el renderizado. 👍

Pasos siguientes:

  1. Verifica el rendimiento: Después de implementar estos cambios, asegúrate de analizar el rendimiento de la página nuevamente en Google PageSpeed Insights o GTmetrix para confirmar la mejora.
  2. Asegúrate de que todo funcione correctamente: Revisa si las interacciones de la página, como botones y formularios, siguen funcionando correctamente sin jQuery (o con jQuery diferido).

.

Usar tiempos de vida de caché eficientes pagespeed

Usar tiempos de vida de caché eficientes⚠️

El mensaje que ves relacionado con «Usar tiempos de vida de caché eficientes» hace referencia a que algunos de tus recursos, como jQuery y lazysizes.min.js, no tienen una configuración adecuada de cacheo del navegador. Al establecer un tiempo de vida adecuado para estos recursos en la caché, los navegadores pueden almacenar estos archivos localmente y reducir la necesidad de descargarlos nuevamente en futuras visitas, lo que mejora significativamente el rendimiento.

💡 Solución para mejorar los tiempos de vida en caché

Para optimizar el tiempo de vida en caché de los archivos estáticos en WordPress, puedes hacer lo siguiente:

1. Configurar la caché del navegador a través del archivo .htaccess (Apache)

Si tu servidor está utilizando Apache, puedes configurar el tiempo de vida en caché para archivos específicos, como JavaScript y CSS, utilizando el archivo .htaccess en la raíz de tu instalación de WordPress.

🧩 Código para agregar en /.htaccess:

# Activar el almacenamiento en caché de los navegadores para archivos estáticos
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"

# Especificar la caché para los archivos JS y CSS
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType application/font-woff2 "access plus 1 month"
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
</IfModule>

Explicación del código:

  • ExpiresActive On: Activa la gestión de la caché.
  • ExpiresDefault "access plus 1 month": Establece el tiempo de expiración general para 1 mes (puedes ajustarlo a tu preferencia).
  • ExpiresByType: Especifica los archivos para los cuales aplicar la caché. En este caso, estamos configurando archivos de JavaScript (.js), CSS (.css), imágenes y fuentes para que tengan un tiempo de vida en caché de 1 mes.

2. Si usas Nginx, agrega configuraciones de caché en la configuración del servidor

Si tu servidor usa Nginx, puedes agregar configuraciones de caché similares a las de Apache pero en la configuración del servidor.

🟤 Código para agregar en el archivo de configuración de Nginx:

# Establecer el almacenamiento en caché para archivos estáticos
location ~* \.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|tff|eot)$ {
expires 30d;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}

Explicación del código:

  • expires 30d: Configura los archivos estáticos como JavaScript, CSS, imágenes y fuentes para ser almacenados en la caché del navegador durante 30 días.
  • Cache-Control: Indica al navegador que estos archivos son públicos y pueden ser almacenados en caché durante el tiempo especificado.

3. Hacer uso de un plugin de caché en WordPress

Si prefieres no modificar directamente los archivos de configuración del servidor, puedes usar un plugin de caché de WordPress para configurar el tiempo de vida de los archivos estáticos.

🧩 Plugins recomendados:

  • WP Rocket ⭐⭐⭐⭐: WP Rocket es un plugin premium que maneja automáticamente el cacheo del navegador y optimiza la caché de archivos estáticos (JavaScript, CSS, imágenes) con opciones avanzadas. Puedes configurar la duración de la caché en su panel de ajustes.
  • W3 Total Cache ⭐⭐⭐⭐: Este plugin gratuito ofrece la opción de establecer tiempos de vida en caché tanto para los recursos del navegador como para la caché del servidor.

Pasos para configurar en WP Rocket:

  1. Instala y activa WP Rocket.
  2. Ve a Ajustes > WP Rocket > Caché.
  3. En la sección «Caché del navegador», activa la opción «Habilitar caché del navegador».
  4. Establece el tiempo de vida en caché de los recursos estáticos (puedes establecer 1 mes o más).
  5. Guarda los cambios.

4. Eliminar las solicitudes innecesarias ✖️

Si hay recursos que se cargan en la página, como jquery.min.js y jquery-migrate.min.js, pero que no se usan, puedes eliminarlos del sitio utilizando las soluciones que ya discutimos (desregistrar o posponer su carga). Esto reducirá el tamaño total de la transferencia y evitará que el navegador descargue archivos innecesarios.

5. Revisar la configuración de la caché en el navegador

Después de hacer las optimizaciones, verifica la configuración de la caché del navegador utilizando herramientas como Google PageSpeed Insights o GTmetrix. Esto te ayudará a confirmar que los tiempos de vida en caché de tus archivos estáticos (como JavaScript y CSS) se están gestionando correctamente.

Resumen de acciones:

  1. 🟢 Configurar tiempos de vida en caché de archivos estáticos en el archivo .htaccess (Apache) o en la configuración de Nginx.
  2. 🟢 Usar plugins de caché como WP Rocket o W3 Total Cache para gestionar la caché del navegador de manera sencilla.
  3. 🟢 Eliminar o posponer la carga de recursos innecesarios, como jQuery, si no se usan.
  4. 🟢Verificar el resultado con herramientas como Google PageSpeed Insights.

Esto optimizará los tiempos de vida de la caché del navegador, lo que debería mejorar la velocidad de la página en visitas repetidas y reducir el uso de ancho de banda innecesario.

Si deseas implementar una solución de caché personalizada solo para una página específica (en este caso, la landing page), puedes hacerlo sin necesidad de un plugin de caché completo. Sin embargo, en WordPress no hay una opción incorporada para gestionar la caché de una página específica de forma individual, por lo que necesitaremos un enfoque más personalizado.

💡Solución: Implementar un Sistema de Caché Personalizado para una Página

La idea es almacenar el HTML generado para esa página específica en una caché, y servirlo rápidamente cuando un usuario acceda a la página. Luego, cuando haya cambios en el contenido, se puede eliminar la caché de esa página.

A continuación, te explico cómo hacerlo.

1. Crear una caché personalizada para la página de Landing

Primero, necesitamos verificar si el contenido de la página ya está en caché, y si no lo está, generarlo y almacenarlo.

Pasos a seguir:

  1. Crear una función de caché personalizada en functions.php.
  2. Almacenar el contenido de la página de Landing en un archivo temporal.
  3. Servir el contenido almacenado si ya existe, evitando que WordPress lo vuelva a generar.

🧩 Código para functions.php:

// Función para manejar la caché en una página específica
function custom_page_cache() {
// Definir el slug de la página de Landing
$landing_slug = 'tu-landing-page';

// Verificar si estamos en la página de landing
if (is_page($landing_slug)) {
// Ruta del archivo de caché
$cache_file = __DIR__ . '/landing_cache.html';

// Si el archivo de caché existe, servirlo
if (file_exists($cache_file)) {
echo file_get_contents($cache_file); // Cargar el contenido desde la caché
exit; // Terminar la ejecución para evitar que se cargue el contenido dinámico de WordPress
} else {
// Obtenemos el contenido de la página
ob_start(); // Inicia el almacenamiento en búfer de la salida
while (have_posts()) : the_post();
the_content(); // Imprime el contenido de la página
endwhile;
$content = ob_get_clean(); // Obtiene el contenido generado

// Guardar el contenido en el archivo de caché
file_put_contents($cache_file, $content); // Guardamos el contenido en el archivo

echo $content; // Muestra el contenido al usuario
exit; // Termina la ejecución para evitar que WordPress lo regenere
}
}
}

add_action('template_redirect', 'custom_page_cache');

Explicación del código:

  • $landing_slug: Especificamos el slug de la página de Landing donde queremos implementar la caché. Asegúrate de que el slug sea correcto para la página específica que deseas optimizar.
  • $cache_file: Este es el archivo donde se almacenará el contenido de la página (en formato HTML). El archivo se guarda en la carpeta del tema (/landing_cache.html).
  • ob_start() y ob_get_clean(): Utilizamos estas funciones para capturar el contenido HTML generado por WordPress y almacenarlo en la caché.
  • file_put_contents(): Almacena el contenido generado de la página en el archivo de caché.

2. Configurar Expiración de la Caché (opcional)

Es posible que quieras que la caché expire después de un tiempo específico o cuando el contenido se actualice. Esto se puede hacer de varias maneras.

🧩 Ejemplo de expiración de caché:

// Función para manejar la expiración de la caché
function custom_page_cache_expiration() {
$landing_slug = 'tu-landing-page';
$cache_file = __DIR__ . '/landing_cache.html';

// Establecer la expiración de la caché en 24 horas
$cache_lifetime = 24 * 60 * 60; // 24 horas

// Si el archivo de caché existe y ha expirado
if (file_exists($cache_file) && (filemtime($cache_file) + $cache_lifetime < time())) {
unlink($cache_file); // Eliminar el archivo de caché expirado
}
}

add_action('template_redirect', 'custom_page_cache_expiration');

3. Limpiar la caché cuando se edite la página

Cada vez que se actualice el contenido de la página, será necesario limpiar la caché para que se sirva el contenido actualizado.

🧩 Código para limpiar la caché al guardar la página:

// Limpiar la caché al guardar la página
function custom_clear_page_cache($post_id) {
$landing_slug = 'tu-landing-page';

// Si no es la página de landing, salir
if (get_post_field('post_name', $post_id) !== $landing_slug) {
return;
}

// Ruta del archivo de caché
$cache_file = __DIR__ . '/landing_cache.html';

// Eliminar el archivo de caché
if (file_exists($cache_file)) {
unlink($cache_file);
}
}

add_action('save_post', 'custom_clear_page_cache');

Resumen de cómo funcionará:

  1. Caché: Cuando un usuario accede a la página de Landing, el contenido se verifica para ver si ya está almacenado en el archivo de caché. Si existe, se sirve directamente desde el archivo de caché.
  2. Actualización de contenido: Si el contenido de la página se actualiza, la caché se elimina automáticamente para que se sirva el contenido más reciente.
  3. Expiración de la caché: Puedes configurar un tiempo de expiración para la caché (en este ejemplo, 24 horas), y el sistema limpiará la caché de forma automática después de ese tiempo.

Pros y contras:

Pros:

  • ✔️ Rendimiento mejorado: La caché evita que WordPress vuelva a procesar la página cada vez que se carga, lo que mejora significativamente la velocidad de carga.
  • ✔️Control específico: Solo afecta a la página de Landing, por lo que puedes mantener el resto del sitio como está.

Contras:

  • Archivos de caché: Este método crea archivos de caché en tu servidor, lo que puede ocupar algo de espacio si tienes muchas páginas con caché.
  • Actualización manual de caché: Si tienes contenido dinámico que cambia frecuentemente en esa página, necesitarás manejar bien la actualización de la caché.

Alternativa: Usar un Plugin de Caché para una Página Específica

Si prefieres no escribir código, puedes usar un plugin como WP Rocket o W3 Total Cache para gestionar la caché y configurar reglas de caché específicas solo para la página de Landing.

El archivo landing_cache.html no se crea automáticamente, es parte de la solución personalizada que te proporcioné. El proceso que implementamos está diseñado para que el archivo se genere automáticamente cuando se accede a la página de Landing por primera vez y se almacene allí el contenido HTML de la página.

Aquí te explico cómo funciona:

1. Generación automática del archivo de caché 📄

Cuando un usuario accede por primera vez a la página de Landing, el contenido de la página se almacena en el archivo landing_cache.html en tu servidor (en la misma carpeta que tu archivo functions.php). Esto lo hace la función:

// Guardar el contenido en el archivo de caché
file_put_contents($cache_file, $content);

Este fragmento de código se encuentra dentro de la función custom_page_cache, que se encarga de verificar si el archivo de caché ya existe y, si no, lo crea. No necesitas crear el archivo manualmente, ya que el código se encargará de crearlo cuando sea necesario.

2. Ubicación del archivo de caché 📂

El archivo landing_cache.html se guardará en el directorio donde está tu archivo functions.php. Esto generalmente se encuentra en la carpeta de tu tema.

Si quieres especificar una ubicación diferente para el archivo de caché, por ejemplo, dentro de un subdirectorio llamado cache, puedes cambiar la ruta del archivo de caché en el código.

Por ejemplo, si deseas que el archivo se guarde en una subcarpeta /cache/, puedes modificar la ruta en el código:

// Ruta del archivo de caché (ubicado en una subcarpeta 'cache')
$cache_file = __DIR__ . '/cache/landing_cache.html';

De esta forma, el archivo landing_cache.html se guardará en el directorio /cache/ dentro de tu tema. Si decides hacerlo, asegúrate de crear la carpeta cache manualmente o habilitar los permisos adecuados para que WordPress pueda escribir en ella.

3. Comprobación de la caché

Cada vez que un usuario accede a la página de Landing, el código comprobará si el archivo landing_cache.html ya existe. Si existe, se sirve directamente el contenido desde ese archivo (en lugar de regenerarlo desde WordPress). Si no existe o ha caducado, se genera y se guarda el contenido en el archivo.


Resumen:

  • No necesitas crear el archivo landing_cache.html manualmente. El sistema lo creará automáticamente cuando sea necesario, es decir, la primera vez que un usuario accede a la página de Landing.
  • Si prefieres que el archivo se guarde en una carpeta diferente, puedes modificar la ruta en el código para que se guarde en otro lugar, como una subcarpeta /cache/. 📂
  • El código también se encarga de actualizar el archivo de caché si es necesario, por ejemplo, si el contenido de la página cambia.

Pasos para crear el archivo landing_cache.html manualmente:

  1. Accede a la página en tu navegador:
    • Abre https://tupaginawordpress.es/tu-landing-page/ en tu navegador. 🗹
  2. Ver el código fuente de la página:
    • Haz clic derecho en la página y selecciona «Ver código fuente de la página» o presiona Ctrl+U (Cmd+Option+U en Mac). 🗹
  3. Copiar el contenido HTML:
    • Copia todo el contenido del código fuente que aparece (esto es el HTML completo de la página). 🗹
  4. Crear el archivo landing_cache.html:
    • Abre un editor de texto (como Notepad en Windows, TextEdit en Mac o cualquier editor de código como Visual Studio Code).
    • Pega el contenido copiado de la página en el archivo de texto.
    • Guarda el archivo con el nombre landing_cache.html. 🗹
  5. Subir el archivo al servidor:
    • Accede a tu servidor de WordPress mediante FTP o utilizando el Administrador de archivos en cPanel.
    • Sube el archivo landing_cache.html a la raíz de tu tema o la carpeta donde has configurado el almacenamiento de la caché (por ejemplo, en wp-content/themes/tu-tema/ o en una carpeta de caché específica, si has configurado una). 🗹

Hay varias formas de descargar el código HTML de una página web directamente desde Google Chrome utilizando extensiones o herramientas incorporadas. Aquí te dejo algunas opciones:

1. Usar la Herramienta de «Guardar Página Como» de Chrome 💾

La manera más sencilla de obtener el código HTML de una página es utilizando la función «Guardar página como» de Chrome.

Pasos:

  1. Abre la página que deseas guardar.
  2. Haz clic derecho en la página y selecciona «Guardar como…» o presiona Ctrl+S (Cmd+S en Mac).
  3. En la ventana emergente, elige «Página completa» en el campo de «Tipo».
  4. Elige una carpeta para guardarlo y haz clic en «Guardar».

Esto guardará el HTML completo de la página, junto con los recursos relacionados (como imágenes, CSS, JS, etc.) en una carpeta.

2. Extensiones de Chrome para Descargar el HTML ⬇️

Si prefieres una extensión que te permita descargar el HTML de una página de manera más directa y cómoda, aquí tienes algunas buenas opciones:

1. «Web Scraper»

Esta extensión es bastante poderosa para realizar tareas de web scraping (extraer datos de páginas web). Puedes usarla para descargar el código HTML completo de una página.

  • Web Scraper: Web Scraper en Chrome Web Store.
  • Puedes configurar Web Scraper para extraer toda la página o seleccionar solo las partes del HTML que necesitas.

2. «SingleFile»

La extensión SingleFile te permite guardar una página web completa como un solo archivo HTML, sin necesidad de archivos adicionales como CSS o JavaScript separados. Es muy útil si solo deseas descargar el código HTML.

  • SingleFile: SingleFile en Chrome Web Store. Pasos para usar SingleFile:
    1. Instala la extensión desde el enlace proporcionado.
    2. Una vez instalada, abre la página que deseas descargar.
    3. Haz clic en el icono de SingleFile en la barra de herramientas de Chrome.
    4. La extensión descargará la página y la guardará como un archivo .html.

3. Usar las Herramientas de Desarrollador de Chrome ⚙️

Otra opción más avanzada es usar las Herramientas de Desarrollador de Chrome para ver y copiar el HTML directamente.

Pasos:

  1. Abre la página en Google Chrome.
  2. Haz clic derecho en la página y selecciona «Inspeccionar» o presiona Ctrl+Shift+I (Cmd+Option+I en Mac).
  3. Ve a la pestaña «Elements» (Elementos).
  4. Haz clic derecho en el código HTML que se muestra y selecciona «Copy» > «Copy outerHTML».
  5. Pega el código copiado en un archivo de texto y guárdalo con la extensión .html.

Automáticamente crear el archivo de caché con el código PHP:

Recuerda que, con el código que ya hemos creado anteriormente, no necesitas hacer esto manualmente. Una vez que implementes el código que desregistra y guarda la caché de la página, el archivo landing_cache.html se generará automáticamente la primera vez que alguien acceda a la página de Landing.

El código que te proporcioné anteriormente será el encargado de:

  1. Generar y almacenar el contenido HTML de la página.
  2. Servir ese archivo landing_cache.html cuando se acceda a la página de nuevo, para que no tenga que ser procesado por WordPress.

Comprobación después de generar el archivo:

  • Después de implementar el código en tu functions.php y acceder a la página, podrás ver el archivo landing_cache.html en la ubicación de tu servidor especificada. 👈🏻
  • Revisa que el archivo contenga el HTML adecuado y que esté sirviendo correctamente cuando accedes a la página de Landing. 👈🏻

El archivo landing_cache.html debe colocarse en una ubicación accesible para que pueda ser servido como caché cuando se acceda a la página de Landing. Dependiendo de cómo hayas configurado la caché personalizada y el servidor, aquí te explico dos opciones sobre dónde colocar el archivo:

1. Colocarlo en la carpeta del tema de WordPress (donde está functions.php) 📝

La ubicación más común para almacenar este archivo sería en la carpeta del tema donde tienes tu archivo functions.php. Aquí está el procedimiento:

Pasos:

  1. Ubicación del archivo landing_cache.html:
    • Si has usado el código PHP que te proporcioné para crear la caché, coloca el archivo landing_cache.html en la misma carpeta que tu archivo functions.php. Normalmente, esto será en: bashCopiarwp-content/themes/tu-tema/
    • Si has cambiado la ruta en el código, coloca el archivo en la carpeta que hayas especificado (por ejemplo, dentro de una subcarpeta llamada cache/).
  2. Acceder al archivo desde el navegador:
    • Al colocar el archivo en la carpeta de tu tema, WordPress lo servirá cuando un usuario visite la página de Landing.
    • Si estás usando un plugin de caché o un sistema personalizado, asegúrate de que la ruta al archivo sea la correcta.

2. Colocarlo en una carpeta específica de caché 📂

Si prefieres usar una carpeta dedicada a la caché para almacenar el archivo, puedes crear una nueva carpeta dentro de tu instalación de WordPress (por ejemplo, /cache/) y guardar el archivo ahí.

Pasos:

  1. Crear la carpeta cache/: 1️⃣
    • En tu servidor, ve a la carpeta de tu tema o a la raíz de tu instalación de WordPress.
    • Crea una carpeta llamada cache (o cualquier nombre que prefieras).
    • La ruta será algo como: swiftCopiarwp-content/themes/tu-tema/cache/
  2. Colocar el archivo landing_cache.html en la nueva carpeta: 2️⃣
    • Coloca el archivo landing_cache.html dentro de la carpeta cache/.
  3. Modificar el código PHP para que apunte a la nueva carpeta: 3️⃣
    Si decides usar una carpeta diferente para la caché, asegúrate de modificar el código PHP que maneja la caché, específicamente la ruta donde se guarda el archivo de caché. Cambia el código de esta manera:
// Ruta del archivo de caché (ubicado en una subcarpeta 'cache')
$cache_file = __DIR__ . '/cache/landing_cache.html'; // Cambia 'cache' por la carpeta donde guardes el archivo

3. Verificar el funcionamiento ✔️

Una vez que hayas colocado el archivo en la ubicación deseada, asegúrate de que todo funcione correctamente:

  1. **Visita la página de Landing: Accede a la página de Landing en tu navegador y asegúrate de que el contenido se cargue rápidamente, sin necesidad de procesar todo desde WordPress. ✅
  2. Verifica el archivo de caché: Verifica si el archivo landing_cache.html se está sirviendo correctamente cuando visitas la página de Landing. ✅
  3. Limpiar la caché cuando sea necesario: Si actualizas el contenido de la página, asegúrate de que el archivo landing_cache.html se elimine y se regenere. ✅

Para usar landing_cache.html en tu página de Landing y mejorar el rendimiento utilizando caché personalizada, el código PHP necesario debe verificar si el archivo landing_cache.html ya existe y, si es así, servirlo directamente. Si no existe, lo generará y lo almacenará.

Aquí tienes el código completo para la plantilla de WordPress, que usará landing_cache.html como archivo de caché:

🧩 Código completo para la plantilla de WordPress:

<?php
/*
Template Name: Página Landing Fast
*/

// Función para manejar la caché personalizada
function custom_page_cache() {
// Definir el slug de la página de Landing
$landing_slug = 'tu-landing-page';

// Verificar si estamos en la página de landing
if (is_page($landing_slug)) {
// Ruta del archivo de caché
$cache_file = __DIR__ . '/landing_cache.html'; // Cambia la ruta si usas una carpeta distinta

// Si el archivo de caché existe, servirlo
if (file_exists($cache_file)) {
echo file_get_contents($cache_file); // Cargar el contenido desde la caché
exit; // Terminar la ejecución para evitar que se cargue el contenido dinámico de WordPress
} else {
// Obtenemos el contenido de la página
ob_start(); // Inicia el almacenamiento en búfer de la salida
while (have_posts()) : the_post();
the_content(); // Imprime el contenido de la página
endwhile;
$content = ob_get_clean(); // Obtiene el contenido generado

// Guardar el contenido en el archivo de caché
file_put_contents($cache_file, $content); // Guardamos el contenido en el archivo

echo $content; // Muestra el contenido al usuario
exit; // Termina la ejecución para evitar que WordPress lo regenere
}
}
}

add_action('template_redirect', 'custom_page_cache');

// Eliminar jQuery si no se necesita en la página de Landing
function remove_unused_scripts() {
if (is_page('tu-landing-page')) {
wp_dequeue_script('jquery'); // Elimina jQuery si no se necesita
}
}

add_action('wp_enqueue_scripts', 'remove_unused_scripts', 20);

// Eliminar CSS de Gutenberg si no se necesita en la página de Landing
function remove_gutenberg_css() {
if (is_page('tu-landing-page')) {
wp_dequeue_style('wp-block-library'); // Elimina el CSS de Gutenberg
}
}

add_action('wp_enqueue_scripts', 'remove_gutenberg_css', 20);

// Posponer el CSS no crítico solo en esta página específica
function wp_defer_css_single_page($tag, $handle) {
if ('wp-block-library' !== $handle) {
return $tag;
}
return str_replace("rel='stylesheet'", "rel='stylesheet' media='print' onload=\"this.media='all'\"", $tag);
}
add_filter('style_loader_tag', 'wp_defer_css_single_page', 10, 2);

?>

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?php the_title(); ?></title>

<?php wp_head(); ?>

<!-- CSS Crítico en línea (para mejorar el rendimiento en la carga inicial) -->
<style>
// Pega tus estilos aquí
</style>

</head>

<body style="margin:0; padding:0;">
<?php
while (have_posts()) : the_post();
the_content();
endwhile;
?>


<?php wp_footer(); ?>

<!-- Si jQuery no es necesario, no cargarlo -->
<!-- Si es necesario, se puede cargar deferido al final del body -->
<!-- Si decides no usar jQuery, elimina la siguiente línea de código -->
<script src="https://tupaginawordpress.es/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" defer="defer"></script>
<script src="https://tupaginawordpress.es/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" defer="defer"></script>

</body>
</html>

Explicación de lo que hace este código:

  1. custom_page_cache: Esta función verifica si estamos en la página de Landing. Si el archivo landing_cache.html ya existe, lo servirá. Si no, generará el contenido de la página y lo almacenará en el archivo de caché.
  2. Eliminación de jQuery: Si no se necesita jQuery en la página de Landing, se desregistrará para evitar que se cargue innecesariamente, como se hace en la función remove_unused_scripts.
  3. Eliminación del CSS de Gutenberg: Si no usas el editor de bloques (Gutenberg) en la página, eliminamos el archivo wp-block-library con la función remove_gutenberg_css.
  4. Posponer el CSS no crítico: Con la función wp_defer_css_single_page, retrasamos la carga del CSS de Gutenberg, asegurando que se cargue solo después de que la página esté lista.
  5. Estructura HTML: El contenido de la página se carga de manera normal si el archivo de caché no está disponible. Si está disponible, se servirá directamente desde landing_cache.html.

¿Cómo funciona? ❓

  • Cuando alguien accede a la página de Landing, el código verifica si el archivo landing_cache.html existe. Si lo encuentra, se muestra inmediatamente sin necesidad de procesar WordPress. ✅
  • Si el archivo no existe, WordPress genera el contenido, lo almacena en el archivo landing_cache.html, y lo muestra al usuario. ✅
  • Al actualizar el contenido de la página, la caché se eliminará automáticamente, lo que garantiza que el contenido siempre sea actualizado. ✅

Verificación:

  1. Accede a la página de Landing: Después de agregar este código, visita la página de Landing en tu navegador.
  2. Verifica el archivo de caché: Asegúrate de que el archivo landing_cache.html se ha generado en la ubicación correcta de tu servidor.
  3. Compara el rendimiento: Utiliza herramientas como Google PageSpeed Insights o GTmetrix para verificar la mejora en la velocidad de la página.

.

Con todo esto ya deberias ver un cambio significativo en tu valoración de la performance de tu WordPress en PageSpeed Insights para una Landing Page Ultrarápida!

.

Categor铆a: Tema Astra

Categor铆a: Errores PageSpeed para WordPress

Scroll al inicio