Categorías
Crear un blog

Cómo los plugins afectan a la optimización de tu WordPress

Un WordPress no está completo hasta que instalas el primer plugin. Ya sea de seguridad, SEO o para insertar formularios, todos tenemos instalado 1 plugin como mínimo en nuestro sitio. Y permíteme decirte que, con total seguridad, tienes más de 3.

Si buscas información en Internet sobre cuántos plugins debemos tener instalados o, viéndolo desde el otro lado, cuántos plugins podemos llegar a instalar sin que se resienta nuestra web… La respuesta no es específica. Todos los artículos se limitan a decirnos “no tengas muchos plugins“, “tener demasiados plugins“… ¿Pero cuántos son muchos o demasiados?

Lamento decirte que en este post no voy a darte una respuesta.
De hecho, creo que no es fácil dar una cifra generalista. Pero puede dar para otro post…

Lo que sí puedo demostrarte es que según qué plugins tengas instalados, tu web se verá afectada en mayor o menor medida. Además, gracias a este ejercicio podremos saber cuáles son los peores plugins para WordPress y qué alternativas tenemos.

Descubriendo al plugin traidor con P3 Performance Profiler

Cada pocos meses me gusta revisar mi sitio para ver qué está fallando a nivel técnico y encontrar una solución. Como tenía la ligera sensación de tener demasiados plugins instalados, me propuse investigar y ver si estaban afectando y en qué medida a mi blog.

Para hacer esto instalé el plugin P3 Performance Profiler, uno de los mejores inventos de la historia. Puedes encontrarlo en el repositorio oficial de plugins de WordPress porque es gratuito: lo instalas y listo.

Para que el plugin pueda analizar todo nuestro sitio tendrás que dirigirte a Herramientas > P3 Performance Profiler. En la pantalla que aparece ante ti, pulsa sobre Scan Now y espera a que la barra de progreso llegue al final. Una vez termine, podrás seleccionar el botón View Results.

¿Preparado para ver mis escalofriantes resultados?

Mi panorama: una selva de plugins

Antes de la optimización de los plugins

Total de plugins instalados: 23. Madre mía, ¡me he pasado!
Tiempo de carga de plugins: 4.56 segundos por cada visita. Esto significa que cada persona que entra en mi web invierte 4 segundos y medio en que los plugins carguen. Teniendo en cuenta que si una página tarda más de 3 segundos en cargar nos vamos sin verla, ¡este dato es horrible!
Impacto de los plugins: 73.1%. Se refiere al impacto que tienen los plugins sobre el rendimiento total de la página.

Así que tras esta sorpresa que me he llevado y que me ha valido para saber que no solo basta con tener un theme rápido y optimizado, me he puesto manos a la obra.

Procedimiento

Ante un panorama tan tenebroso lo primero que hay que plantearse es lo siguiente:
¿Qué plugins para WordPress de los más pesados son imprescindibles para mi sitio y no puedo eliminar?

O también llamados “los intocables”, que en mi caso estaban muy claros:

  • Akismet: para evitar el SPAM en los comentarios.
  • AMP: para que el tema siga los estándares de las Accelerated Mobile Pages Project. Estoy convencida de que esto influirá, tarde o temprano, en el SEO.
  • Autoptimize: para minificar archivos JS y CSS. Podría minificar los archivos manualmente y prescindir de este plugin. Lo estudiaré.
  • W3 Total Cache: sistema de caché para que el sitio tarde menos en cargar.
  • Wordfence Security: para tener mi web blindada contra posibles ataques.
  • WP-Optimize: para optimizar la base de datos de vez en cuando.
  • WordPress SEO by Yoast: para trabajar el SEO de todo el contenido.
  • Testimonios: plugin creado por mí para mostrarlos (puedes ver uno aquí).
  • Funciones de Lúa: otro intocable que me sirve para no sobrecargar el archivo de funciones.

De esta forma, de los 23 plugins instalados 9 son imprescindibles para que el mundo siga girando. Por tanto se quedan en 14 los plugins a los que puedo meterles mano.

Si quisiera, podría combinar (meter en un único archivo) los dos últimos plugins de este listado y prescindir del AMP y Autoptimize. Pero no quiero cambiarlos ni eliminarlos: prefiero sacrificar otros plugins.

Descartando plugins

Contact Form 7 es el plugin más conocido para la creación de formularios de contacto en WordPress. De hecho, he buscado en el directorio oficial alternativas y ninguna me ha llamado especialmente la atención. Desde aquí aprovecho para decirte que, si tu sabes de algún otro plugin para hacer exactamente lo mismo, te animes a contármelo en un comentario para poder ponerlo a prueba.

Por lo tanto el panorama que tenía era el siguiente: un plugin que estaba ralentizando la carga de todo mi sitio web, ¡utilizándolo solo en 3 páginas! ¿No es de locos? Así que me arremangué y me dije eso de Lúa, si no puedes con tu enemigo únete a él.

¿Para qué cargar todo el código de Contact Form 7 en todas las páginas, si solo es necesario en 3? Así que me puse a hacer un arreglillo por aquí y otro por allá: tocar el código para hacer que este plugin cargue única y exclusivamente en las páginas en las que se muestra.

Tras terminar este post, estoy estudiando la posibilidad de olvidarme de Contact Form 7 para siempre. He decidido crearme mi propio plugin para crear un formulario rápido y sencillo, con sistema reCAPTCHA para evitar SPAM. Este lo utilizaré en mi página de Contacto. En cuanto a las cajas de suscripción… ¡Es el reto que tengo pendiente! Encontrar la forma de que se sincronice el plugin con MailChimp.

Lo mismo sucede con el plugin WP Post Ratings: me interesa que las estrellas se carguen tanto en el blog como en cada post individual, pero no lo uso en mi página principal, sobre mí, contacto… Así que toca hacer otro apaño con código a medida para limitar la carga de este plugin donde no debe.

En cuanto al plugin Easy Social Share Buttons, he decidido sustituirlo (consumía un 20%) por otro más liviano llamado Monarch (que consume nada más que un 3%). También es un plugin de wordpress para redes sociales de pago con funcionalidades más que suficientes para el uso que le doy, además de consumir muchos menos recursos que el anterior.

Y si te estás preguntando por el plugin Revive Old Post, sencillamente he decidido eliminarlo sin más. Aunque sirve para autopublicar posts y dirigir tráfico a tu blog, lo que estaba notando era que desde que lo había activado estaba perdiendo seguidores en Twitter. Y aunque también los ganaba, no al mismo ritmo. Esa imagen de automatizado que estaba teniendo mi perfil no me estaba gustando: por mucho tiempo que pusiese entre cada autopublicación, no era el suficiente (no soy tan activa en Twitter como para que no se note). Así que ver los resultados que me arrojaba P3 Performance Profile ha sido el último empujón que necesitaba para dejar de darle más oportunidades.

El plugin Cookie Law Info no me convencía, así que decidí cambiarlo por otro plugin de cookies para wordpress llamado Cookie Notice.

He eliminado el plugin Font Awesome 4 Menus. Lo tenía instalado y la verdad es que no me hacía falta, ya que la librería de Font Awesome ya estaba cargada en la plantilla del tema (¿en qué momento decidí meterlo?).

He decidido prescindir del plugin wBounce. No me gustan los popups, pero como sé que aumentan la conversión de suscriptores decidí instalarlo en su momento y ahora creo que para qué molestar a nadie con ventanas emergentes. Si estás buscando un plugin gratuito, este cumple totalmente con su función (y es bastante liviano).

Otro plugin que me he cargado: WPSecureOps Easy Firewall. Espero que con Wordfence Security y teniendo el buen hosting que tengo sea suficiente 😉

Así que todas estas pequeñas mejoras, viéndolas independientemente, pueden no significar gran cosa. Pero en un resultado global… ¡Vaya que si influyen!

Sería bueno prescindir del plugin Ultimate Shortcodes. Como puedes ver en el pantallazo inicial, es el tercer plugin (sin contar con los imprescindibles) que más ralentiza la web. El problema es que, si lo desinstalo ahora, tendré que eliminar manualmente todos los códigos que ha puesto. Probablemente lo haga, pero ahora mismo me resulta imposible por falta de tiempo (y ganas, para qué nos vamos a engañar). Ahora entiendes porqué estoy en contra de los shortcodes, ¿no?

Resumiendo

  • He eliminado los plugins Revive Old Post, Font Awesome 4 Menus, wBounce y WPSecureOps Easy Firewall.
  • He cambiado Easy Social Share Buttons y Cookie Law Info por otros plugins más livianos.
  • He optimizado la carga de Contact Form 7 y WP Post Ratings.

Resultados tras la optimización de plugins

Resultados tras la optimización de los plugins de WordPress

ANTES DESPUÉS
Plugins instalados 23 19
Tiempo de carga de los plugins (segundos) 4.56 0.92
Impacto de los plugins 73.1% 72.8%
Llamadas MySQL 53 40

Eliminando 4 plugins, sustituyendo algunos por otros más livianos y optimizando el código donde era necesario, conseguí mejorar el tiempo de carga de los plugins un 80%. El otro dato relevante es el de la reducción en número de llamadas a la base de datos, que pasamos de 53 a 40 (-7). Aún así, el impacto de los plugins sobre el rendimiento de la página sigue siendo bastante elevado (aunque lo lograse reducir un 0,3%): no puedo permitir que afecten cerca de un 73%.

Este ejercicio forma parte del proceso que hay que llevar a cabo para optimizar wordpress. Voy a continuar investigando sobre los formularios de contacto y sobre la elaboración de un plugin propio, y después volveré a hacer un test con el objetivo de ver si consigo reducir más el impacto de los plugins: menos del 50% sería un valor aceptable. ¿Cuento contigo para verlo?

8 respuestas a «Cómo los plugins afectan a la optimización de tu WordPress»

Definitimante estamos totalmente deacuerdo con lo que dices en el artículo.

En estos momentos estoy en proceso de disminuir la carga de mi blog para mejorar el posicionamiento. El problema es cuando uno se plantea nuevas “funcionalidades” para el blog, termina cargando una cantidad de plugins innecesarios y que afectan la misma experiencia que uno quería mejorar.

He utilizado el mismo plugin de p3 y es genial cómo te direcciona para preguntarte la necesidad de ese plugin o no. He puesto manos a la obra, gracias por compartir tu experiencia.

PD. Espero llegar al punto de decir “Creo que me crearé un plugin a la medida” cómo lo leí aquí XD

Gracias Lúa

Con WordPress hoy en día podemos hacer de todo, y lo realmente complicado es mantener la cabeza fría para no querer tenerlo todo implementado en nuestro sitio. Creo que debemos tener muy claro el objetivo de nuestra web y lo que realmente necesitamos en ella, para no dejarnos llevar por modas que sobrecargan nuestro sitio de forma innecesaria.

Gracias por pasarte por aquí Felipe y animarte a comentar para compartir tu experiencia 🙂
P.D.: Decir eso era impensable para mí hace algún tiempo, así que con ganas y esfuerzo todo es posible (créeme). Saludos!

Hola, muy interesante el post, sirve tener cosas en claro.
Te dejo un enlace donde nos cuenta como cargar los script del Plugin Contact From 7 solo en la pagina que lo usemos. No deja de ser interesante, ya que es la propia documentacion del plugin.
Otra opcion es crearse un formulario de contacto popio(un pequño plugin propio).
Y la mejor solucion podrìa ser cargar todos los script en el footer, es una solucion interesante, eso mejorara siempre el rendimiento de nuestro sitio.
Saludos, buen blog

https://contactform7.com/loading-javascript-and-stylesheet-only-when-it-is-necessary/

Pues justamente eso fue lo que hice yo, David: restringir en qué páginas quería que se cargasen los javascripts de este plugin, ya que no tenía sentido estar cargándolos en todas las páginas si solo lo estaba utilizando en una. Luego también me puse a hacer un plugin propio…

Gracias por compartir la información.

Saludos

Hola Lua;
Es muy interesante el post, de hecho es dificil encontrar texto para personas y no para robots 😉 Yo utilizaba ya P3 y en mi ultima revisión tengo 27 plugin y un impacto de 39.3% y un tiempo de carga de estos de 0.558.

El plugin que me da muchos problemas es autoptimize quizá porque otros como Simple:Press (foro) no son compatibles por su javascript y no encuentro solución para esto. Mi conocimiento de programación esta cerca del 0 (lo sé).

Queria preguntarte por el plugin que utilizas en este mismo post para compartir en redes sociales, donde aparecen en una box twiiter, facebook y google+. Veo ese diseño (plugins) en webs que visito pero no acierto a encontrarlo. He puesto el que recomiendas en el buscador de wordpress “Monarch” pero no me da ningún resultado de búsqueda. Es ese el plugin o es otro?

Un saludo Lua

Deja un comentario

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




Lúa Louro te informa que los datos de carácter personal que proporciones cubriendo este formulario serán tratados por Lúa Louro González como responsable de esta web. La finalidad de la recogida y tratamiento de los datos personales que te solicito es para gestionar los comentarios que realizas en este blog. Legitimación: Consentimiento del interesado. El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no atender pueda tu solicitud. Como usuario e interesado te informo que los datos que me facilitas estarán ubicados en los servidores de Raiola (mi proveedor de hosting) dentro de la UE. Ver la política de privacidad de Raiola. Legitimación: Consentimiento del interesado. El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no atender pueda tu solicitud. Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en hola@lualouro.com así como el derecho a presentar una reclamación ante una autoridad de control.Puedes consultar la información adicional y detallada sobre Protección de Datos en https://lualouro.com, así como consultar mi política de privacidad.