Cómo mejorar el rendimiento de WordPress limitando el impacto de los plugins

Preocupados como estamos siempre por el rendimiento de nuestro sitio web, vamos a trabajar hoy sobre cómo limitar el impacto que tienen algunos plugins, y algunos temas, sobre nuestras páginas, en concreto aquellos que incluyen scripts y estilos a la página.

Ejemplos habituales de estos plugins son los relacionados con comentarios o con formularios de contacto, que normalmente se utilizan en ciertas páginas y no en todas, por lo que inciden en el rendimiento de todas nuestras páginas.

La técnica a aplicar consiste en «sacar de la cola«, o dequeue, aquellos scripts y estilos que sólo queremos utilizar en algunas páginas, utilizando wp_dequeue_scriptwp_dequeue_style. Se trata de una mejora menor, pero todo suma.

Un ejemplo concreto lo tenemos con el plugin Contact Form Builder, que nos permite crear formularios de contacto para nuestras páginas aunque incluye una gran cantidad de scripts y estilos a nuestra página, es decir, una carga innecesaria de recursos en muchas páginas que no van a utilizar dicho plugin.

Para realizar dicha mejora sólo tenemos que añadir las siguientes líneas a nuestro fichero functions.php del tema activo:

function remove_unused_assets()
{
	// --- dequeue Contact Form Builder script/style on every page except contact page	
	if ( !is_page("contacto") ) {
	  wp_dequeue_style('contact_form_maker_tables');
	  wp_dequeue_style('contact_form_maker_first');
	  wp_dequeue_style('contact_form_maker_style');
	  wp_dequeue_style('contact_form_maker_codemirror');
	  wp_dequeue_style('contact_form_maker_layout');
	  wp_dequeue_style('contact_form_maker_frontend');
	  
	  wp_dequeue_script('thickbox');
	  wp_dequeue_script('jquery-ui-widget');
	  wp_dequeue_script('jquery-effects-shake');
	  wp_dequeue_script('jquery-ui-sortable');
	  wp_dequeue_script('gmap_form_api');
	  wp_dequeue_script('gmap_form');
	  wp_dequeue_script('contact_form_maker_admin');
	  wp_dequeue_script('contact_form_maker_manage');
	  wp_dequeue_script('contactformmaker');
	  wp_dequeue_script('contact_form_maker_codemirror');
	  wp_dequeue_script('contact_form_maker_clike');
	  wp_dequeue_script('contact_form_maker_formatting');
	  wp_dequeue_script('contact_form_maker_css');
	  wp_dequeue_script('contact_form_maker_javascript');
	  wp_dequeue_script('contact_form_maker_xml');
	  wp_dequeue_script('contact_form_maker_php');
	  wp_dequeue_script('contact_form_maker_htmlmixed');
	  wp_dequeue_script('cfm_main_front_end');
	 }
}
//Last action
add_action( 'wp_enqueue_scripts', 'remove_unused_assets', 9999 );

El código es bastante sencillo de entender y se basa en ejecutar en el último momento (orden 9999 o más) nuestra función que saca de la cola de scripts y estilos aquellos que sólo queremos usar en una página concreta, en nuestro caso, la página de contacto.

El listado de scripts y estilos debemos sacarlo del propio plugin, por lo que a cada actualización del mismo, será necesario revisar los cambios en el código (un pequeño inconveniente para una gran mejora).

Otro ejemplo sencillo podría ser eliminar el sistema de comentarios, o de noticias relacionadas, de nuestra home o de subpáginas de búsqueda o topic, donde normalmente no lo utilizamos.

¿Qué mejoras vamos a obtener? Dos claras y una menor en función de la carga de vuestro sitio:

  1. Tiempo de carga menor de nuestra página, al realizar menos llamadas a recursos.
  2. Mejor puntuación en el famoso Google PageSpeed Insights, al cargar menos recursos
  3. Menos consumo de recursos de nuestro servidor.

Nota: recordad que esta técnica sólo es viable si el plugin en cuestión utiliza wp_enqueue_scriptwp_enqueue_style, que debe ser lo habitual, aunque todavía encontramos enlaces

Este tipo de técnicas podemos emplearla tantas veces como sea necesario y es compatible con otras técnicas de mejora de rendimiento.

 

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(13 votos, promedio: 4.5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

8 comentarios en “Cómo mejorar el rendimiento de WordPress limitando el impacto de los plugins”

        1. Fernando Puente

          Si, encontrarás código de este estilo:

          wp_enqueue_script(‘jquery’);
          wp_enqueue_script(‘jquery-ui-widget’);
          wp_enqueue_script(‘jquery-effects-shake’);

  1. Hola muy buenos tus consejos, ahora una pregunta si quiero agregar varias páginas para que usen dicho plugins como haría les pondría varios «o» ( || ) al if?

  2. Fernando Jiménez

    Para los estilos de los temas debería existir, si no existe ya, algún plugin o algo del propio tema que cargue solo la parte del css que utilice la página o entrada.

    No es muy lógico que en temas, como Extra, que tienen 739kb de estilos se tenga que cargar todo si luego igual se utiliza un 10% o menos.

    1. Fernando Puente

      Normalmente se incluye todo el CSS en un sólo archivo para que la primera vez que el navegador del usuario visita cualquiera de las páginas, el CSS quede cacheado y no tenga que volver a descargarlo al navegar por cualquier otra página. Misma técnica se emplea con javascript e incluso las imágenes.
      Lo que propones es viable técnicamente y se podría afrontar de dos formas, aunque dudo de su efectividad:
      – Creando un archivo CSS por cada HTML. Mala idea para mantener luego la web.
      – Crear un plugin, o similar, que preprocese la página HTML y devuelva un CSS dinámicamente sólo con los elementos necesarios. Muy costoso de procesar.

      Saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido