Como corrigir o backup automático que não roda no UpdraftPlus
O que é o backup automático que não roda no UpdraftPlus?
O backup automático que não roda no UpdraftPlus é a falha em que o agendamento configurado em Configurações, UpdraftPlus, na opção “Agendamento de backup de arquivos” e “Agendamento de backup de banco de dados”, chega no horário previsto e nada acontece. O UpdraftPlus não tem um relógio próprio: ele registra um evento no WP-Cron, o agendador interno do WordPress, e esse agendador só é verificado quando uma página do site é carregada. Em sites com pouco tráfego, ou quando a chamada loopback ao wp-cron.php está bloqueada, o evento de backup fica acumulado no passado e o painel mostra “Próximo backup agendado” com a data sempre vencida.
Como identificar
- No painel do UpdraftPlus a área “Next scheduled backups” (Próximos backups agendados) mostra uma data já vencida em vermelho e nenhum backup novo aparece em “Existing backups”.
- Um backup manual feito pelo botão “Backup Now” funciona normalmente, mas o agendado nunca dispara sozinho no horário marcado.
- Em Ferramentas, Saúde do site, aparece o aviso “O WP-Cron não funcionou desde a última verificação, agende um cron real do sistema”.
- O comando wp cron event list mostra o evento updraft_backup ou updraft_backup_database com a coluna de próxima execução muito atrasada.
- O log do UpdraftPlus não registra nenhuma linha nova de início de backup no horário esperado, como se o evento nunca tivesse sido chamado.
Como prevenir
- Configure um cron real do servidor a cada 5 minutos desde a instalação do UpdraftPlus, em vez de confiar no disparo por visita do WP-Cron
- Ative o relatório por e-mail do UpdraftPlus em “Email” nas configurações para receber aviso de cada backup concluído e perceber rápido quando um ciclo falha
- Mantenha firewall e Cloudflare liberando a requisição loopback ao wp-cron.php do próprio servidor após cada migração ou troca de hospedagem
- Guarde os backups em um destino remoto como Google Drive ou Amazon S3 para que uma falha no servidor não leve junto o arquivo de backup
Causa
- O site tem pouco ou nenhum tráfego e o WP-Cron só dispara em visitas, então o evento updraft_backup nunca é executado e o backup agendado fica acumulado no passado.
- A constante DISABLE_WP_CRON está definida como true no wp-config.php, mas nenhum cron real do servidor foi criado para chamar o wp-cron.php no lugar do disparo por visita.
- A requisição loopback do site ao próprio wp-cron.php está bloqueada por firewall, regra do Cloudflare, autenticação HTTP básica ou DNS interno errado, e o agendador nunca conclui.
- Um plugin de cache de página inteira serve a home a partir do cache e o WordPress não executa o disparo do WP-Cron naquela visita, atrasando o evento de backup.
- O backup começa mas o processo PHP atinge o max_execution_time ou o memory_limit do servidor e é interrompido antes de gerar o arquivo, deixando a tarefa marcada como não concluída.
- A constante ALTERNATE_WP_CRON foi ativada de forma incorreta e gera um redirecionamento que impede o evento agendado do UpdraftPlus de finalizar.
Como resolver
- Confirme que é o agendador que falha: no painel do UpdraftPlus, clique em "Backup Now" e veja se o backup manual roda até o fim. Se o manual funciona e só o agendado falha, o problema está no WP-Cron, não no UpdraftPlus. Liste os eventos com WP-CLI para confirmar.
wp cron event list | grep updraft wp cron event run updraft_backup - Desative o WP-Cron interno: edite o wp-config.php e, antes da linha que pede para parar de editar, adicione a constante que desliga o disparo por visita. Sozinha ela para o agendador, então o passo seguinte é obrigatório.
define( 'DISABLE_WP_CRON', true ); - Crie um cron real no servidor: no painel da hospedagem (cPanel, Cron Jobs) ou via crontab, agende uma tarefa que chame o wp-cron.php a cada 5 minutos. Use a versão por linha de comando, que roda direto pelo PHP e não depende da chamada HTTP loopback.
*/5 * * * * cd /home/usuário/public_html && php wp-cron.php >/dev/null 2>&1 - Teste a chamada loopback: abra o endereço seudominio.com/wp-cron.php?doing_wp_cron no navegador. Se a página retornar em branco com status 200, o loopback está livre. Se travar ou der 403, há um bloqueio de firewall ou autenticação que precisa ser liberado.
- Aumente os limites de PHP para o backup: se o backup começa e para no meio, eleve o tempo e a memória do processo no wp-config.php para o UpdraftPlus conseguir compactar e enviar o arquivo sem ser interrompido.
@ini_set( 'max_execution_time', '300' ); define( 'WP_MEMORY_LIMIT', '256M' ); - Force um backup agendado e confira o log: depois do cron real ativo, espere o próximo ciclo de 5 minutos ou rode o evento manualmente e acompanhe o log do UpdraftPlus. Uma nova linha de início de backup confirma que o agendador voltou a disparar.
wp cron event run updraft_backup wp cron event run updraft_backup_database
// functions.php do tema filho — avisa no painel se o backup do UpdraftPlus atrasou mais de 1 dia
add_action( 'admin_notices', function () {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
$proximo = wp_next_scheduled( 'updraft_backup' );
if ( $proximo && ( time() - $proximo ) > DAY_IN_SECONDS ) {
$atraso = human_time_diff( $proximo, time() );
echo '<div class="notice notice-error"><p>Backup agendado do UpdraftPlus atrasado em ' . esc_html( $atraso ) . '. Verifique o cron do servidor.</p></div>';
}
} );














