Cómo configurar WP-Cron en cPanel para automatizar tareas de WordPress
¿Tu WordPress va lento, los emails de suscripción no se envían o las publicaciones programadas no salen a la hora exacta? El problema más común es que el wp-cron de tu sitio no está funcionando correctamente. En este artículo te voy a enseñar, paso a paso y sin tecnicismos, cómo configurar wp-cron en cPanel para automatizar todas las tareas de tu WordPress de forma eficiente y, de paso, mejorar la velocidad de tu web.
¿Qué es WP-Cron y por qué debería importarte?
Antes de ponernos manos a la obra, vamos a entender qué es esto del "cron". En WordPress, el sistema de wp-cron es un simulador de tareas programadas. Se encarga de ejecutar acciones automáticas como:
- Comprobar actualizaciones de plugins y temas.
- Publicar entradas que tienes programadas para el futuro.
- Enviar emails de notificaciones (por ejemplo, recuperación de contraseña o avisos de nuevos comentarios).
- Ejecutar copias de seguridad automáticas.
- Limpiar la caché o la base de datos.
El problema es que el wp-cron de WordPress no funciona como un reloj suizo. Se activa cada vez que alguien visita tu página. Es decir, si no tienes visitas en un momento dado, las tareas no se ejecutan. Y si tienes muchas visitas, se ejecutan constantemente, consumiendo recursos del servidor y haciendo que tu web vaya lenta.
La solución profesional es desactivar el wp-cron nativo y usar el cron jobs de cPanel (el administrador de tareas del servidor) para que sea el propio sistema el que ejecute esas tareas a intervalos regulares. Esto se conoce como programar tareas wordpress cpanel.
Preparativos antes de configurar WP-Cron en cPanel
Vamos a necesitar dos cosas muy sencillas: acceso a tu cPanel y acceso a tu WordPress (por FTP o desde el administrador). No te preocupes, es más fácil de lo que parece.
1. Identifica tu ruta de acceso a PHP
Para que el cron funcione, necesita saber cómo ejecutar PHP en tu servidor. Normalmente, la ruta es algo así como /usr/local/bin/php. Puedes confirmarlo dentro de cPanel en la sección "Select PHP Version" o simplemente probando con la que te doy, que funciona en el 99% de los casos.
2. Localiza la ruta absoluta a tu WordPress
Necesitas saber la ruta exacta en el servidor donde está instalado WordPress. Esto lo puedes ver en cPanel en el Administrador de archivos. La ruta típica es /home/tuusuario/public_html (si está en la raíz) o /home/tuusuario/public_html/tusitio (si está en una subcarpeta).
[TIP]: Si no estás seguro de la ruta, ve a Administrador de archivos en cPanel y mira la barra de direcciones. Ahí te aparece la ruta completa de la carpeta donde estás.
Cómo desactivar el WP-Cron nativo de WordPress
El primer paso es decirle a WordPress que ya no queremos que use su propio sistema. Esto lo haremos añadiendo una línea de código al archivo de configuración principal, wp-config.php.
Paso a paso para editar wp-config.php
- Entra a tu cPanel y abre el Administrador de archivos.
- Navega hasta la carpeta donde tienes WordPress (normalmente
public_html). - Busca el archivo llamado
wp-config.php. Haz clic derecho sobre él y selecciona Editar. - Busca la línea que dice
/* That's all, stop editing! Happy publishing. */o similar. - Justo antes de esa línea, pega el siguiente código:
define('DISABLE_WP_CRON', true);
- Guarda los cambios y cierra el archivo.
Con esto, hemos desactivado el motor interno de tareas de WordPress. Ahora mismo, si dejas tu sitio así, las tareas no se ejecutarán. Por eso, el siguiente paso es crear el cron real en cPanel.
Crear el Cron Job en cPanel (paso a paso)
Ahora viene la parte divertida. Vamos a programar tareas wordpress cpanel para que un "robot" del servidor ejecute el archivo wp-cron.php de WordPress cada cierto tiempo.
Accediendo a la sección Cron Jobs
- Dentro de tu cPanel, busca la sección Tareas Programadas o Cron Jobs. El nombre puede variar según el tema de cPanel, pero normalmente está en la sección "Avanzado".
- Haz clic en Cron Jobs para entrar.
Configurando la tarea
- En el campo Configuración de correo electrónico, escribe una dirección donde quieras recibir los errores (opcional pero recomendado). Puedes poner
NUNCApara no recibir correos. - En Configuración del comando, vamos a pegar el comando mágico. Te voy a dar la versión más fiable:
/usr/local/bin/php /home/TUUSUARIO/public_html/wp-cron.php
Importante: Reemplaza TUUSUARIO por tu nombre de usuario de cPanel y ajusta public_html si tu WordPress está en otra carpeta.
[WARNING]: No uses la URL de tu sitio (como https://tudominio.com/wp-cron.php) en el comando. Debes usar la ruta del servidor, ya que el cron es un proceso interno y no debe hacer peticiones HTTP a tu propio sitio, eso anularía el propósito de optimización.
El horario de ejecución
Aquí es donde decides cada cuánto se ejecuta. Lo ideal es cada 5 minutos para que las tareas se ejecuten casi en tiempo real sin sobrecargar el servidor.
En el panel de cPanel te pide "Minuto", "Hora", "Día", "Mes" y "Día de la semana". La forma más fácil es usar el modo común:
- Minuto:
*/5 - Hora:
* - Día:
* - Mes:
* - Día de la semana:
*
Esto significa "cada 5 minutos, todos los días, todos los meses, todos los días de la semana".
Si tu hosting te lo permite, puedes elegir la opción predefinida "Una vez cada 5 minutos" en el desplegable.
Guardar y verificar
Haz clic en Agregar nuevo cron job. Verás que aparece en la lista de tareas programadas. ¡Ya está! Tu WordPress ahora depende del servidor, no de las visitas.
Cómo optimizar WP-Cron para un rendimiento máximo
Ahora que ya tienes el cron funcionando, vamos a ajustar un par de tuercas más para que todo sea perfecto. No es obligatorio, pero si quieres optimizar wp-cron de verdad, sigue estos consejos.
1. Limita la frecuencia de ejecución
Aunque hayas puesto */5, WordPress tiene sus propias tareas que no necesitan ejecutarse tan a menudo. Por ejemplo, revisar actualizaciones puede ser cada 12 horas. Para controlar esto, puedes usar un plugin como WP Crontrol o añadir código a tu archivo functions.php de tu tema hijo.
Un ejemplo sencillo para que las tareas de actualización se ejecuten cada 12 horas:
add_filter( 'cron_schedules', 'mi_programacion_personalizada' );
function mi_programacion_personalizada( $schedules ) {
$schedules['cada_12_horas'] = array(
'interval' => 43200,
'display' => __( 'Cada 12 horas' )
);
return $chedules;
}
[INFO]: Esto es más avanzado. Si no te sientes cómodo tocando código, puedes dejarlo tal cual y funcionará bien. La configuración básica ya es una gran mejora.
2. Evita conflictos con plugins de caché
Si usas un plugin de caché (como W3 Total Cache o WP Super Cache), debes asegurarte de que no esté bloqueando la ejecución de wp-cron.php. Algunos plugins de caché tienen una opción para "desactivar el cron" o "retrasar el cron". Asegúrate de que no esté activada.
3. Usa un servicio externo (opcional)
Si tu hosting es muy restrictivo o quieres una supervisión extra, puedes usar un servicio gratuito como EasyCron o cron-job.org. Estos servicios llaman a tu URL https://tudominio.com/wp-cron.php desde fuera de tu servidor. Es una alternativa válida, pero la opción de cPanel es más limpia y no depende de servicios de terceros.
Solución de problemas comunes con WP-Cron en cPanel
A veces, las cosas no salen a la primera. Aquí te dejo los problemas más típicos y su solución.
El cron se ejecuta pero las tareas no se hacen
Esto suele pasar por un error en la ruta del comando. Verifica en el Administrador de archivos que la ruta es correcta. Prueba a añadir -q al final del comando para silenciar la salida, así:
/usr/local/bin/php -q /home/TUUSUARIO/public_html/wp-cron.php
Recibo correos de error cada 5 minutos
Eso es bueno, significa que el cron se ejecuta, pero hay un error. El correo te dirá cuál es. Normalmente es un error de permisos o una función de PHP deshabilitada. Revisa que el archivo wp-cron.php existe en la raíz de tu WordPress.
Mi web sigue lenta
Si has configurado el cron y sigue lenta, el problema no es el cron. Revisa el tamaño de las imágenes, el uso de plugins pesados o la caché. El cron solo resuelve el problema de las tareas internas.
¿Y si mi hosting usa Syspanel?
Si en lugar de cPanel tu hosting usa Syspanel (antes conocido como HestiaCP), el proceso es muy similar. Accede a tu panel a través del puerto 2106 (ejemplo: https://tudominio.com:2106). Dentro, busca la sección "Cron Jobs" o "Scheduled Tasks". La configuración del comando es idéntica a la de cPanel. Simplemente cambia el panel de administración, pero la lógica es la misma.
Preguntas Frecuentes (FAQ)
¿Es peligroso desactivar el WP-Cron?
No, es una práctica estándar y recomendada por los profesionales. Mientras tengas el cron de cPanel activo, tus tareas se ejecutarán incluso mejor que antes.
¿Cada cuánto tiempo debo ejecutar el cron?
La mayoría de los expertos recomiendan cada 5 minutos. Es un buen equilibrio entre la inmediatez de las tareas y la carga del servidor. Si tu web tiene mucho tráfico, puedes ponerlo a 10 o 15 minutos sin problema.
¿Necesito conocimientos de programación?
No. Si sigues los pasos de este artículo, solo necesitas copiar y pegar. Los comandos son estándar y funcionan en la mayoría de los servidores.
¿Qué pasa si mi web está en una subcarpeta?
Entonces la ruta cambia. Si tu WordPress está en tudominio.com/blog, la ruta sería /home/TUUSUARIO/public_html/blog/wp-cron.php. Es el mismo proceso, solo cambia la carpeta.
¿Puedo usar este método para otras tareas?
¡Claro! Una vez que entiendes cómo funcionan los cron jobs en cPanel, puedes usarlos para ejecutar scripts de copia de seguridad, limpiar temporales, etc. Solo necesitas el comando correcto.
Resumen final
Configurar wp-cron en cPanel es una de las mejores optimizaciones que puedes hacer a tu WordPress. No solo acelera tu web al liberar recursos, sino que hace que las tareas programadas sean mucho más fiables y puntuales.
Recuerda los 3 pasos clave:
- Desactiva el wp-cron nativo añadiendo
define('DISABLE_WP_CRON', true);a tuwp-config.php. - Crea un cron job en cPanel con el comando
/usr/local/bin/php /home/TUUSUARIO/public_html/wp-cron.phpy ejecútalo cada 5 minutos. - Verifica que todo funciona revisando si tus publicaciones programadas salen a tiempo y si los emails se envían correctamente.
Si sigues estos pasos, tu WordPress funcionará como un reloj suizo, sin depender de si alguien visita tu página o no. Y si tu hosting usa Syspanel, recuerda acceder por el puerto 2106 y buscar la sección de tareas cron, el resto es idéntico.
¿Te ha funcionado? ¿Tienes alguna duda? Cuéntamelo en los comentarios y te ayudo a resolverlo. ¡Nos vemos en el próximo tutorial!
