WP Cron no funciona en WordPress y cómo repararlo
Guía completa para solucionar cuando WP Cron no funciona en WordPress: causas frecuentes, cómo probarlo, repararlo y optimizar tareas programadas.
Índice
- ¿Qué es WP Cron y por qué es importante?
- Síntomas de que WP Cron no funciona en WordPress
- Causas comunes de fallos en WP Cron
- Cómo comprobar si WP Cron funciona correctamente
- Reparar WP Cron desde wp-config.php
- Configurar un cron del servidor para WordPress
- Depurar errores de WP Cron y plugins
- Buenas prácticas para optimizar WP Cron
- Ejemplos de tareas programadas críticas
- Preguntas frecuentes
¿Qué es WP Cron y por qué es importante?
WP Cron es el sistema de tareas programadas integrado en WordPress. A diferencia de un cron tradicional de servidor, WP Cron se ejecuta de forma simulada: se dispara cuando alguien visita tu sitio o cuando se realiza una petición HTTP a wp-cron.php. Gracias a este mecanismo, WordPress puede ejecutar acciones en segundo plano sin que tengas que configurarlas manualmente en el servidor.
Cuando WP Cron no funciona correctamente, muchas funciones críticas del sitio dejan de ejecutarse o se retrasan de forma indefinida. Esto puede afectar al rendimiento, la seguridad, la entrega de contenidos y la experiencia de usuario. Por eso es fundamental entender qué hace WP Cron y cómo repararlo cuando falla.
- Publicación automática de entradas programadas.
- Envío de correos de notificación y newsletters.
- Limpieza de revisiones, transients y cachés caducados.
- Sincronización con servicios externos (APIs, pasarelas de pago, CRMs).
- Ejecución de copias de seguridad automáticas.
- Tareas de mantenimiento de plugins y temas.
Piensa en WP Cron como en un “reloj interno” de WordPress. Si ese reloj se detiene o se retrasa, todo lo que depende de él también se detiene o se retrasa. Detectar y corregir sus fallos a tiempo es clave para mantener tu sitio estable y seguro.
Síntomas de que WP Cron no funciona en WordPress
Cuando WP Cron deja de funcionar o se ejecuta de forma irregular, suelen aparecer una serie de síntomas repetitivos. Identificarlos te ayudará a confirmar que el problema está en el sistema de tareas programadas y no en otra parte de tu instalación de WordPress.
- Entradas programadas que nunca se publican o se quedan en estado “Programado”.
- Correos automáticos (formularios, newsletters, avisos de pedidos) que no se envían.
- Copias de seguridad automáticas que dejan de ejecutarse sin motivo aparente.
- Plugins que muestran avisos de tareas pendientes o colas sin procesar.
- Órdenes de WooCommerce que no cambian de estado o no se completan.
- Procesos de importación o sincronización que se quedan bloqueados.
- Notificaciones de seguridad o escaneos programados que no se realizan.
En algunos casos, el problema no es que WP Cron no funcione en absoluto, sino que se ejecuta con mucho retraso. Esto suele ocurrir en sitios con poco tráfico, donde pasan largos periodos sin visitas y, por tanto, sin disparar el cron interno.
Si detectas varios de estos síntomas a la vez, es muy probable que WP Cron no esté ejecutándose como debería. El siguiente paso será revisar las causas más habituales y realizar pruebas específicas para confirmar el diagnóstico.
Causas comunes de fallos en WP Cron
Los problemas con WP Cron pueden deberse a múltiples factores: desde una simple configuración en wp-config.php hasta bloqueos a nivel de servidor o errores en plugins. Conocer las causas más frecuentes te permitirá acotar el problema más rápido.
- Constante DISABLE_WP_CRON activada: si en
wp-config.phpestá definida comotrue, el cron interno se desactiva. - Bloqueo de peticiones loopback: el servidor impide que WordPress se llame a sí mismo mediante HTTP, lo que impide ejecutar
wp-cron.php. - Reglas de seguridad o firewall agresivas: WAF, plugins de seguridad o reglas .htaccess que bloquean el acceso a
wp-cron.php. - Bajo tráfico web: en sitios con pocas visitas, el cron interno apenas se dispara y las tareas se acumulan.
- Errores de PHP en tareas programadas: un hook de cron mal programado puede generar errores fatales y detener la cola.
- Límites de recursos del hosting: memoria, CPU o tiempo de ejecución insuficientes para completar las tareas.
- Configuraciones de caché mal ajustadas: algunos sistemas de caché bloquean o retrasan las peticiones a
wp-cron.php. - Migraciones mal realizadas: cambios de dominio o de ruta que dejan URLs antiguas en las tareas programadas.
Antes de aplicar soluciones drásticas, revisa estos puntos básicos:
- Comprueba si
DISABLE_WP_CRONestá definido enwp-config.php. - Verifica que tu proveedor de hosting no bloquee
wp-cron.php. - Revisa los últimos plugins instalados o actualizados justo antes de que apareciera el problema.
Cómo comprobar si WP Cron funciona correctamente
Antes de reparar nada, conviene confirmar si WP Cron realmente está fallando. Existen varias formas de comprobarlo, desde métodos visuales en el panel de administración hasta pruebas técnicas mediante plugins o herramientas externas.
1. Revisar entradas programadas
Programa una entrada para publicarse dentro de unos minutos y espera. Si pasado un margen razonable (5–10 minutos) la entrada sigue en estado “Programado”, es probable que WP Cron no se esté ejecutando o lo haga con mucho retraso.
2. Usar un plugin de gestión de cron
Plugins como WP Crontrol permiten ver y gestionar los eventos de cron registrados en tu instalación. Una vez instalado, podrás:
- Ver la lista de tareas programadas (hooks) y su próxima ejecución.
- Ejecutar manualmente un evento para comprobar si se dispara.
- Detectar tareas con fechas de ejecución pasadas que nunca se han completado.
- Eliminar o editar eventos corruptos o mal configurados.
3. Probar la URL de wp-cron.php
Otra forma de comprobar el funcionamiento es llamar directamente a la URL de cron desde el navegador o con una herramienta como curl:
Ejemplo de URL a probar:
https://tudominio.com/wp-cron.php?doing_wp_cron=1
Si la petición devuelve un error 403, 404 o 500, es probable que haya un bloqueo a nivel de servidor, .htaccess o plugin de seguridad.
4. Revisar el estado del sitio en WordPress
En Herramientas > Salud del sitio, WordPress muestra advertencias relacionadas con las peticiones loopback y el cron. Si ves mensajes del tipo “Las peticiones loopback están fallando” o “No se ha podido completar una petición programada”, tienes una pista clara de que WP Cron está afectado.
Combinar varios de estos métodos te dará una visión más completa. Por ejemplo, si las entradas programadas no se publican y además la URL de wp-cron.php devuelve un error, puedes centrarte en revisar la configuración del servidor y las reglas de seguridad.
Reparar WP Cron desde wp-config.php
Una de las primeras comprobaciones que debes hacer es revisar el archivo wp-config.php. Desde ahí puedes tanto desactivar como reactivar el cron interno de WordPress, así como ajustar algunos comportamientos relacionados.
1. Verificar si WP Cron está desactivado
Busca en wp-config.php una línea similar a esta:
define( 'DISABLE_WP_CRON', true );
Si está definida en true, el cron interno está desactivado. Para reactivarlo, cambia a false o elimina la línea por completo.
2. Desactivar WP Cron para usar un cron del servidor
En muchos entornos profesionales se recomienda desactivar el cron interno y delegar la ejecución de tareas en un cron real del servidor. Para ello, añade o ajusta la siguiente línea en wp-config.php:
define( 'DISABLE_WP_CRON', true );
Esta configuración por sí sola detendrá el cron interno, por lo que es imprescindible que configures un cron de servidor que llame periódicamente a wp-cron.php (lo veremos en la siguiente sección).
3. Ajustar el modo de depuración
Si sospechas que hay errores de PHP impidiendo la ejecución de tareas, activa el modo de depuración temporalmente para registrar los problemas en el archivo de log:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Después de activar estas constantes, fuerza la ejecución de WP Cron y revisa el archivo wp-content/debug.log para localizar errores relacionados con hooks de cron o plugins.
Recuerda desactivar el modo de depuración en sitios en producción una vez hayas identificado y corregido el problema. Mantenerlo activo de forma permanente puede exponer información sensible y afectar al rendimiento.
Configurar un cron del servidor para WordPress
Una solución robusta cuando WP Cron no funciona bien (o cuando tu sitio tiene mucho tráfico) es delegar la ejecución de tareas en un cron real del servidor. De este modo, las tareas se ejecutan a intervalos fijos, independientemente de si hay visitas o no.
1. Requisitos previos
- Acceso al panel de control de tu hosting (cPanel, Plesk, panel propio, etc.) o acceso SSH.
- Ruta correcta a PHP en tu servidor (por ejemplo,
/usr/bin/php). - Constante
DISABLE_WP_CRONdefinida entrueenwp-config.php.
2. Ejemplo de tarea cron por URL
Muchos hostings permiten configurar un cron que simplemente llame a una URL. En ese caso, puedes programar una ejecución cada 5 o 10 minutos apuntando a:
https://tudominio.com/wp-cron.php?doing_wp_cron=1
Configura la frecuencia según las necesidades de tu sitio. Para la mayoría de proyectos, cada 5 minutos es suficiente.
3. Ejemplo de tarea cron por CLI (recomendado)
Si tienes acceso SSH, es preferible ejecutar WP Cron mediante la línea de comandos de PHP, ya que evita posibles bloqueos de HTTP y suele ser más eficiente. Un ejemplo de entrada en crontab sería:
*/5 * * * * /usr/bin/php /ruta/a/tu/web/public_html/wp-cron.php > /dev/null 2>&1
Ajusta la ruta a PHP y a tu instalación de WordPress según tu servidor. El redireccionamiento a /dev/null evita que se acumulen correos de salida con la salida del comando.
4. Verificación tras configurar el cron
Una vez configurado el cron del servidor, espera unos minutos y comprueba:
- Si las entradas programadas se publican correctamente.
- Si las tareas marcadas como atrasadas en WP Crontrol empiezan a ejecutarse.
- Si desaparecen los avisos de salud del sitio relacionados con el cron.
Usar un cron del servidor no solo soluciona muchos problemas de WP Cron, sino que también mejora la estabilidad y previsibilidad de las tareas programadas, especialmente en sitios con alto volumen de tráfico o procesos pesados en segundo plano.
Depurar errores de WP Cron y plugins
Incluso con WP Cron correctamente configurado, un solo plugin con un hook defectuoso puede bloquear la cola de tareas. Depurar estos errores es esencial para garantizar que todo el sistema funcione de forma fluida.
1. Identificar el hook problemático
Con WP Crontrol u otro plugin similar, revisa la lista de eventos programados y fíjate en:
- Eventos con fecha de ejecución pasada que se mantienen en cola.
- Hooks que se ejecutan con demasiada frecuencia sin necesidad.
- Eventos personalizados asociados a plugins concretos (por ejemplo, nombres que incluyen el nombre del plugin).
Ejecuta manualmente los eventos sospechosos desde el panel del plugin y observa si se producen errores visibles o registros en el log de depuración.
2. Revisar el archivo debug.log
Con el modo de depuración activado, fuerza la ejecución de WP Cron y revisa el archivo wp-content/debug.log. Busca mensajes de error relacionados con:
- Funciones de plugins que se ejecutan en hooks de cron.
- Errores fatales (
Fatal error) o avisos de tiempo de ejecución excedido. - Problemas de memoria insuficiente (
Allowed memory size exhausted).
3. Desactivar plugins de forma selectiva
Si sospechas que un plugin está bloqueando WP Cron, prueba a desactivarlo temporalmente y observa si las tareas pendientes empiezan a ejecutarse. Para minimizar el impacto:
- Desactiva primero los plugins instalados o actualizados justo antes del problema.
- Desactiva plugins de backups, seguridad, caché o automatización, que suelen usar cron de forma intensiva.
- Realiza las pruebas en horarios de menor tráfico o en un entorno de staging.
4. Comprobar límites de recursos del servidor
Algunos hostings imponen límites estrictos de CPU, memoria o tiempo de ejecución que pueden interrumpir tareas largas. Consulta con tu proveedor o revisa los parámetros:
max_execution_timememory_limitmax_input_time
Si tras desactivar plugins y revisar los logs el problema persiste, puede que necesites la ayuda del soporte técnico de tu hosting. Facilítales ejemplos de errores, capturas de WP Crontrol y fragmentos de debug.log para acelerar el diagnóstico.
Buenas prácticas para optimizar WP Cron
Una vez que WP Cron vuelve a funcionar, es recomendable aplicar una serie de buenas prácticas para evitar futuros problemas y mejorar el rendimiento general de tu sitio WordPress.
1. Evitar tareas innecesariamente frecuentes
Algunos plugins programan tareas con una frecuencia excesiva (por ejemplo, cada minuto) sin necesidad real. Revisa y ajusta, cuando sea posible, la periodicidad de estas tareas para reducir la carga del servidor.
2. Usar un cron de servidor en sitios críticos
En proyectos profesionales, tiendas online o sitios con procesos complejos, es preferible desactivar el cron interno y usar un cron del servidor. Esto aporta:
- Mayor fiabilidad en la ejecución de tareas.
- Menor dependencia del tráfico web.
- Mejor control sobre la carga generada por las tareas programadas.
3. Mantener plugins y temas actualizados
Muchos problemas de cron se originan en bugs ya corregidos por los desarrolladores. Mantener tu instalación actualizada reduce el riesgo de errores en hooks programados y mejora la compatibilidad con nuevas versiones de PHP y WordPress.
4. Monitorizar la cola de tareas
Instala una herramienta de monitorización o revisa periódicamente la cola de cron con plugins como WP Crontrol. Así podrás detectar:
- Tareas que se acumulan sin ejecutarse.
- Eventos duplicados o mal configurados.
- Hooks de plugins que generan demasiadas tareas.
5. Coordinar WP Cron con sistemas de caché
Si usas caché a nivel de plugin, servidor o CDN, asegúrate de que no bloquee las peticiones a wp-cron.php. En algunos casos, tendrás que excluir esta ruta de la caché o configurar reglas específicas.
Documentar tu configuración de cron (interno y de servidor) y los plugins que dependen de él te ayudará a reaccionar más rápido ante futuros problemas. Incluye esta información en la documentación técnica de tu proyecto o en tu sistema de tickets interno.
Ejemplos de tareas programadas críticas
Para entender el impacto real de que WP Cron no funcione en WordPress, conviene repasar algunos ejemplos de tareas críticas que dependen de este sistema. Si alguna de ellas falla, tu negocio o proyecto puede verse seriamente afectado.
1. Publicación de contenidos y SEO
La publicación automática de entradas programadas es esencial para muchas estrategias de contenidos. Si WP Cron no las ejecuta:
- Las campañas de marketing de contenidos pierden sincronización.
- Los artículos no se publican en el momento óptimo para SEO y redes sociales.
- Los feeds RSS y newsletters pueden enviar información desactualizada.
2. Tiendas online y pasarelas de pago
En WooCommerce y otros plugins de comercio electrónico, WP Cron interviene en procesos como:
- Cambio de estado de pedidos tras la confirmación de pago.
- Envío de correos de confirmación y facturas.
- Actualización de inventario y sincronización con ERPs.
- Renovación de suscripciones y pagos recurrentes.
Si estas tareas no se ejecutan, puedes tener pedidos cobrados que no se marcan como completados, clientes sin confirmación de compra o suscripciones que no se renuevan a tiempo.
3. Copias de seguridad y seguridad
Muchos plugins de backup y seguridad dependen de WP Cron para:
- Programar copias de seguridad diarias o semanales.
- Ejecutar escaneos de malware periódicos.
- Rotar logs y limpiar archivos temporales.
Si WP Cron no funciona, puedes pasar semanas sin copias de seguridad actualizadas ni escaneos de seguridad, aumentando el riesgo ante cualquier incidente.
4. Automatizaciones y marketing
Herramientas de automatización, email marketing y CRM integradas con WordPress suelen usar cron para:
- Enviar secuencias de correos automáticos.
- Sincronizar contactos y leads con plataformas externas.
- Actualizar segmentos y etiquetas de usuarios.
Identificar qué procesos de tu sitio dependen de WP Cron te ayudará a priorizar la resolución de problemas. En proyectos críticos, conviene documentar explícitamente estas dependencias y probarlas tras cada cambio importante en el sistema.
Preguntas frecuentes
¿Cómo saber si WP Cron está desactivado?
Revisa el archivo wp-config.php y busca la constante DISABLE_WP_CRON. Si está definida como true, el cron interno está desactivado. También puedes instalar WP Crontrol y comprobar si las tareas programadas se actualizan o quedan congeladas.
¿Es mejor usar WP Cron o un cron del servidor?
Para sitios pequeños o blogs personales, WP Cron suele ser suficiente. En proyectos profesionales, tiendas online o sitios con procesos críticos, es más fiable desactivar el cron interno y configurar un cron real del servidor que ejecute wp-cron.php a intervalos regulares.
¿Puedo desactivar WP Cron sin configurar nada más?
No es recomendable. Si defines DISABLE_WP_CRON en true y no configuras un cron del servidor, las tareas programadas dejarán de ejecutarse. Solo debes desactivarlo cuando tengas un sistema alternativo de cron correctamente configurado.
¿Qué hago si mi hosting bloquea wp-cron.php?
Contacta con el soporte de tu proveedor y solicita que permitan el acceso a wp-cron.php o que te indiquen la forma recomendada de configurar cron en su plataforma. Algunos hostings ofrecen herramientas propias para programar tareas sin usar la URL pública.
¿Un plugin puede romper WP Cron?
Sí. Un plugin que registre tareas mal programadas o que genere errores fatales en sus hooks de cron puede bloquear la cola de tareas. Si sospechas de un plugin, desactívalo temporalmente, revisa el archivo debug.log y comprueba si las tareas pendientes vuelven a ejecutarse con normalidad.
¿Necesitas orientación personalizada?
Te ayudamos a entender tus opciones y el siguiente paso.