WordPress no tiene un programador incorporado para ejecutar tareas regulares, por lo que para evitar esto se activa una solicitud para procesar wp-cron.php
cada vez que un visitante solicita una página.
Hay un par de problemas con esto, en primer lugar en sitios ocupados, esto significa que esta tarea cron se ejecutará todo el tiempo, cuando realmente no es necesario.
- En un sitio web pequeño con unas pocas páginas y unos pocos cientos de visitantes al día,
wp-cron.php
probablemente no sea un problema, pero imagina un sitio web más grande con quizás 100 visitantes por hora. Si cada visitante lee tu página de inicio, y otros 2, eso significaría que se llama awp-cron.php
300 veces por hora, 7200 veces por día, etc. Además, en un sitio web ocupado grande,wp-cron.php
puede tardar unos minutos en ejecutarse. - También se pueden iniciar varias copias de
wp-cron.php
a la vez, porque la gente no espera online para ver tus páginas web Esto significa que se consume innecesariamente más memoria. Todo se convierte en una bola de nieve en consumo de recursos. - Vemos algunos sitios ocupados que ejecutan múltiples instancias de tareas
wp-cron.php
que consumen más de 200Mb de memoria virtual cada una. Esto agotará rápidamente la asignación de memoria permitida de tu cuenta de cPanel si todavía no ha agotado tu asignación de CPU pudiendo hacer que su sitio web no funcione correctamente. - Por supuesto, lo contrario también podría darse el caso contrario: si el sitio está bien optimizado y la mayoría de las solicitudes de página se atienden desde la memoria caché, es posible que la solicitud para procesar
wp-cron.php
no ocurra tan a menudo como lo desees.
Hay una solución para ambos casos: deshabilita el cron de WordPress y configura un trabajo cron de cPanel en un horario que controles.
Deshabilita la tarea cron de WordPress.
Debes editar el archivo wp-config.php de tu web; normalmente se encuentra en el directorio base de tu instalación de WordPress. Puede editarlo usando el Administrador de archivos de cPanel. Una vez que hayas abierto el archivo, busca la siguiente sección:
* @link https://codex.wordpress.org/Debugging_in_WordPress
*/
define('WP_DEBUG', false);
/* That's all, stop editing! Happy blogging. */
define('WP_DEBUG', true);
lo que significa que la depuración de WordPress está activada. Puedes seguir con seguridad estas instrucciones. Añade lo siguiente inmediatamente después de la línea WP_DEBUG
define('DISABLE_WP_CRON', true);
Entonces esa sección ahora se ve así:
* @link https://codex.wordpress.org/Debugging_in_WordPress
*/
define('WP_DEBUG', false);
define('DISABLE_WP_CRON', true);
/* That's all, stop editing! Happy blogging. */
Guarda el archivo wp-config.php.
Ahora deberás añadir el trabajo CRON en cPanel para reemplazar esta funcionalidad.
Antes de hacer esto, piensa con qué frecuencia necesitarás programarlo.
Como regla general, si solo revisas tu sitio web una vez al día, ejecuta wp-cron.php una vez al día. Sin embargo, es posible que desees ejecutar el trabajo CRON con más frecuencia:
• Si encuentras que está recibiendo muchos comentarios de spam y Akismet no se mantiene al tanto.
• Si programas publicaciones para que se publiquen en momentos específicos.
• Si publicas detalles del eventos que comienzan y terminan en momentos específicos.
• Si ejecutas un sitio de comercio electrónico con control de nivel de existencias.
• Si se integra con cualquier otro sistema que requiera actualizaciones o sincronizaciones regulares desde su sitio de WordPress.
Una vez que hayas configurado esto, es importante que lo supervises para asegurarte de que toda la funcionalidad de su sitio continúe como se espera. Siempre puedes volver al trabajo CRON en cPanel y ajustar tu programación en cualquier momento.
En cualquier caso, te aconsejamos que ejecute el CRON no menos frecuentemente que una vez al día.
El comando para el trabajo cron que configurará es:
/usr/bin/wget -O /dev/null https://www.mydomain/wp-cron.php?doing_wp_cron