7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. General

Funcionalidad: Comparativa entre plugins y temas

Read Time: 9 mins

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

Existe una gran cantidad de factores que influyen en el rendimiento en tu sitio WordPress, y uno de los trucos que a menudo te dirán los "expertos" es que evites los plugins. Te dirán que es mejor colocar la funcionalidad dentro de tu tema, en lugar de activar un plugin. ¿Es esto cierto?


Introducción

Cuando se trata del rendimiento de tu sitio WordPress, hay gran cantidad de factores que influyen en los resultados generales. Entre estos factores se incluyen lo bien que esté escrito tu tema, el número de imágenes y otros recursos que se deban cargar, en qué medida se almacene bien en caché tu sitio, la calidad de los plugins que tengas activados y muchos más. Sin embargo, hay dos factores que tienen cero impacto en el nivel de rendimiento de tu sitio, se trata del número de plugins instalados (sí, lo digo en serio al 100%) y si existen funcionalidades como parte de tu plugin o parte de tu tema.

Si haces una búsqueda rápida en Google sobre "cómo añadir un formulario de contacto a WordPress", probablemente notarás una abrumadora tendencia en lo que se refiere a títulos de tutoriales. La mayoría de los tutoriales incluirán algo en la línea de "... sin un plugin". Esta tendencia, existente en docenas de temas de tutoriales, dá la idea de que los plugins deben ser malos y que posiblemente perjudican el rendimiento de tu sitio. Siendo las palabras "sin un plugin" algo tan habitual en los títulos de tutoriales, así como en las publicaciones de foros, muchas personas han llegado a creer que es mejor, particularmente para el rendimiento, incluir partes de funcionalidad dentro de los temas (ya sea el tuyo o uno que hayas comprado) en lugar de delegar la tarea a un plugin.

La primera respuesta que tengo a esta creencia común es que es completamente infundada, y en realidad, totalmente incorrecta. Existen varios aspectos que argumentan el porqué esta creencia es equivocada, y voy a explicarlos punto por punto. También tocaré brevemente la creencia de que es mejor usar menos plugins, lo que también es (generalmente) totalmente incorrecto.


Creencias habituales

1. La funcionalidad está mejor ubicada en un tema que en un plugin

La idea detrás de esta creencia es que los plugins son a menudo fuente de problemas en tu sitio, ya sea porque están mal escritos o porque entran en conflicto con algo en tu tema. Si los plugins son a menudo malos, tiene sentido colocar la funcionalidad preferentemente (como los formularios de contacto) dentro del tema, ¿verdad?

Mal, y aquí tienes la razón:

"El hecho de que el código se cargue en el punto Y o el punto X, no es más eficiente."

En primer lugar, la única diferencia entre el código que se coloca en un tema y el código que se coloca en un plugin es el momento de la ejecución. Los plugins activos se cargan y ejecutan antes que el tema actualmente activo, pero aparte de eso, no existe diferencia alguna en la forma en que se ejecuta el código contenido dentro de cada uno, y además la diferencia en cuanto a la eficiencia del código es nula. Si quieres ver un excelente diagrama del proceso de carga del núcleo de WordPress, consulta este artículo en Stack Exchange.

El hecho de que el código se cargue en el punto Y o en el punto X, no es más eficaz.

En segundo lugar, con el punto número 1, ahora tenemos que preguntar "¿por qué es mejor colocar la funcionalidad en un tema?", dado que tanto el código del plugin como el código del tema se ejecutan de la misma manera. La respuesta es simple. Aunque los temas no tienen ningún beneficio adicional respecto a los plugins al considerar dónde colocar partes de funcionalidad, resulta que los plugins sí tienen un par de ventajas sobre los temas. Voy a exponerlas en breve.

2. El código en temas funciona mejor que en los plugins

Realmente no sé de dónde sale esto, aunque sospecho que tiene que ver con el hecho de que a menudo la gente tiene miedo de los plugins, y con frecuencia escuchan que estos causan problemas de rendimiento en un sitio. El hecho es que esta creencia es ridícula en el mejor de los casos. Como se indicó anteriormente, no existe ninguna diferencia (excepto en el tiempo) en la forma en que se ejecuta el código del plugin, en comparación con el código del tema.

Si colocas una función en un plugin, ejecutarla, registra el tiempo y luego haz lo mismo con la función, pero colocándola en el tema, descubrirás que no hay diferencias. Ambos se ejecutan a la misma velocidad y ninguno de los dos métodos tiene ventaja directa alguna sobre el otro en términos de rendimiento.

Por tanto, esto trae la pregunta, ¿son en última instancia mejores los temas que los plugins para fragmentos de funcionalidad? La respuesta breve, no, absolutamente no.


Algunas razones por las que los plugins son mejores

Ahora deberíamos preguntar, ¿son los plugins en última instancia mejores para fragmentos de funcionalidad que los temas? La respuesta breve es, sí, la mayoría de las veces definitivamente lo son. Pero, ¿por qué? Bueno, hay algunos motivos.

  1. Separar el código en "fragmentos" es una de las mejores cosas que puedes hacer en los grandes proyectos, ya que hace que todo él sea mucho más fácil de mantener y depurar en caso de que surgiese un problema. Al colocar las partes de tu funcionalidad separadas en sus propios plugins dedicados, creas efectivamente estas "fragmentaciones". Cada plugin se mantiene de forma independiente, lo que (como descubrirás) puede hacer que sea infinitamente más sencillo rastrear los problemas.
  2. Si algo se rompe, simplemente desactivas el plugin. Supongamos que el formulario de contacto de tu sitio está integrado en tu tema y se rompe, derribaría el sitio con él. ¿A qué te dedicas? Si no tienes las habilidades o no sabes cómo reemplazar el formulario de contacto por otro que funcione, estarás en grandes problemas. Por otro lado, si la funcionalidad está proporcionada por un plugin, simplemente desactivarías el plugin, y lo volverías a poner online una vez que el problema estuviese solucionado, o buscarías un nuevo plugin de formulario.
  3. Si alguna vez deseas cambiar de tema, algo que la mayoría de los sitios hace al menos una o dos veces, perderás cada pedazo de funcionalidad personalizada que tengas (incluidos los códigos cortos) porque el nuevo tema no tendrá las mismas funciones, o las ejecutará / construirá de manera diferente. Si tú, sin embargo, tenías todos tus shortcodes dentro de un plugin, así como cosas como formularios de contacto, todo lo que tendrás que hacer es cargar el nuevo tema y activarlo: todo seguirá funcionando como antes. ¿No es esta una buena razón para afirmar que los plugins son mejores para partes independientes de funcionalidad que los temas? Yo creo que sí.
  4. Los plugins pueden actualizarse y mejorarse por separado. Si añades mejoras en un tema, tendrás que actualizar todo el tema. ¿Cuántas veces has visto a un usuario de un tema añadir personalizaciones a style.css o functions.php? Si lo han hecho, les será imposible actualizar el tema y mantener las mejoras que hayan incorporado si no las trasladan manualmente todos sus cambios al él. Esto será así asumiendo que no han creado un tema hijo, algo que deberían tener, aunque muchos usuarios no lo tengan. Cuando las mejoras se colocan en un plugin, el usuario no tiene que hacer nada más que actualizar el plugin desde su panel de control.

Los motivos van más allá de estos cuatro, pero ya debería estar clara la enorme ventaja que los plugins tienen sobre los temas para partes separados de funcionalidad.

Ahora esto me lleva a la pregunta de si es malo tener un montón de plugins diferentes. Probablemente te puedas imaginar la rapidez con la que se ampliará el número de plugins activos si estás colocando cada parte principal de funcionalidad en plugins independientes. ¿provoca esto un problema? ¿Qué pasa una vez que lleguas a 10 plugins? ¿No es mucho? ¿Qué tal 20 o 30? ¿No es extremo?

No.

Durante WordCamp Kansas City 2012, tuve la oportunidad de pasar algún tiempo hablando con Otto, que es uno de los principales desarrolladores de WordPress y también una de las manos derechas de Matt Mullenweg. Otto es responsable de la mayor parte del desarrollo del sitio personal de Matt y me dijo que hay docenas de plugins para pequeñas funcionalidades ejecutándose en ese sitio. Cada uno de los plugins se encarga de realizar tareas específicas y todos funcionan perfectamente conjuntamente, a pesar de ser muchos.

Personalmente, yo ejecuto alrededor de 50 plugins en mi sitio Pippin's Plugins.

La idea es que los plugins no causan problemas de rendimiento simplemente por el mero hecho de ser plugins, ni siquiera con 100 o incluso 200 plugins activos al mismo tiempo. Los problemas de rendimiento con los plugins provienen de aquellos que están mal escritos, no depende del número de plugins. Podrías causar fácilmente más problemas de rendimiento con un solo plugin mal escrito que con 300 plugins sencillos y bien escritos.

Los problemas de rendimiento suelen reducirse a la carga de recursos y a la realización de consultas de base de datos, por lo que los plugins que hacen gran cantidad de estas cosas tienden a afectar al rendimiento. Los plugins que no realizan consultas en la base de datos o que no cargan recursos tienen cero, o casi cero impacto en el rendimiento, y por eso puedes usar literalmente 300 plugins en tu sitio sin ningún impacto.

También sé que WP Candy ejecuta más de 80 o 90 plugins activos en todo momento.

Lo crucial que debes recordar es que el número de plugins tiene cero impacto en el rendimiento, sólo la calidad y el tipo de plugin tienen un impacto en el rendimiento.

El segundo punto clave a recordar es que el código en plugins se ejecuta exactamente igual que el código en los temas, así que deshazte de la idea de que es mejor colocar la funcionalidad en tu tema que un plugin. Se supone que los temas controlan los aspectos visuales de tu sitio, no la funcionalidad.

El último punto a recordar es que los plugins son sólo perjudiciales cuando están mal escritos. Los plugins en sí nunca son intrínsecamente malos; sólo lo son porque el código que compone el plugin es de baja calidad.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Scroll to top
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.