Como corrigir o editor lento pelo Heartbeat Control do Perfmatters no WordPress
O que é editor lento pelo Heartbeat Control do Perfmatters?
O Heartbeat Control do Perfmatters e a opção que controla a Heartbeat API do WordPress, um sistema de polling do navegador que dispara requisicoes periodicas ao admin-ajax.php para tarefas em tempo real como salvar rascunhos automaticamente, travar o post em edição para outro usuário e atualizar widgets do painel. Pela documentação do WordPress, esse tique roda em intervalos de 15 a 120 segundos. O Perfmatters permite escolher entre manter o padrão, modificar a frequencia ou desligar o Heartbeat em áreas especificas para reduzir o uso de admin-ajax.php.
O problema aparece quando esse controle e configurado de forma agressiva no editor. Ao desativar o Heartbeat no editor de posts, ou ao esticar a frequencia para o limite de 120 segundos, recursos que dependem do tique deixam de responder no ritmo esperado: o autosave demora ou para, o aviso de post bloqueado não atualiza e a interface do editor parece travada e sem feedback. A percepcao de editor lento, nesse caso, vem do Heartbeat reduzido ou cortado, e não de uma falha do nucleo do WordPress.
Como identificar
- O rascunho automático para de salvar e o aviso ‘Rascunho salvo’ demora muito mais que o normal ou não aparece ao editar um post.
- Ao reabrir um post o WordPress exibe ‘Este conteúdo não foi salvo automaticamente’ ou perde alterações recentes que o autosave deveria ter guardado.
- O editor de blocos parece travado por longos intervalos e so responde a cada movimento depois de vários segundos de atraso.
- O aviso de post em edição por outro usuário (‘está sendo editado no momento’) não aparece ou não some após a edição terminar.
- Widgets do painel e contadores em tempo real param de atualizar sozinhos depois de ativar o Heartbeat Control do Perfmatters.
Como prevenir
- Desative o Heartbeat apenas no frontend, onde o tique e dispensavel, e mantenha-o ativo no editor de posts para preservar o autosave e o bloqueio de post.
- Use uma frequencia intermediaria do Heartbeat, entre 30 e 60 segundos, em vez do limite de 120 segundos, para economizar admin-ajax.php sem travar o editor.
- Centralize o controle da Heartbeat API em um único plugin, evitando que Perfmatters e WP Rocket apliquem regras concorrentes sobre o mesmo recurso.
- Documente a configuração do Heartbeat Control adotada no site para que ajustes futuros não reintroduzam o editor lento sem querer.
Causa
- O Heartbeat Control esta configurado para desativar o Heartbeat na área do editor de posts (Post Editor), cortando o tique que alimenta o autosave e o bloqueio de post enquanto se escreve.
- A frequencia do Heartbeat (Heartbeat Frequency) foi esticada para perto do limite de 120 segundos da Heartbeat API, fazendo o autosave e o aviso de post bloqueado responderem com atraso percebido como editor lento.
- O Heartbeat foi modificado ou desativado para todas as áreas (Dashboard, Frontend e Post Editor) de uma vez, em vez de limitar apenas o frontend onde o tique e dispensavel.
- Outro plugin de cache ou performance (por exemplo WP Rocket) também controla a Heartbeat API ao mesmo tempo, e as duas configurações se sobrepoem, deixando uma frequencia final maior que a pretendida.
- O servidor de hospedagem já limita o admin-ajax.php e, com o Heartbeat reduzido pelo Perfmatters, as poucas requisicoes restantes ficam na fila e retornam lentas no editor.
Como resolver
- Abra o Heartbeat Control nas opções do Perfmatters: No painel do WordPress, va até as opções do Perfmatters e localize a seção do Heartbeat dentro da aba General. E ali que ficam os controles que definem se o Heartbeat e mantido, modificado ou desativado por área.
Painel WP -> Configurações -> Perfmatters Abra a aba General (Geral) e localize a seção Heartbeat - Mantenha o Heartbeat ativo no editor de posts: Se a opção estiver desativando o Heartbeat na área do editor, mude para não desligar o Post Editor. O autosave e o bloqueio de post dependem do tique nessa tela, entao desativa-lo ali e a causa direta do editor sem resposta.
Na seção Heartbeat, localize a opção de comportamento por área Garanta que o Heartbeat NÃO esteja desativado para 'Post Editor' Se desejar economizar recursos, desative o Heartbeat apenas no 'Frontend' - Ajuste a frequencia do Heartbeat para um valor moderado: Se você optou por modificar a frequencia, evite o limite de 120 segundos no editor. Um valor intermediario, como 30 ou 60 segundos, reduz o uso de admin-ajax.php sem fazer o autosave parecer congelado. A Heartbeat API aceita de 15 a 120 segundos.
Na opção Heartbeat Frequency, defina um intervalo entre 30 e 60 segundos Evite o máximo de 120 segundos para a área do editor de posts Salve as alterações em Save Changes - Evite controlar o Heartbeat em dois plugins ao mesmo tempo: Se outro plugin de performance, como o WP Rocket, também controla a Heartbeat API, escolha apenas um para gerenciar essa opção. Duas configurações sobrepostas resultam numa frequencia final maior que a pretendida e em comportamento imprevisivel no editor.
Verifique se WP Rocket -> Heartbeat ou outro plugin esta ativo para o Heartbeat Deixe o controle do Heartbeat em apenas um plugin Restaure o Heartbeat para o padrão no plugin que você não for usar - Limpe o cache e teste o editor novamente: Após ajustar a frequencia e as áreas, limpe o cache do Perfmatters e do navegador e reabra um post. O autosave deve voltar a salvar no ritmo esperado e o editor deve responder sem os longos atrasos.
Painel WP -> Perfmatters -> Tools -> limpe o cache, se houver Recarregue o editor com o cache do navegador limpo (Ctrl+Shift+R) Edite um rascunho e confirme o aviso 'Rascunho salvo' voltando ao normal
<?php
// Mantem o Heartbeat ativo no editor de posts e o desativa apenas no frontend.
// Use como alternativa em codigo ao ajuste do Heartbeat Control do Perfmatters.
add_action( 'init', 'full_ajustar_heartbeat', 1 );
function full_ajustar_heartbeat() {
global $pagenow;
// Desativa o Heartbeat fora do admin (frontend), onde o tique e dispensavel.
if ( ! is_admin() ) {
wp_deregister_script( 'heartbeat' );
}
}
// Define uma frequencia moderada (30s) no editor, evitando o maximo de 120s.
add_filter( 'heartbeat_settings', 'full_heartbeat_frequencia' );
function full_heartbeat_frequencia( $settings ) {
$settings['interval'] = 30; // valido entre 15 e 120 segundos
return $settings;
}














