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
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.
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!
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
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?
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
Hola Trébol!
Pues sí, el plugin que estoy utilizando para las redes sociales en este momento es Monarch. Se trata de un plugin premium de Elegant Themes: https://www.elegantthemes.com/plugins/monarch/
Hasta el momento, es el mejor que he utilizado y estoy contenta con sus resultados.
Saludos!
Gracias Lua 😀
Sera una futura inversión, si tu lo recomiendas tiene que ser bueno.
Saludos!!!
Para mí sigue estando en el TOP 1 🙂