Plugins
Siempre resulta tentador resolver cada nueva tarea con un plugin grande: instalar un all-in-one, activar la opción necesaria, configurar otras diez “por si acaso” y pasar a lo siguiente.
A primera vista parece lo más rápido. Con el tiempo, sin embargo, el sitio acumula dependencias innecesarias, funciones duplicadas, ajustes de más y otro posible punto de fallo.
Por eso, en mis proyectos cada vez elijo más otro enfoque: plugins pequeños y específicos, o utilidades independientes para una tarea concreta. No intentan sustituir la mitad de WordPress. Simplemente hacen una cosa — y la hacen de forma predecible.
All-in-one no siempre significa más sencillo
Un plugin grande puede estar justificado cuando el proyecto necesita de verdad un producto completo con muchas funciones relacionadas. Pero para una tarea pequeña, a menudo añade más complejidad de la que resuelve.
Por ejemplo, un cliente puede necesitar:
añadir un estado personalizado de pedido;
ocultar un campo concreto del checkout;
cambiar la lógica de precios para un tipo concreto de producto;
añadir un pequeño proceso cron;
modificar los emails de WooCommerce;
sincronizar un campo personalizado con un servicio externo;
añadir una acción sencilla en el admin para los gestores.
Para cada una de estas tareas suele existir un plugin universal. Pero junto con la función que necesitas, a menudo trae:
sus propias páginas de ajustes;
tablas adicionales en la base de datos;
scripts y estilos de frontend;
decenas de hooks innecesarios;
dependencias de bibliotecas de terceros;
su propio sistema de logs;
posibles conflictos con el tema u otros plugins.
Al final, el sitio acaba dependiendo de una herramienta aunque al principio solo hicieran falta unas pocas líneas de lógica.
En ese caso, un plugin pequeño no es necesariamente un “parche casero”. Puede ser una forma clara de fijar y aislar una regla de negocio.

Menos dependencias, menos riesgos
Cada dependencia extra aumenta lo que hay que tener en cuenta al mantener un sitio.
Eso no significa que los plugins de terceros sean malos. Uso a menudo soluciones contrastadas cuando encajan de verdad con la tarea. Pero para un cambio sencillo no suele tener sentido instalar un producto grande con decenas de funciones si solo necesitas una.
Un plugin pequeño normalmente:
no depende de un tema concreto;
no añade una interfaz innecesaria;
no carga recursos en todas las páginas;
usa un número limitado de hooks;
es más fácil de actualizar;
se mueve más fácilmente entre entornos;
otro desarrollador lo entiende sin una investigación larga.
Esto importa especialmente en sitios de clientes que hay que mantener durante años. Varios meses después, a menudo ya no está claro por qué se activó una opción concreta dentro de un plugin grande. En cambio, una carpeta de plugin con un nombre como client-checkout-rules deja su propósito evidente de inmediato.

Una lógica sencilla es más fácil de depurar
Una de las grandes ventajas de los plugins pequeños es el control sobre el código.
Cuando aparece un problema, puedo responder rápido a unas cuantas preguntas:
¿Qué plugin se encarga de esta función?
¿En qué hook trabaja?
¿Qué condiciones comprueba?
¿Modifica datos, la salida o el comportamiento de otro componente?
¿Qué pasa si lo desactivo un momento?
Con un plugin all-in-one grande, la respuesta suele ser más compleja. Hay que revisar ajustes, prioridades de hooks, compatibilidad entre módulos, carga de assets e interacción con otras funciones del propio plugin.
Un plugin pequeño no garantiza que no haya errores. Pero reduce el área de búsqueda.
Esto es especialmente útil en WooCommerce, donde incluso un cambio pequeño puede afectar al checkout, los emails, los datos del pedido, las peticiones AJAX o el admin. Si cada regla está aislada, es más fácil ver qué capa del sistema está causando el problema.

Ejemplo: una utilidad pequeña para WooCommerce
Supongamos que un cliente necesita una marca interna en el pedido cuando este incluye un producto con un atributo concreto.
Eso no tiene por qué formar parte de un gran plugin de gestión de pedidos. En muchos casos basta con una utilidad independiente:
<?php
/**
* Plugin Name: Client Order Flags
* Description: Adds an internal flag to selected WooCommerce orders.
*/
defined( 'ABSPATH' ) || exit;
add_action( 'woocommerce_checkout_create_order', function ( $order ) {
if ( ! $order instanceof WC_Order ) {
return;
}
foreach ( $order->get_items() as $item ) {
$product = $item->get_product();
if ( ! $product ) {
continue;
}
if ( $product->get_attribute( 'pa_special-service' ) === 'yes' ) {
$order->update_meta_data( '_client_special_service', 'yes' );
break;
}
}
}, 10 );En un proyecto real, la lógica puede ser más compleja: hay que contemplar variaciones, validar nombres de atributos, añadir tests y, si hace falta, logging.
El principio no cambia: el plugin tiene una sola responsabilidad y no intenta convertirse en un sistema completo de gestión de pedidos.

DraftLift AI como producto enfocado
En mis propios productos intento seguir el mismo enfoque. DraftLift AI, por ejemplo, debe resolver un problema concreto de preparación o mejora de contenido, no convertirse en un paquete de marketing universal.
Esa distinción importa.
Cuando un producto tiene un propósito claro, es más fácil:
explicárselo al usuario;
controlar su comportamiento;
limitar el número de ajustes;
probar escenarios concretos;
entender qué datos procesa;
evitar un impacto innecesario en el sitio.
Creo que este principio no vale solo para plugins. Cualquier producto digital es más fiable cuando su responsabilidad se limita a una tarea bien definida.
El alcance debe ser limitado
Antes de crear un plugin nuevo, conviene formular su propósito en una sola frase.
Por ejemplo:
Este plugin añade una marca interna a los pedidos de WooCommerce para productos con un atributo concreto.
O:
Este plugin oculta el campo del número de IVA en el checkout para un grupo concreto de clientes.
Si la descripción acaba convirtiéndose poco a poco en una lista de diez funciones distintas, es señal de que el alcance se está expandiendo.
Para mí, un buen plugin pequeño suele tener:
una responsabilidad principal;
el mínimo de ajustes posible;
un punto de entrada claro;
nada de magia oculta;
la posibilidad de desactivarlo con seguridad;
documentación breve para el mantenimiento futuro.
Eso no significa que cada plugin deba ser un solo archivo. Si hacen falta clases, un endpoint REST, cron o una capa de servicios aparte, hay que añadirlos. Pero la estructura debe responder a la tarea, no demostrar complejidad por el puro hecho de ser compleja.

No crees una UI propia si no hace falta
La interfaz de administración es otro tema aparte.
A un desarrollador le resulta fácil añadir una página de ajustes: un menú, un formulario, unos cuantos checkboxes y todo guardado en options. A veces esa UI simplemente no hace falta.
Si el cliente nunca va a cambiar la regla, no es necesario sacarla al panel. Puede quedarse en la configuración o quedar clara en el código.
Una UI propia tiene sentido cuando:
los ajustes cambian con frecuencia;
los usan administradores sin acceso al código;
hay que gestionar varios escenarios;
sin formulario es fácil equivocarse;
los valores cambian de un sitio a otro.
Si no, la página de admin se convierte en otra capa que hay que probar, proteger y mantener.
Mi principio es simple: si el usuario no necesita ese ajuste, no crees una interfaz para él.
La seguridad importa más que el número de funciones
Un plugin pequeño no solo debe ser compacto: también debe comportarse de forma segura.
Antes de añadir código, intento comprobar:
si existe la dependencia necesaria, por ejemplo WooCommerce;
si el código no se ejecuta en el contexto equivocado;
si las acciones de admin comprueban capabilities;
si los datos de entrada se limpian y validan;
si formularios y AJAX usan nonce;
si no se sobrescriben datos sin necesidad;
qué ocurre al desactivar el plugin;
si los assets no se cargan en páginas donde no hacen falta.
Por ejemplo, un plugin que depende de WooCommerce no debería llamar a sus clases o funciones sin comprobar antes que la dependencia existe. En el caso más simple:
if ( ! class_exists( 'WooCommerce' ) ) {
return;
}Para algo más complejo, conviene un bootstrap aparte y un aviso en el admin si falta la dependencia.
La seguridad no es una “gran función” aparte. Es un conjunto de pequeñas restricciones que impiden que el plugin haga de más.
Poder eliminarlo también importa
Antes de crear un plugin, conviene preguntarse:
¿Qué quedará en el sitio si lo elimino?
En utilidades sencillas, la respuesta ideal es: nada crítico.
Si el plugin crea meta o registros propios, hay que decidir de antemano si deben borrarse al desinstalarlo. Si modifica datos existentes, conviene pensar en un rollback o, como mínimo, documentar el comportamiento.
No todo plugin debe borrar automáticamente todos sus datos. A veces es peligroso, sobre todo si esos datos pueden hacer falta tras reactivarlo. Lo importante es que la decisión sea consciente, no accidental.
Un plugin que se puede desactivar y eliminar con seguridad es mucho más cómodo en migraciones, tests y depuración de urgencia.
Cuándo sí tiene sentido un all‑in‑one
No considero que un plugin grande sea malo por defecto. Puede ser la opción correcta cuando:
hace falta un conjunto completo de funciones relacionadas;
el producto tiene buena reputación y soporte sólido;
el funcional se actualiza con regularidad;
el equipo no quiere mantener una solución propia;
el coste de la dependencia es menor que el de desarrollar y mantener lo propio;
el plugin encaja bien con la arquitectura actual del sitio.
La pregunta no es si el plugin es grande o pequeño. La pregunta es si la solución es proporcional a la tarea.
Si el cliente necesita una integración CRM completa, no tiene sentido escribir un mini‑plugin casero de unos cientos de líneas solo por principio. Pero si hace falta una sola regla de negocio local, el all‑in‑one suele ser excesivo.
Qué cambia esto en el mantenimiento
Este enfoque se nota sobre todo no en el momento de desarrollar, sino seis meses o un año después.
Los plugins pequeños y específicos ayudan a:
encontrar antes el origen del problema;
mover cambios entre staging y production con más facilidad;
reducir riesgos tras las actualizaciones;
explicar la arquitectura a otro desarrollador;
no atar la lógica de negocio a un plugin cualquiera;
controlar los cambios con más precisión en Git;
desactivar funciones concretas con más seguridad.
En la práctica, el sitio queda más modular. Cada función tiene su límite, y un cambio en un módulo no debería afectar a todo el proyecto sin una buena razón.

Mi checklist práctico
Antes de instalar un plugin grande o crear una utilidad nueva, intento pasar por un checklist corto:
¿Qué problema concreto hay que resolver?
¿Está ligado a otras funciones o es una regla aislada?
¿Hace falta de verdad una dependencia externa?
¿Hace falta una interfaz de usuario?
¿Qué datos modifica la solución?
¿Qué ocurre al desactivarla?
¿Se podrá encontrar el problema con facilidad dentro de unos meses?
¿Otro desarrollador entendería por qué existe este código?
Si la respuesta apunta a una sola función pequeña, un plugin aparte o un mu‑plugin suele ser la opción más limpia.
Conclusión
Un plugin pequeño de WordPress no tiene por qué ser un compromiso ni un workaround temporal. Con un alcance claro, pocas dependencias y un comportamiento seguro, es una herramienta arquitectónica de pleno derecho.
Me gustan estas soluciones no porque siempre sean más cortas que un all-in-one, sino porque hacen visible la responsabilidad: un plugin, una tarea concreta, pocos efectos secundarios y un camino de mantenimiento claro.
Para los sitios de clientes, eso significa menos incógnitas. Para el desarrollador, depuración más rápida y actualizaciones más tranquilas. Para el propio sitio, menos código de más que habrá que explicar en el futuro.
Preguntas frecuentes
Preguntas habituales sobre trabajo en WordPress y soporte continuo.
¿Por qué los plugins pequeños pueden ser mejores que las soluciones all-in-one?
Porque resuelven una tarea concreta sin añadir muchas funciones, configuraciones y dependencias innecesarias. Esto facilita la depuración, las actualizaciones y el mantenimiento a largo plazo.
¿Significa esto que no se deben utilizar plugins grandes?
No. Las soluciones all-in-one pueden ser adecuadas cuando el proyecto necesita un conjunto completo de funciones relacionadas, soporte fiable y actualizaciones periódicas. Lo importante es que el tamaño del plugin sea proporcional a la necesidad real.
¿Cuándo conviene crear un plugin personalizado?
Conviene crear uno cuando hay que añadir una regla de negocio específica, modificar el comportamiento de WooCommerce o implementar una función exclusiva para un cliente que no necesita formar parte de un sistema más grande.
¿Los plugins personalizados son más difíciles de mantener?
No necesariamente. Un plugin pequeño, con un scope claro, un nombre descriptivo y pocas dependencias, suele ser más fácil de mantener que un plugin externo grande con muchos módulos.
¿Cada plugin necesita su propia página de configuración?
No. Si los usuarios o administradores no necesitan cambiar la configuración, una interfaz propia puede ser innecesaria. La regla puede mantenerse en el código o en la configuración.
¿Qué hay que comprobar antes de crear un plugin pequeño?
Hay que definir el scope, comprobar las dependencias y los permisos de usuario, validar los datos de entrada, utilizar nonces en formularios y AJAX, prever qué ocurrirá al desactivarlo y decidir si se puede eliminar de forma segura.
¿Con qué tipos de sitios WordPress trabajas?
Trabajo con sitios WordPress para negocios, tiendas WooCommerce y proyectos que necesitan crecer paso a paso, sin complejidad innecesaria ni soluciones frágiles. Sirve tanto para lanzamientos nuevos como para sitios existentes que necesitan mejoras, soporte o actualizaciones técnicas cuidadosas.
¿Puedes mejorar un sitio existente sin un rediseño completo?
Sí. La mayoría de tareas implican sitios ya en producción: nuevas secciones, mejoras funcionales, cambios en WooCommerce, optimización del rendimiento o correcciones técnicas. La idea es que el sitio siga siendo estable, manejable y fácil de desarrollar.
¿Qué tipos de tareas asumes con más frecuencia?
Lo más habitual es desarrollo WordPress a medida, implementación de diseño desde Figma, mejoras en WooCommerce, soporte de sitios en producción, corrección de problemas técnicos y mejoras prácticas con el tiempo. En casos seleccionados también ayudo con automatizaciones ligeras con IA para contenido, consultas o flujos internos de administración.
¿Trabajas en la velocidad y el rendimiento de WordPress?
Sí. La optimización de WordPress suele incluir revisar el tema, los plugins, las imágenes, las fuentes, la estructura de las páginas y la pulcritud técnica general del sitio. El objetivo no es un «botón mágico», sino cambios prácticos que hagan el sitio más rápido y más fácil de mantener.
¿Utilizas IA en el trabajo con sitios WordPress?
Sí, pero solo donde realmente ayuda al proceso. La IA funciona mejor para borradores de contenido, asistentes de FAQ o soporte, gestión de consultas y pequeñas automatizaciones en torno a un sitio WordPress existente. El enfoque es simple: la IA debe reducir la rutina, no complicar el sitio.
¿Qué necesito preparar para hablar de una tarea o proyecto?
Por lo general basta con una breve descripción del sitio, la tarea, el resultado deseado y, si los hay, ejemplos o limitaciones técnicas. Si el proyecto ya está en marcha, también ayuda mostrar el sitio actual o un entorno de pruebas; así es más fácil entender el alcance del trabajo.
¿Puedo contactarte no para un sitio nuevo, sino para soporte o mejoras puntuales?
Sí. Trabajo no solo en nuevas instalaciones, sino también en sitios en producción que necesitan mantenimiento, correcciones y mejoras graduales. Puede tratarse de páginas nuevas, cambios en el panel de administración, mejoras en WooCommerce, pequeños ajustes de UX o mantenimiento técnico.
¿Necesitas ayuda con un proyecto WordPress?
Si necesitas desarrollo WordPress a medida, implementación de diseño o soporte para un sitio existente, revisaré el proyecto con gusto.



