WordPress 37 visualizações

Como agendar publicações no WordPress mesmo sem o cron real do servidor rodando

Ver no WHMCS

Por que seu post agendado às vezes não publica na hora certa?

Oi, tudo bem? Aqui é a Sensei da GeHost! 🌱 Se você já agendou um artigo lindo pro WordPress publicar automaticamente e ele ficou "preso" ali, alguns minutos (ou até horas) atrasado, eu vou te explicar exatamente por que isso acontece — e o melhor de tudo, como resolver de vez.

O segredo está em entender uma coisinha chamada WP-Cron. Vem comigo que é mais simples do que parece!

O que é o WP-Cron (e por que ele não é um cron "de verdade")

O WordPress tem um sistema próprio de tarefas agendadas chamado WP-Cron. É ele quem cuida de coisas como: publicar posts agendados, checar atualizações, enviar e-mails programados, gerar backups automáticos de plugins, entre outras tarefas.

Só que existe um detalhezinho importante: o WP-Cron não fica rodando sozinho o tempo todo no servidor. Ele só "acorda" quando alguém visita o seu site. Ou seja, toda vez que um visitante abre uma página, o WordPress aproveita e verifica: "opa, tem alguma tarefa agendada pra agora? Então vamos executar!"

💡 Dica da Sensei: é por isso que esse sistema é chamado de "pseudo-cron" — ele imita um cron de verdade, mas depende de visitas para funcionar.

E qual é o problema disso?

Se o seu site recebe muitas visitas por minuto, na prática você quase nem percebe atraso — o WP-Cron dispara quase na hora certa. Mas se o seu site tem pouco tráfego (ou nenhuma visita) no exato horário agendado, a publicação só vai sair quando a próxima pessoa visitar o site. Isso pode ser minutos, horas... ou só no dia seguinte!

É exatamente esse cenário — baixo tráfego no horário agendado — que faz parecer que "o cron não está rodando". E a solução é simples: fazer alguém (ou melhor, alguma coisa) "visitar" o site automaticamente, no horário certo, pra acordar o WP-Cron.

A solução: usar um Cron Job real do servidor

A boa notícia é que sua hospedagem GeHost tem, no painel cPanel, uma ferramenta chamada Cron Jobs, que permite agendar uma tarefa real do servidor — essa sim roda no horário exato, independente de visitas. Vamos usá-la para "cutucar" o WP-Cron regularmente.

Passo 1 — Acesse o cPanel

  1. Entre no seu painel.gehost.com.br e acesse o cPanel do seu site.
  2. Procure a seção "Avançado" e clique em "Cron Jobs".

Passo 2 — Crie o cron job

  1. Escolha um intervalo de execução. O mais comum é a cada 15 minutos — assim é frequente o suficiente pra publicações saírem quase na hora, sem sobrecarregar o servidor.
  2. No campo de comando, use algo assim (troque seudominio.com.br pelo seu domínio real):

wget -q -O /dev/null "https://seudominio.com.br/wp-cron.php?doing_wp_cron"

ou, se preferir usar curl:

curl -s "https://seudominio.com.br/wp-cron.php?doing_wp_cron" >/dev/null 2>&1

  1. Salve o cron job. Pronto! Agora o servidor vai "bater" no seu WordPress a cada 15 minutos, garantindo que as tarefas agendadas — incluindo seus posts — sejam disparadas no horário certo, mesmo sem visitantes.
⚠️ Atenção: se seu site ainda não tem certificado SSL ativo, use http:// em vez de https:// no comando. Se tiver dúvida sobre o SSL do seu domínio, dá uma olhada na área de SSL/TLS do cPanel ou fale com nosso suporte.

Passo extra (opcional, mas recomendado): desativar o WP-Cron "por visita"

Depois de configurar o cron job real, você pode desativar o disparo automático do WP-Cron por visita, evitando que ele rode em duplicidade. Para isso:

  1. Abra o Gerenciador de Arquivos no cPanel.
  2. Localize o arquivo wp-config.php, na raiz da instalação do WordPress.
  3. Edite o arquivo e adicione a linha abaixo, antes da linha que diz /* Isso é tudo, pode parar de editar! Boas publicações. */:

define('DISABLE_WP_CRON', true);

Salve o arquivo. Pronto — a partir de agora, quem manda no agendamento é o Cron Job real do servidor, que roda pontualmente, sem depender de visitas.

Resumindo, pra não esquecer

  • O WP-Cron do WordPress só roda quando alguém visita o site — por isso posts agendados podem atrasar em sites com pouco tráfego.
  • A solução é criar um Cron Job real no cPanel, que chama o wp-cron.php em intervalos fixos (ex.: a cada 15 minutos).
  • Opcionalmente, você pode desativar o disparo automático por visita adicionando DISABLE_WP_CRON no wp-config.php.
🌿 Dica final da Sensei: se você usa plugins de cache ou CDN, verifique se eles não estão bloqueando o acesso ao wp-cron.php. Em caso de dúvida, nosso suporte está sempre por aqui pra te ajudar!
Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.