Deshabilitar WP-Cron del wordpress


#1

A continuación os explicamos el procedimiento para deshabilitar el wp-cron, de tu alojamiento wordpress.

Introducción.

De manera general, tener activo el sistema de crons de wordpress (basado en llamadas
internas del wordpress a si mismo vía POST /wp-cron.php) es una mala practica por los siguientes motivos:

  1. Debido a que wordpress no es un servicio, lo que hace es esperar a recibir una visita y en ese momento, se lanza una llamada a si mismo para ejecutar tareas pendientes. Debido a esto, el servidor tiene que dedicar sus recursos a atender una petición de cliente junto a hacer tareas de mantenimiento.

  2. De manera general el servidor tiene que dar prioridad para atender peticiones que vengan
    de clientes, evitando dedicar recursos a realizar labores de mantenimiento justo en ese momento.
    Es decir, hacer que la configuración del wordpress atienda la consulta del cliente y nada más,
    planificando cualquier tarea de mantenimiento o tareas periódicas a un mejor momento (donde
    el tráfico sea valle para el perfil concreto de la web).

  3. Se sabe que la activación del cron de Wordpress (POST /wp-cron.php) genera interacciones
    con algunos plugins de cacheo, haciendo que el servidor genere más carga.

  4. El cron de wordpress también puede ser usado por un atacante para hacer que la web se sobrecargue
    haciendo visitas al cron que a su vez hace llamadas a si mismo.

  5. De manera general, se recomienda desactivar esta característica si la web tiene muchas visitas.

Desactivar WP-CRON.

Para realizar este procedimiento tendremos que tener acceso mediente FTP al alojamiento.

Desactivar el cron interno del wordpress, añadir la siguiente línea:

define("DISABLE_WP_CRON", true);

Al fichero de configuración (normalmente sobre la línea 37, hacerlo antes
del primer require “wp-settings.php”, asegurándose que en el resto del fichero
no haya otra declaración que lo reactive):

  • …/domain.com/html/wp-config.php

Tras añadirlo, visitar la web y comprobar el log que no se generen accesos del tipo:

 xxx.xxxx.xxx.xxx - - [22/Jan/2020:11:48:29 +0100] "POST /wp-cron.php?doing_wp_cron=1579690109.9306809902191162109375 HTTP/1.1" 200 7134 "https://dominio.com/wp-cron.php?doing_wp_cron=1579690109.9306809902191162109375" "WordPress/5.3.2; https://dominio.com"

Consecuencias de Desactivarlo.

Al desactivar esta característica, todas las funcionalidades de planificación que tiene wordpress quedan
desactivadas (publicar dentro de una hora, borrar el artículo pasado un par de meses, etc).

Si es necesario reactivar estas tareas, crear un cron de sistema con la URL siguiente y configurado
para ejecutar en el mejor momento del día (teniendo en cuenta el tipo de web):

https://dominio.com/wp-cron.php

Se recomienda por tanto meter al menos un cron para ejecutar entre las 02:00 y las 07:30 de la mañana.


#2

#3