Introduccion
WP-Cron es el sistema de tareas programadas en WordPress, utilizado para ejecutar eventos como publicaciones programadas, comprobaciones de actualizaciones, envío de correos electrónicos y más. Sin embargo, a veces puede generar el problema de «?doing_wp_cron», afectando la funcionalidad y el rendimiento del sitio. En este artículo, exploraremos a fondo por qué ocurre este problema y cómo solucionarlo de manera efectiva.
💡 ¿Qué es WP-Cron y por qué puede causar problemas?
WP-Cron (wp-cron.php) es una funcionalidad de WordPress que simula un sistema de cronjobs tradicionales en servidores UNIX. A diferencia de un cronjob real, que se ejecuta en intervalos fijos, WP-Cron se activa cada vez que un usuario visita el sitio.
Este método tiene desventajas:
No garantiza una ejecución puntual de tareas programadas.
Puede ralentizar el sitio en tráfico alto.
Puede fallar en sitios con poco tráfico.
Puede generar el problema de «?doing_wp_cron», lo que indica que WP-Cron no está funcionando correctamente.
Cuando ves la cadena ?doing_wp_cron
en la URL, significa que WordPress está ejecutando una tarea programada, pero la redirección no se ha completado correctamente, causando problemas de carga y ejecución de scripts.
🔎 Causas comunes del error «?doing_wp_cron»
- Configuración de redirecciones incorrecta: Algunos plugins de seguridad o configuraciones en
.htaccess
pueden interferir con WP-Cron. - Interrupción en la ejecución de WP-Cron: Si el servidor detiene o bloquea la ejecución de WP-Cron, puede dejar la tarea sin finalizar.
- Cache agresiva: Algunos plugins de caché pueden interferir con el proceso de WP-Cron.
- Falta de tráfico: Si el sitio tiene poco tráfico, WP-Cron no se ejecuta con la frecuencia esperada.
- Problemas en
wp-config.php
: Algunos ajustes mal configurados en el archivo pueden deshabilitar la ejecución de WP-Cron.
✅ Solución al problema de WP-Cron «?doing_wp_cron»
1. Deshabilitar WP-Cron integrado y usar un cronjob del servidor
Como WP-Cron depende del tráfico para ejecutarse, la mejor solución es deshabilitarlo y configurarlo como una tarea cron real en el servidor.
📝 Paso 1: Desactivar WP-Cron
Edita el archivo wp-config.php
y añade la siguiente línea antes de /* That's all, stop editing! */
:
// Deshabilitar WP-Cron por defecto
define('DISABLE_WP_CRON', true);
💻 Paso 2: Crear un cronjob en el servidor
Si usas cPanel, Plesk o un acceso SSH, configura un cronjob para ejecutar WP-Cron de forma programada. Añade la siguiente línea a la configuración de cronjobs del servidor:
*/5 * * * * wget -q -O - https://tudominio.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Esto ejecutará WP-Cron cada 5 minutos.
2. Revisar configuración de .htaccess
Si el problema persiste, revisa tu archivo .htaccess
y asegúrate de que no esté bloqueando las solicitudes a wp-cron.php
. Abre .htaccess
y busca reglas que puedan estar interfiriendo. Si usas plugins de seguridad, revisa sus ajustes.3. Comprobar conflictos con plugins de caché
Algunos plugins de caché como WP Super Cache o W3 Total Cache pueden bloquear WP-Cron. Para solucionar esto:- Desactiva temporalmente el plugin y verifica si WP-Cron funciona.
- Si es la causa, revisa su configuración y excluye
wp-cron.php
del caché.
4. Monitorizar WP-Cron con un plugin
Si necesitas comprobar el estado de WP-Cron, puedes usar plugins como WP Crontrol:- Instala el plugin desde el repositorio de WordPress.
- Ve a Herramientas > Cron Events.
- Revisa si hay tareas fallidas o en cola.
5. Revisar permisos del servidor
Algunos servidores pueden bloquear WP-Cron. Contacta con tu proveedor de hosting y asegúrate de quewp-cron.php
esté permitido.📈 Conclusión
El problema de «?doing_wp_cron» en WordPress suele estar relacionado con redirecciones fallidas, problemas de ejecución o configuraciones incorrectas. La mejor solución es deshabilitar WP-Cron y configurar una tarea cron real en el servidor. Además, es importante revisar redirecciones, plugins de caché y posibles bloqueos del servidor.
Siguiendo estos pasos, tu sitio funcionará de manera más eficiente y evitarás problemas de rendimiento causados por WP-Cron.