Como Otimizar uma Base de Dados WordPress

A base de dados WordPress é o coração do seu site. Cada artigo, página, comentário, definição e registo de plugin é armazenado numa base de dados MySQL ou MariaDB. Com o tempo, a base de dados fica carregada com dados desnecessários que abrandam o site. Neste guia mostramos como limpar e otimizar a base de dados WordPress para um desempenho máximo.
Porque é importante otimizar a base de dados?
Sempre que um visitante abre uma página, o WordPress envia consultas à base de dados para apresentar o conteúdo. Se a base de dados contiver milhares de linhas desnecessárias, essas consultas demoram mais tempo, o que afeta diretamente a velocidade de carregamento. Uma base de dados lenta significa um site lento, e um site lento significa menos visitantes e piores posições no Google.
Um site WordPress típico, após um ano de atividade, pode acumular dezenas de milhares de revisões de artigos desnecessárias, um milhar de transients, centenas de comentários de spam e tabelas fragmentadas. Tudo isto carrega a base de dados sem qualquer benefício.
Revisões de artigos - o assassino silencioso do desempenho
O WordPress guarda automaticamente uma revisão sempre que grava um artigo ou página. Se tiver 100 artigos gravados 20 vezes cada, são 2.000 linhas na base de dados só para revisões. A maioria destas revisões nunca irá precisar.
Eliminação manual de revisões: Pode utilizar uma consulta SQL diretamente no phpMyAdmin. No cPanel tem acesso ao phpMyAdmin:
DELETE FROM wp_posts WHERE post_type = 'revision';
No entanto, recomendamos a abordagem mais segura baseada em plugin, porque a eliminação manual pode causar problemas se não souber exatamente o que está a fazer.
Limitar revisões futuras: Adicione a seguinte linha ao wp-config.php:
define('WP_POST_REVISIONS', 3);
Isto mantém apenas as últimas 3 revisões de cada artigo. Pode definir 0 para desativar completamente as revisões, mas recomendamos pelo menos 2-3 no caso de edições acidentais.
Transients - dados temporários que ficam para sempre
Os transients são dados temporários que o WordPress e os plugins armazenam na base de dados com uma data de expiração. O problema é que o WordPress não elimina automaticamente os transients expirados - ficam na base de dados e ocupam espaço. Alguns plugins criam milhares de transients que nunca expiram.
Os transients são armazenados na tabela wp_options, uma das tabelas mais importantes e mais frequentemente lidas. Mais linhas desnecessárias em wp_options significam um carregamento mais lento de cada página.
Para eliminar transients expirados pode utilizar um comando WP-CLI:
wp transient delete --expired
Ou utilizar um plugin que o faz automaticamente em intervalos regulares.
Comentários de spam e eliminados
Se gere um blog com comentários ativados, os comentários de spam acumulam-se a um ritmo incrível. O Akismet e outros plugins anti-spam bloqueiam o spam, mas os comentários eliminados e de spam permanecem na base de dados nas pastas "Spam" e "Lixo". O WordPress elimina automaticamente os comentários no lixo após 30 dias, mas nunca elimina os comentários de spam, a menos que o faça manualmente.
Esvazie regularmente as pastas de spam e lixo dos comentários. Se tiver milhares de comentários de spam, eliminá-los através da administração do WordPress pode ser lento - utilize um plugin ou uma consulta SQL:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
Otimização de tabelas
Quando elimina dados de uma tabela MySQL, o espaço não é libertado automaticamente. A tabela mantém o mesmo tamanho, apenas com "buracos" onde os dados eliminados costumavam estar. Isto chama-se fragmentação. O comando OPTIMIZE TABLE desfragmenta a tabela e recupera espaço.
No phpMyAdmin, selecione todas as tabelas e escolha "Optimize table" no menu pendente. Ou utilize SQL:
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;
Recomendamos executar isto uma vez por mês ou utilizar um plugin que o automatize.
WP-Optimize - solução tudo-em-um
O WP-Optimize é o plugin de otimização de base de dados mais popular, com mais de 1 milhão de instalações ativas. Permite-lhe:
Limpar a base de dados: Com um clique, elimine revisões, transients, comentários de spam, artigos no lixo, pingbacks e trackbacks. Pode escolher o que eliminar e pré-visualizar quanto espaço será libertado antes de eliminar.
Otimizar tabelas: Executa automaticamente OPTIMIZE TABLE em todas as tabelas do WordPress. Mostra o nível de fragmentação de cada tabela.
Agendar limpeza automática: Configure uma limpeza automática diária, semanal ou mensal. O plugin irá eliminar dados desnecessários conforme o agendamento.
A versão gratuita cobre todos os elementos básicos. A versão premium acrescenta funcionalidades avançadas como compressão de imagens e cache de páginas.
Advanced Database Cleaner - para utilizadores avançados
O Advanced Database Cleaner é um excelente plugin que vai um passo além do WP-Optimize. O seu principal ponto forte é a deteção de tabelas "órfãs" - tabelas deixadas na base de dados depois de desinstalar um plugin. Muitos plugins criam as suas próprias tabelas na instalação mas não as removem ao serem desinstalados.
O plugin mostra uma lista de todas as tabelas na base de dados e assinala quais pertencem ao núcleo do WordPress, quais pertencem a plugins ativos e quais ficaram sem dono. Pode eliminar com segurança as tabelas órfãs e recuperar espaço.
Deteta também linhas "órfãs" na tabela wp_options - definições de plugins que já não estão instalados. Esta é uma causa frequente de uma tabela wp_options enorme.
Tabela wp_options - a causa mais comum de lentidão
A tabela wp_options é especialmente crítica porque é carregada em cada pedido. O WordPress carrega na memória todas as linhas onde o campo autoload está definido como "yes" a cada carregamento de página. Se tiver centenas de kilobytes de opções com autoload, isso abranda diretamente cada página.
Verifique o tamanho dos dados com autoload com uma consulta SQL:
SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload = 'yes';
Se o resultado for superior a 1MB, tem um problema. Reveja as maiores opções com autoload e desative o autoload para aquelas que não precisam de ser carregadas em cada página.
Backup antes da otimização
Antes de qualquer otimização da base de dados, faça um backup. Este é o passo mais importante que muitas pessoas saltam. Se algo correr mal durante a otimização, um backup permite-lhe restaurar o site ao seu estado anterior em poucos minutos.
Utilize um plugin como o UpdraftPlus para um backup automático da base de dados, ou exporte a base de dados através do phpMyAdmin. A BeoHosting também faz backups diários do seu site em todos os planos de alojamento, mas é sempre melhor ter também o seu próprio backup antes de alterações importantes.
Calendário de manutenção recomendado
Semanalmente: Elimine comentários de spam e artigos no lixo.
Mensalmente: Elimine revisões (mantenha as últimas 3), limpe transients, otimize tabelas.
Trimestralmente: Verifique a existência de tabelas e opções órfãs, analise o tamanho da tabela wp_options, reveja o desempenho da base de dados.
Com uma manutenção regular, a sua base de dados WordPress manter-se-á rápida e eficiente, e o site carregará significativamente mais depressa. Uma base de dados otimizada é uma das formas mais fáceis de melhorar o desempenho do site sem qualquer custo.
BeoHosting Team
10+ anos de experiência — Especialistas em alojamento web e infraestrutura
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Última atualização: