>

¿Cómo reducir peticiones HTTP por defecto en WordPress?

Fernan Díez     Colaboraciones    22/12/2017


Uno de los principales obstáculos que se alegan en contra de WordPress por parte de sus detractores es que es un sistema de contenidos pesado y con demasiadas funcionalidades para según qué proyectos.

Y, ciertamente, no les falta razón. Componer un CMS que permita a usuarios sin experiencia diseñar su propia web, pero también que posibilite a desarrolladores experimentados exprimir la herramienta para desarrollos más complejos, es algo difícil de conseguir y tiene un precio que pagar. WordPress no es un sistema ligero.

Reducir peticiones HTTP por defecto WordPress

Pero este inconveniente no impide que en la práctica podamos crear sitios web que sí sean ligeros y se comporten de una manera veloz. Trabajar en la optimización del rendimiento de un sitio web pasa por ser un requisito indispensable para afinar cualquier desarrollo.

Aligerando la carga de una instalación de WordPress por defecto

Siguiendo esa máxima vamos a intentar conocer con qué elementos de WordPress out-of-the-box podemos trabajar para agilizar su carga, al menos en el frontend y conseguir un desarrollo más optimizado.

Llámalo WPO, llámalo buenas prácticas o simplemente llámalo KISS, pero, en cualquier caso, menos es más. A continuación os dejamos un listado recopilatorio de algunas acciones que podemos llevar a cabo, sin demasiado esfuerzo, para reducir las peticiones de nuestro sitio web creado con WordPress.

Deshabilitar el uso de Gravatar

El sistema de comentarios de WordPress incorpora el servicio de Gravatar para mostrar imágenes en cada uno de los comentarios publicados indicando cuál es su autor. Este servicio añade peticiones HTTP que quizás puedan resultar innecesarias, que aumentan a medida que el número de comentarios de un artículo también crece.

Si accedemos a Ajustes / Comentarios / Avatar por defecto, podremos desactivar la opción de mostrar imágenes en los comentarios a modo de avatar.

Eliminar comentarios

En efecto, el propio uso de comentarios supone la carga de archivos adicionales. Si estás usando el sistema por defecto de comentarios de WordPress es algo necesario y justificado, pero en caso contrario podemos evitar su carga.

Podemos evitar la carga del sistema de respuesta de comentarios con la siguiente función dentro de nuestro archivo functions.php:

// Disable Comments Reply

function comments_clean_header_hook(){

wp_deregister_script( 'comment-reply' );

}

add_action('init','comments_clean_header_hook');

Evitar la carga de emojis

Aparte de no ser demasiado serio en según qué contextos, su uso es algo residual y probablemente no los necesitemos para nuestro proyecto. Hablamos de los emojis, que desde hace algunas versiones de WordPress vienen instalados por defecto.

Con una función podremos evitar su carga y conseguiremos ahorrarnos algunas peticiones extra en el caso de que no vayamos a utilizar estos simpáticos iconos.

// Disable Emoji load

function disable_wp_emojicons() {

add_filter( 'tiny_mce_plugins', 'disable_emojicons_tinymce');

remove_action('admin_print_styles', 'print_emoji_styles');

remove_action('wp_head', 'print_emoji_detection_script', 1);

remove_action('admin_print_scripts', 'print_emoji_detection_script');

remove_action('wp_print_styles', 'print_emoji_styles');

remove_filter('wp_mail', 'wp_staticize_emoji_for_email');

remove_filter('the_content_feed', 'wp_staticize_emoji');

remove_filter('comment_text_rss', 'wp_staticize_emoji');

}

function disable_emojicons_tinymce( $plugins ) {

if (is_array($plugins)) {

return array_diff($plugins, array('wpemoji'));

} else {

return array();

}

}

add_action('init', 'disable_wp_emojicons');

Deshabilitar embeds

En WordPress disponemos de la posibilidad de previsualizar elementos multimedia desde servicios como YouTube o Vimeo con tan solo insertar una URL en nuestro editor de contenido.

Facilita enormemente el trabajo para el usuario que crea el contenido, pero si conocemos el vídeo que estamos insertando quizás no necesitemos realmente esa ayuda. Podemos evitar su carga con la siguiente función:

// Disable Embeds

function disable_embeds_wp_embed() {

if (!is_admin()) {

wp_deregister_script('wp-embed');

}

}

add_action('init', 'disable_embeds_wp_embed');

Eliminar las cadenas de consultas

Cuando hablamos de cadenas de consultas nos referimos a la traducción del término, Query Qtrings. Estas cadenas se incluyen detrás de determinadas URLs correspondientes a scripts y determinan datos como la versión a la que corresponden.

Eviutar su uso es una buena práctica de cara al rendimiento así que mediante la siguiente funcionalidad podemos eliminarlas:

// Remove Query Strings

function _remove_script_version( $src ){

$parts = explode( '?ver', $src );

return $parts[0];

}

add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );

add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );

Ayudándonos de algunos plugins recomendados

Una de las principales recomendaciones es la de no instalar y activar más plugins de los necesarios en nuestras instalaciones, pero en este caso, vamos a mirar para otro lado y a recomendar dos estupendos complementos para nuestro WordPress que permitirán de una vez, deshabilitar muchas opciones prescindibles en nuestro proyecto.

WPO Tweaks

WPO Tweaks es un plugins desarrollado por Fernando Tellado, experto en WordPress al que probablemente conozcas por su sitio web de ayuda y recursos sobre WordPress, Ayuda WordPress.

Con este plugin, y con su simple instalación vamos a implementar una serie de medidas enfocadas a mejorar en rendimiento de nuestra web. Muchas de ellas están pensadas en los propios elementos que WordPress incorpora por defecto, tratando de evitar la carga de elementos innecesarios.

Este es el listado de funcionalidades implementadas actualmente con este plugin:

  • Eliminar los Dashicons de la barra de administración
  • Eliminar estilos y scripts de Emoji
  • Desactivar la REST API
  • Controlar el intervalo de la Heartbeat API
  • Eliminar cadenas de petición de los recursos estáticos
  • Atrasar la carga de JavaScript
  • Eliminar cadenas de petición de Gravatar
  • Eliminar el enlace de Really Simple Discovery de la cabecera
  • Eliminar wlwmanifest.xml (Windows Live Writer) de la cabecera
  • Eliminar la URL de enlace corto de la cabecera
  • Eliminar el generador de versión de WordPress de la cabecera
  • Eliminar la precarga de DNS de s.w.org
  • Eliminar jquery_migrate
  • Eliminar enlaces innecesarios de la cabecera
  • Eliminar el nombre de generador de los feeds RSS
  • Eliminar el filtro Capital P Dangit
  • Desactivar la vista previa de las miniaturas de PDF

Machete

Machete es otro de los plugins que hoy queremos recomendar, y, curiosamente, también ha sido creado por un desarrollador español.

En este caso Nilo Vélez nos ofrece un conjunto de herramientas que tienen como fin solucionar gran parte de los inconvenientes más comunes de WordPress tratando de mejorar el rendimiento de cualquier instalación.

Incorpora muchas funcionalidades, y va en aumento, entre ellas, podemos destacar las siguientes:

  • Limpieza de la cabecera
  • Aviso de ley de cookie
  • Implementación del código de Google Analytics
  • Modo mantenimiento
  • Duplicado de entradas y páginas

En la parte que más nos toca en este artículo podemos hablar sobre la limpieza de la cabecera donde WordPress tradicionalmente introduce muchísimo código dentro de la etiqueta <head> que busca la compatibilidad con código antiguo y antiguas versiones, pero que es contraproducente para una carga óptima, sencilla y con la mínima cantidad de recursos en uso.

Conclusiones

En definitiva, hemos expuesto algunas herramientas, funcionalidades y soluciones de código para implementar mejoras de carga, rendimiento y reducir las peticiones HTTP a nuestro servidor.

Podemos quejarnos y decir que WordPress es un CMS pesado y cargado de funcionalidades innecesarias, pero lo que no podemos decir es que no tenemos soluciones a nuestro alcance para mejorar ese problema. Así que, manos a la obra, y a mejorar nuestros desarrollos creados con WordPress.


Sobre el autor

Fernan Díez   

Desarrollo Web WordPress & Marketing Online Publico 'WordPress Diario', un podcast sobre desarrollo web con WordPress y marketing online donde encontrarás consejos, herramientas y recomendaciones sobre todo lo que te puede interesar acerca del mundo del diseño web con WordPress, y el marketing digital.