# Como corrigir o editor lento pelo Heartbeat Control do Perfmatters no WordPress

O Heartbeat Control do Perfmatters deixa o editor lento quando a frequencia do Heartbeat e alongada demais ou o Heartbeat e bloqueado dentro do editor de posts, atrasando o autosave, o bloqueio de post e as atualizações em tempo real do 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.

**Antes de começar:** Antes de alterar a frequencia ou desativar o Heartbeat em áreas do painel, anote a configuração atual ou teste primeiro em um ambiente de staging. Desligar o Heartbeat no editor de forma definitiva pode mascarar perda de autosave em sites com vários editores trabalhando ao mesmo tempo.

## 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.

Erros relacionados

- [Como corrigir o erro de Heartbeat API ao controlar no WP Rocket](https://full.services/wp-fixer/corrigir-heartbeat-api-wp-rocket/)
- [Como corrigir o conflito de otimização entre Perfmatters e WP Rocket](https://full.services/wp-fixer/corrigir-conflito-perfmatters-wp-rocket/)
- [Como corrigir funcionalidades quebradas pelo Perfmatters](https://full.services/wp-fixer/corrigir-funcionalidades-quebradas-perfmatters/)

## 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

1. 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
```

2. 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'
```

3. 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
```

4. 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
```

5. 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
```


## Código

```php
<?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;
}
```

## Perguntas frequentes

### Por que o editor ficou lento depois que ativei o Heartbeat Control do Perfmatters

Porque a opção provavelmente desativou o Heartbeat no editor de posts ou esticou a frequencia ao máximo. O autosave e o bloqueio de post dependem do tique do Heartbeat, entao reduzi-lo demais faz o editor parecer travado. Mantenha o Heartbeat ativo no Post Editor e use uma frequencia moderada.

### Posso desativar o Heartbeat sem quebrar o autosave do WordPress

Sim, desde que você desative apenas no frontend e mantenha o Heartbeat ativo no editor de posts. O autosave roda na tela de edição, entao desligar o tique so no frontend economiza requisicoes sem afetar o salvamento automático dos rascunhos.

### Qual a frequencia ideal do Heartbeat no Perfmatters para o editor

A Heartbeat API aceita intervalos de 15 a 120 segundos segundo a documentação do WordPress. No editor, um valor entre 30 e 60 segundos costuma equilibrar economia de admin-ajax.php e autosave responsivo. Evite o máximo de 120 segundos nessa área.

### O Heartbeat Control do Perfmatters conflita com o WP Rocket

Pode conflitar se os dois controlarem a Heartbeat API ao mesmo tempo. As configurações se sobrepoem e a frequencia final fica maior que a pretendida. Escolha apenas um plugin para gerenciar o Heartbeat e restaure o padrão no outro.

### Desligar o Heartbeat reduz o uso de CPU do servidor

Reduz as requisicoes ao admin-ajax.php disparadas pelo tique, o que alivia hosts com pouca CPU. O cuidado e não desligar no editor, onde o tique alimenta autosave e bloqueio de post. Prefira desativar no frontend e moderar a frequencia no painel.

### Onde fica a opção de Heartbeat Control no Perfmatters

Ela fica nas opções do Perfmatters, dentro da aba General, na seção do Heartbeat. Ali você escolhe manter o padrão, modificar a frequencia ou desativar o Heartbeat por área, separando Dashboard, Frontend e Post Editor.

### O que e a Heartbeat API que o Perfmatters controla

E um sistema de polling do WordPress que faz o navegador enviar requisicoes periodicas ao servidor para tarefas em tempo real, como autosave, bloqueio de post e atualização de widgets do painel. O tique roda entre 15 e 120 segundos, e o Perfmatters apenas ajusta ou desativa esse intervalo.

**Fonte:** [WordPress Developer Resources - Heartbeat API](https://developer.wordpress.org/plugins/javascript/heartbeat-api/)
