O Heartbeat do WordPress: o que é e porque anda sempre a chamar o servidor

A resposta curta: o Heartbeat é um «pulso» que o WordPress envia ao servidor de poucos em poucos segundos enquanto o painel ou o editor estão abertos. Serve para guardar rascunhos, avisar que outra pessoa está a editar a mesma página e ver se a sua sessão expirou. Quando há muitos separadores abertos, são muitos pedidos ao servidor. A cura é abrandá-lo, não desligá-lo.

Cada pulso é um pedido ao ficheiro admin-ajax.php com a ação heartbeat. O intervalo depende do ecrã: mais curto no editor de páginas, mais longo no resto do painel. Por defeito corre no painel e no editor, e não nas páginas que os visitantes veem.

Como saber se é o Heartbeat

1 No cPanel, abra o Acesso Bruto (Raw Access) e procure muitas linhas com POST /wp-admin/admin-ajax.php. Como ler essa página está em Ler as páginas de Erros e de Acesso Bruto.
2 Se o site fica lento ou chega ao limite quando alguém está a editar, e acalma quando essa pessoa fecha os separadores, o Heartbeat é um bom suspeito.
3 Para o confirmar com método, siga admin-ajax a consumir os seus recursos: o mesmo ficheiro serve muitas coisas, e o Heartbeat é só uma delas.

O que fazer

Medida O que muda
Fechar os separadores do painel que ninguém usa Cada separador aberto, mesmo esquecido de um dia para o outro, continua a enviar pulsos. É a medida mais simples e a que mais resolve.
Aumentar o intervalo entre pulsos O WordPress aceita um intervalo configurado por código. Fica com a proteção toda e com menos pedidos.
Desligá-lo por completo Acaba com os pedidos, mas perde o guardar automático seguro, o aviso de edição simultânea e o aviso de sessão expirada. Só faça isto sabendo o que perde.

Para aumentar o intervalo, acrescente este código ao functions.php de um tema filho, ou a um plugin de pedaços de código (veja Um plugin ou um pedaço de código):
add_filter( 'heartbeat_settings', function ( $settings ) {
$settings['interval'] = 60;
return $settings;
} );

O número é em segundos. Meça antes e depois, como em O que consome CPU num site.

Edite sempre uma cópia segura. Um erro no functions.php deixa o site com uma página branca. Faça cópia antes e saiba como entrar sem o painel: veja Desativar plugins, mesmo sem conseguir entrar.
Se o problema só aparece quando várias pessoas editam ao mesmo tempo, o limite real pode ser o da conta e não o do Heartbeat: veja Processos de entrada: porque um site com poucos visitantes atinge o limite.

O site abranda quando se edita e não percebe porquê? Abra um pedido com o endereço e a hora a que aconteceu.

Abrir pedido de suporte

VEJA TAMBÉM

admin-ajax a consumir os seus recursos: como descobrir e reduzir

O que consome CPU num site, e como baixar

Processos de entrada: porque um site com poucos visitantes atinge o limite

Trocar o WP-Cron por um cron do servidor

PRODUTO RECOMENDADO

Alojamento WordPress

Instalação num clique, actualizações tratadas e velocidade a sério. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?