Hay una categoría de funciones del hosting que casi nadie usa hasta que un día las necesita con urgencia: las tareas programadas, más conocidas por su nombre técnico, cron jobs. Sirven para que el servidor ejecute algo solo, a una hora fija, sin que vos tengas que estar presente. Sonaría a detalle menor si no fuera porque de eso dependen los backups automáticos, los envíos de correos programados, la limpieza de archivos temporales y la sincronización de precios de muchas tiendas online.
Qué es un cron job, sin tecnicismos
Imaginá un despertador dentro del servidor. Vos le decís "todos los días a las 3 de la mañana, ejecutá este archivo", y el servidor lo hace, tengas o no visitas, esté tu computadora encendida o no. Eso es todo. La tarea puede ser un script PHP, un comando del sistema o una llamada a una dirección web.
La programación se expresa con cinco campos que definen minuto, hora, día del mes, mes y día de la semana. En cPanel no hace falta memorizar esa sintaxis: hay un menú desplegable con opciones comunes como "una vez por hora", "una vez por día" o "una vez por semana". Para el 90% de los casos, con eso alcanza.
Para qué se usa en la vida real
- Copias de seguridad propias. Además del backup del proveedor, muchos prefieren generar su propia copia y mandarla a otro lugar. Un cron diario que comprima la carpeta del sitio y exporte la base de datos resuelve eso.
- Limpieza automática. Borrar archivos temporales, logs viejos, sesiones vencidas y exportaciones que quedaron dando vueltas. Sin esto, el disco se llena solo con el tiempo.
- Envío de correos programados. Newsletters, recordatorios de carritos abandonados, avisos de vencimiento. Todo lo que tiene que salir a una hora fija.
- Sincronización con sistemas externos. Actualizar stock y precios desde el sistema de gestión, importar un catálogo, exportar pedidos a la contabilidad.
- Reportes automáticos. Un resumen diario de ventas o de errores que te llega por mail sin que tengas que entrar a mirar.
- Monitoreo casero. Un script que revisa que el sitio responda y te avisa si algo falla.
El problema del cron de WordPress
Acá hay algo que conviene entender porque afecta a muchísimos sitios. WordPress tiene su propio sistema de tareas programadas, pero no es un cron real: no lo dispara un reloj del servidor, lo disparan las visitas. Cada vez que alguien entra a tu sitio, WordPress revisa si hay tareas pendientes y las ejecuta en ese momento.
Eso genera dos problemas opuestos. Si tu sitio tiene pocas visitas, las tareas se ejecutan tarde o directamente no se ejecutan: programaste un envío a las 9 de la mañana y sale a las 2 de la tarde, cuando entró el primer visitante. Y si tu sitio tiene muchas visitas, pasa lo contrario: WordPress revisa la lista de tareas en cada carga de página, lo cual suma trabajo innecesario y hace todo más lento.
La solución estándar es desactivar el cron interno de WordPress y reemplazarlo por un cron real del servidor que lo llame cada 15 minutos. Se desactiva con una línea en el archivo de configuración de WordPress y se crea la tarea en cPanel apuntando al archivo correspondiente. El resultado es doble: las tareas salen puntuales y el sitio deja de cargar ese peso en cada visita.
Errores comunes al configurar tareas programadas
- Poner todo a la misma hora. Si programás cinco tareas pesadas a las 3:00 en punto, se pisan entre ellas y saturan la cuenta. Escalonalas: 3:00, 3:15, 3:30.
- Ejecutar cada minuto sin necesidad. Es la forma más rápida de consumir recursos y de que el proveedor te llame la atención. Preguntate honestamente cada cuánto necesitás realmente esa tarea.
- No controlar la salida. Por defecto, cada ejecución puede mandarte un correo. Si la tarea corre cada 5 minutos, eso son casi 300 correos por día. Se redirige la salida para evitarlo, dejando solo los errores.
- Usar rutas relativas. El cron no se ejecuta desde donde vos pensás. Siempre rutas absolutas y completas.
- No dejar registro. Una tarea que falla en silencio es peor que no tenerla. Que escriba en un archivo de log qué hizo y cuándo.
- Tareas sin tiempo máximo. Si un script se cuelga y el siguiente arranca igual, terminás con veinte copias corriendo a la vez. Un archivo de bloqueo simple evita eso.
Cómo probar que funciona antes de confiar en ella
El error más caro es asumir que la tarea corre porque la creaste. Antes de darla por buena, hacé esto: programala para dentro de cinco minutos, esperá, y verificá que hizo lo que tenía que hacer. Recién después ponele el horario definitivo. Y una vez por mes, revisá el registro: es asombrosamente frecuente encontrar tareas que dejaron de funcionar hace meses porque cambió una ruta o una contraseña, y nadie se enteró porque nadie miraba.
Cuánto conviene ejecutar cada tarea
Una duda muy repetida es con qué frecuencia programar cada cosa. La regla práctica es preguntarse cuánto tiempo tolera el negocio que ese dato esté desactualizado. Si tu tienda sincroniza stock con un sistema de gestión y vendés diez productos por día, cada hora alcanza y sobra. Si vendés cientos y hay riesgo real de vender algo que no tenés, ahí sí conviene bajar a cada quince minutos. La limpieza de archivos temporales puede ser semanal sin que nadie lo note, mientras que el disparador del cron de WordPress conviene tenerlo cada cinco o quince minutos para que los envíos salgan a horario.
Un criterio complementario es el costo de la tarea. Una consulta liviana puede correr seguido sin molestar a nadie; un proceso que recorre toda la base de datos y genera un archivo comprimido de varios gigas no debería correr más de una vez por día, y siempre en la franja de menos visitas, típicamente entre las 2 y las 5 de la mañana en el huso horario donde está tu público. Programarlo al mediodía es la forma más rápida de que tus visitantes noten que el sitio se puso lento sin entender por qué.
Qué mirar en tu hosting
No todos los planes tratan igual a las tareas programadas. Los puntos a verificar son: cuántas tareas simultáneas permite el plan, cuál es la frecuencia mínima admitida (algunos no dejan bajar de 15 minutos), si hay un tiempo máximo de ejecución que pueda cortar tus procesos largos, y si el panel te deja verlas y editarlas cómodamente. cPanel resuelve bien todo esto con una interfaz simple, que es una de las razones por las que sigue siendo el panel más usado del mundo.
Si estás evaluando dónde alojar un proyecto que necesita automatizaciones, BanaHosting cumple con todo lo anterior: cPanel completo con administrador de tareas programadas, versiones de PHP seleccionables por cuenta, y recursos generosos desde el plan de entrada de 4,95 dólares al mes, con 50 a 150 GB de SSD según el plan. Además incluye backups diarios automáticos con JetBackup, así que ni siquiera necesitás programar tu propia copia para estar cubierto, aunque siempre es buena idea tener una segunda por las dudas.