• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Optimizar la carga de Javascript en WordPress con Async y Defer

Optimizar la carga de Javascript en WordPress con Async y Defer

[ 28 noviembre 2023 ] [ Autor: Jhon Marreros Guzmán ][ Core - Avanzado] [ ]

js optimización

Suscríbete a DecodeCMS:  

En este artículo veremos la optimización de la carga de archivos Javascript en WordPress haciendo uso de los atributos async y defer. Veremos cómo realizarlo directamente a través de código.

 

Generalidades

En WordPress, debido a la cantidad de plugins, tenemos muchas veces que cargar muchos archivos Javascript, sin embargo estos no siempre son necesarios para la visualización del sitio, por lo que podemos posponer su carga.

<script>

En el siguiente esquema vemos la carga de archivos scripts por defecto, como podemos observar se empieza cargando el HTML, pero luego hay una pausa para poder cargar el archivo javascript, y una vez cargado se ejecuta, luego sigue la carga de HTML.

script sin atributos

 

<script async>

Si usamos el atributo async, optimizamos un poco la carga HTML, ya que se seguirá cargando mientras también se carga el archivo javascript, sin embargo se pausará la carga de HTML para realizar la ejecución, para finalmente seguir la carga de HTML.

script con atributo async

 

<script defer>

Si usamos el atributo defer, no interrumpimos la carga HTML, la descarga del archivo javascript se realiza igualmente cuando el HTML se esta cargando, pero la ejecución de javascript se realiza al final de la carga.

script con atributo defer

 

Agregar el atributo async o defer en la carga de scripts

Para aplicar el siguiente código tienes que detectar con que handle o identificador se han registrado los scripts que quieres diferir la carga (Tienes que remplazar xxx o yyy)

Puedes agregar el siguiente código en el archivo functions.php de tu tema hijo
add_filter('script_loader_tag', 'dcms_defer_javascript', 10, 2);
function dcms_defer_javascript($tag, $handle){
	
	$defer_handles = ['xxxx', 'yyyy'];

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

 
En el código anterior:

  • Usamos el Hook de filtro script_loader_tag que hace referencia a la función dcms_defer_javascript
  • En la función usamos dos parámetros: para el HTML generado y para el identificador del script
  • En el array $defer_handles, establecemos los handles que queremos diferir
  • Si se cumple la condición entonces inyectamos en el HTML, agregando el atributo correspondiente, ya sea defer o async

 

Conclusión

Como has podido comprobar puedes optimizar la carga de scripts directamente a través de código inyectando el atributo de async o defer al HTML generado.

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Carga de Javascript y CSS al footer en WordPressMover la carga de Javascript y CSS al footer en WordPress
  • Insertar Javascript en WordPressInsertar javascript en WordPress de forma correcta
  • Enviar datos PHP a Javascript en WordPressEnviar datos desde PHP a Javascript en WordPress
  • crear Quickstart en WordPressCrear un paquete Quickstart en WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (3 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Jonathan

    15 mayo, 2024

    Hola Jhon,

    Gracias por la información. ¿Sabes como puedo evitar encadenar solicitudes críticas para CSS?

    Según https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains?utm_source=lighthouse&utm_medium=lr&hl=es-419, seguieren cargar de forma async el css.

    Estoy buscando algún snippet que me ayude.

    Gracias de antemano

    • Jhon Marreros Guzmán

      1 junio, 2024

      Hola
      Usualmente el código CSS crítico para tu sitio se cargará como parte del documento junto al HTML, para esto puedes poner ese código desde el Personalizador del tema: Apariencia > Temas > Personalizar > CSS

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Omnisend
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad SEO social woocommerce

Populares

Evitar la selección de texto, copiar y pegar en WordPress

Redirecciones en WordPress a través de código

Recomendaciones para editar código en WordPress

Modificar el precio de un producto por código en WooCommerce

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2026 Todos los derechos reservados