Como otimizar o banco de dados WordPress para velocidade
O que é a otimização do banco de dados do WordPress?
A otimização do banco de dados do WordPress é o processo de remover dados acumulados e reduzir o tamanho das tabelas MySQL para que cada consulta responda mais rápido. Com o tempo, o WordPress guarda revisões de cada post, rascunhos automáticos, transients que nunca expiram, comentários de spam na lixeira e metadados órfãos de plugins desinstalados. Esse acúmulo incha a tabela wp_options e as wp_postmeta, deixando as queries lentas e elevando o TTFB de todas as páginas dinâmicas. A otimização envolve apagar o lixo, recuperar o espaço com OPTIMIZE TABLE e garantir índices nas colunas mais consultadas.
Como identificar
- O painel do WordPress (wp-admin) demora a carregar mesmo com poucos plugins ativos.
- O diagnóstico “Reduzir o tempo de resposta do servidor (TTFB)” aparece como oportunidade no PageSpeed Insights.
- A ferramenta Site Health do WordPress aponta a tabela wp_options com autoload grande demais.
- Páginas e buscas internas demoram, e o log de queries lentas do MySQL registra consultas acima de 1 segundo.
Como prevenir
- Defina um limite de revisões no wp-config.php e agende limpezas periódicas de transients e spam
- Desinstale plugins removendo também os dados que eles deixam nas tabelas wp_options e wp_postmeta
- Monitore o log de queries lentas e o tamanho do autoload com regularidade para pegar o inchaço cedo
Causa
- Revisões de post e rascunhos automáticos acumulados sem limite, multiplicando linhas na tabela wp_posts.
- Transients expirados que nunca foram removidos, inchando a tabela wp_options e o autoload.
- Comentários de spam e na lixeira mantidos por meses nas tabelas wp_comments e wp_commentmeta.
- Metadados órfãos em wp_postmeta e linhas deixadas por plugins que foram desinstalados sem limpeza.
- Colunas muito consultadas (como meta_key) sem índice, forçando o MySQL a varrer a tabela inteira.
Como resolver
- Faça backup completo do banco: exporte o banco antes de qualquer limpeza. Operações de exclusão e ALTER TABLE são irreversíveis, e um backup recente é a sua rede de segurança.
- Limite e limpe as revisões de post: defina um teto de revisões no wp-config.php e apague o histórico antigo. Cada post pode ter dezenas de revisões inúteis ocupando a wp_posts.
- Apague transients e spam acumulados: remova os transients expirados da wp_options e esvazie os comentários de spam e da lixeira. São os campeões de inchaço em sites antigos.
- Otimize as tabelas e reduza o autoload: rode OPTIMIZE TABLE para recuperar espaço e desmarque o autoload de options grandes que não precisam carregar em toda requisição.
- Adicione índices nas colunas mais consultadas: crie índices em colunas como meta_key e meta_value usadas por queries frequentes, para o MySQL localizar as linhas sem varrer a tabela toda.
- Meça o TTFB de novo: depois da limpeza, rode o PageSpeed e compare o TTFB; em sites dinâmicos a queda costuma ser visível imediatamente no laboratório.
-- 1) Apaga revisoes de post (rode com backup feito)
DELETE FROM wp_posts WHERE post_type = 'revision';
-- 2) Remove transients expirados que incham wp_options
DELETE FROM wp_options
WHERE option_name LIKE '_transient_%'
OR option_name LIKE '_site_transient_%';
-- 3) Limpa comentarios de spam e da lixeira
DELETE FROM wp_comments WHERE comment_approved IN ('spam', 'trash');
-- 4) Recupera espaco fisico das tabelas
OPTIMIZE TABLE wp_posts, wp_options, wp_postmeta, wp_comments;
-- 5) Indexa a coluna mais consultada da wp_postmeta
ALTER TABLE wp_postmeta ADD INDEX idx_meta_key (meta_key);














