Cómo usar wp-cron en WordPress y configurarlo en cPanel (Cron Jobs)
¿Tu WordPress va lento? ¿Las publicaciones programadas no se publican a tiempo? El problema puede estar en wp-cron, el sistema que WordPress usa para ejecutar tareas automáticas. Y la solución, en la mayoría de los casos, pasa por configurar un cron job en cPanel.
Te explico qué es wp-cron, por qué conviene desactivarlo y cómo configurarlo correctamente en cPanel, paso a paso y sin tecnicismos.
¿Qué es wp-cron y cómo funciona?
WordPress necesita hacer cosas automáticamente: revisar si hay actualizaciones, programar publicaciones, enviar pings a buscadores, limpiar comentarios spam, etc. Para eso, usa un sistema llamado wp-cron.
Aquí está el truco: wp-cron no es un cron real. Es un cron "falso" que se ejecuta cuando alguien visita tu web. Es decir, si no hay visitas, no hay ejecución. Y si hay muchas visitas, se puede ejecutar varias veces seguidas, consumiendo recursos del servidor.
Esto genera dos problemas típicos:
- Tareas que no se ejecutan si tu web tiene poco tráfico.
- Consumo excesivo de recursos si tu web tiene mucho tráfico.
La solución profesional es desactivar el wp-cron interno y crear un cron job real en el servidor, que se ejecute en intervalos fijos, sin depender de visitas.
¿Cuándo necesitas configurar wp-cron en cPanel?
Deberías configurar un cron job real si:
- Tu web va lenta o el hosting te avisa de exceso de CPU.
- Las entradas programadas se publican tarde o nunca.
- Los backups automáticos (como los de UpdraftPlus) fallan.
- Usas plugins de caché o de SEO que requieren ejecución periódica.
- Tienes una tienda WooCommerce y los pedidos o los correos se retrasan.
Si te identificas con alguno de estos puntos, sigue leyendo: esto te va a solucionar la vida.
Cómo desactivar wp-cron en WordPress
Antes de crear un cron job en cPanel, debes desactivar el wp-cron interno. Si no lo haces, se ejecutarán los dos sistemas y tendrás el doble de problemas.
Paso 1: Editar el archivo wp-config.php
Accede a tu hosting por cPanel o por FTP y busca el archivo wp-config.php en la raíz de tu instalación de WordPress.
Ábrelo con un editor de texto (el Bloc de notas vale) y añade esta línea justo antes de la línea que dice:
/* ¡Eso es todo, deja de editar! Feliz blogging. */
La línea que debes añadir es esta:
define('DISABLE_WP_CRON', true);
Guarda el archivo y súbelo de nuevo si lo editaste en local.
Paso 2: Verificar que se ha desactivado
Para comprobarlo, instala un plugin como WP Crontrol. Si vas a su panel y ves un aviso que dice que wp-cron está deshabilitado, lo has hecho bien.
[WARNING] Si no desactivas wp-cron antes de crear el cron job, WordPress seguirá ejecutando tareas en cada visita y el cron real también. Eso empeorará el rendimiento, no lo mejorará.
Cómo configurar cron jobs en cPanel paso a paso
Ahora viene la parte práctica: crear el cron job real en cPanel. No te asustes, es más fácil de lo que parece.
Paso 1: Entrar en la sección Cron Jobs
Dentro de cPanel, busca la sección Avanzado y pincha en Cron Jobs.
Verás un formulario con varios campos. No te agobies, solo necesitas entender dos cosas: el intervalo de tiempo y el comando.
Paso 2: Configurar el intervalo de tiempo
cPanel te permite elegir con qué frecuencia se ejecuta el comando. Para wp-cron, el intervalo recomendado es cada 5 minutos.
En el desplegable, elige la opción que dice "Una vez cada 5 minutos". Si tu hosting tiene una versión antigua de cPanel, tendrás que rellenar los campos manualmente:
- Minuto:
*/5 - Hora:
* - Día:
* - Mes:
* - Día de la semana:
*
Eso significa "cada 5 minutos, a todas las horas, todos los días".
Paso 3: Escribir el comando correcto
Este es el paso más importante. El comando que debes ejecutar es una llamada a WordPress usando el PHP de tu servidor.
El comando genérico es este:
/usr/local/bin/php /home/TU_USUARIO/public_html/wp-cron.php
Pero tienes que adaptarlo a tu hosting:
- TU_USUARIO: el nombre de usuario de tu cuenta de cPanel.
- public_html: si WordPress está en la raíz. Si está en una subcarpeta (por ejemplo,
public_html/blog), pon la ruta completa.
[TIP] No uses php a secas. Usa la ruta completa /usr/local/bin/php porque algunos hostings tienen varias versiones de PHP y esta es la más fiable. Si te da error, prueba con /usr/bin/php o consulta la documentación de tu hosting.
Paso 4: Guardar y probar
Pulsa Añadir nuevo cron job y listo. Ya tienes tu cron configurado.
Para verificar que todo funciona, puedes instalar el plugin WP Crontrol y comprobar si las tareas se están ejecutando. También puedes mirar el log de cron en cPanel (normalmente se llama "Historial de Cron Jobs").
¿Qué comando usar si tu WordPress está en una subcarpeta?
Si tu web no está en la raíz, el comando cambia. Por ejemplo, si WordPress está en public_html/miweb, el comando sería:
/usr/local/bin/php /home/TU_USUARIO/public_html/miweb/wp-cron.php
Si tienes varios WordPress en el mismo hosting, crea un cron job para cada uno. No uses el mismo comando para todos.
¿Y si mi hosting no usa cPanel?
No todos los hostings usan cPanel. Algunos usan Syspanel (antes conocido como HestiaCP). Si es tu caso, el proceso es similar pero la interfaz cambia.
En Syspanel, el acceso se hace por el puerto 2106 (por ejemplo, https://tudominio.com:2106). Dentro, busca la sección Cron Jobs o Tareas Programadas. El comando que debes usar es el mismo que en cPanel, solo cambia la forma de añadirlo.
[INFO] Si usas Syspanel, recuerda que el puerto de acceso es el 2106 y que la interfaz es diferente a la de cPanel, pero el comando PHP funciona igual.
Errores comunes al configurar wp-cron y cómo solucionarlos
Error: "No se encuentra el archivo wp-cron.php"
Eso significa que la ruta es incorrecta. Revisa si WordPress está en public_html o en una subcarpeta. Puedes verificarlo entrando a tu hosting y mirando la estructura de archivos.
Error: "Comando no encontrado"
El hosting no reconoce la ruta de PHP. Prueba con /usr/bin/php o /usr/local/bin/php. Si ninguno funciona, pregunta a tu proveedor de hosting cuál es la ruta correcta de PHP.
Error: "Permiso denegado"
El usuario de cPanel no tiene permisos para ejecutar PHP. Esto es raro, pero puede pasar en hostings muy restrictivos. Prueba a añadir -q al comando:
/usr/local/bin/php -q /home/TU_USUARIO/public_html/wp-cron.php
El cron se ejecuta pero las tareas no funcionan
Si el cron se ejecuta pero WordPress sigue sin hacer las tareas, el problema puede ser de caché o de algún plugin conflictivo. Prueba a desactivar plugins de caché temporalmente y vuelve a comprobar.
¿Cada cuánto tiempo debo configurar el cron?
La frecuencia depende de lo que necesites:
- Cada 5 minutos: lo recomendado para la mayoría de webs. Es el equilibrio perfecto.
- Cada 1 minuto: solo si tienes una web muy activa o una tienda que necesita sincronización casi en tiempo real.
- Cada 10-15 minutos: si tu web tiene poco tráfico y no necesitas que las tareas sean inmediatas.
[TIP] No configures el cron a menos de 1 minuto. WordPress no está diseñado para eso y saturarás el servidor sin beneficio real.
Preguntas frecuentes sobre wp-cron y cron jobs en WordPress
¿Es obligatorio desactivar wp-cron?
No es obligatorio, pero es muy recomendable si tienes tráfico medio o alto. Si tu web es pequeña, puedes dejarlo como está. Pero si tienes problemas de rendimiento o tareas que no se ejecutan, desactívalo.
¿Qué pasa si no configuro un cron job?
Si desactivas wp-cron y no creas un cron real, nada se ejecutará. Las publicaciones programadas no saldrán, los backups no se harán y el spam no se limpiará. Por eso, desactivar wp-cron y crear el cron job deben ir siempre juntos.
¿Puedo usar un servicio externo para ejecutar wp-cron?
Sí, hay servicios como EasyCron o cron-job.org que ejecutan tu wp-cron desde fuera. Solo tienes que configurar la URL https://tudominio.com/wp-cron.php y el intervalo. Es una buena alternativa si tu hosting no permite cron jobs.
¿Cómo sé si mi cron job funciona?
Puedes usar el plugin WP Crontrol para ver el registro de ejecuciones. Si ves que las tareas se marcan como ejecutadas, todo va bien. También puedes mirar el historial de cron en cPanel.
¿El cron job consume muchos recursos?
No. Un cron job cada 5 minutos es muy ligero. El problema es el wp-cron interno, que se ejecuta con cada visita. Por eso lo desactivamos.
Resumen rápido: los 3 pasos clave
- Desactiva wp-cron añadiendo
define('DISABLE_WP_CRON', true);enwp-config.php. - Crea un cron job en cPanel (o Syspanel) con el comando PHP apuntando a
wp-cron.php. - Configura el intervalo a cada 5 minutos y verifica con WP Crontrol.
Con esto, tu WordPress funcionará más rápido, las tareas se ejecutarán puntuales y no tendrás dolores de cabeza con el hosting.
Si tienes dudas, revisa la documentación de tu hosting o pregunta en su soporte. La ruta de PHP puede variar, pero el proceso es siempre el mismo. Ahora ya sabes cómo dominar wp-cron y configurarlo en cPanel como un profesional.
