Melhorar Desempenho do WordPress e Resolver Problemas de Alta CPU

Falei anteriormente dos problemas de desempenho do WordPress que causa uso elevado da CPU do seu servidor onde o blog está hospedado.

Organizei uma lista de ítens que você deve verificar para evitar problemas no seu WordPress. E em caso de ter algum problema, inclusive de alta CPU, esta lista me ajudou a organizar, resolver problemas e manter o blog em perfeitas condições.

Check-list do WordPress Para Resolver Problemas:

– Instale um plugin de cache, o wp-cache2 ou o super cache. Seu WordPress deve ter um destes dois instalado obrigatoriamente!

– Valide seu feed RSS no site FeedValidator.

– Desativar e apagar os arquivos dos plugins não utilizados.

– Cuidado ao instalar novos plugins. Escrevi um artigo explicando como ter uma instalação local do WordPress (para Mac) para poder testa-los antes de colocar no site em produção. Não deve ser muito complicado fazer o mesmo num Linux. Verifique os logs de erro do seu servidor através do cpanel após instalar cada plugin.

– Se tiver problemas de cpu, desinstale os plugins um-a-um para identificar qual é o vilão da história. Tive um problema enorme com o plugin Google Sitemaps e WordPress 2.5 e somente desinstalando e removendo os arquivos e depois instalando de novo uma cópia nova resolveu. Ainda no plugin Google Sitemaps desabilitei a opção de atualizar o sitemap a cada post ou comentário. Gero ele manualmente.

– Substituir no seu tema funções que exigem acesso ao banco de dados constantemente, por exemplo no seu cabeçalho (header) exitem os casos:

<?php bloginfo('url') ?> que pode ser substituído pelo seu endereço url do blog.
<?php bloginfo('stylesheet_directory'); ?> pelo endereço url do seu arquivo css.
<?php bloginfo('name'); ?> pelo nome do seu blog.

(Faça o mesmo para o resto das funções do cabeçalho)

– Verifique o tamanho em Kbytes da sua página com a ferramenta do Pingdom. Com ela você pode saber o tamanho de cada componente que pertence a sua página e o tempo total de carga.

– Compactar seu arquivo CSS com a ferramenta online de compressão. É possível fazer o mesmo com códigos em Javascript.

– Não colocar imagens ou fotos grandes no seu servidor, para qualquer tamanho maior que 100K, use uma conta do Flickr, ImageShack ou qualquer outro servidor de imagens na internet.

– Verifique o tamanho de cada imagem dos seus artigos e que fazem parte do design do seu site, elas devem estar otimizadas para Web, elas não devem ser maiores que uns 30K cada. Fique atento a cada artigo para que isso se mantenha assim.

– Otimizar e Reparar frequentemente as tabelas do MySQL através do plugin WP-DBManager ou manualmente se você sabe como fazer isso.

– A cada instalação ou atualização de versão do WordPress, reconstruir os permalinks dentro do seu WordPress através da opção Settings->Permalinks, clicar em salvar alterações.

– Ativar Compressão de HTTP “HTTP Compression” Usando o plugin wp-cache2 através do hack descrito aqui.

Editar: wp-cache-phase1.php
Adicionar o código:

if ( extension_loaded(’zlib’) ) ob_start(’ob_gzhandler’);

Antes da seguinte linha:

foreach ($meta->headers as $header) {
header($header);

Editar: /wp-content/advanced-cache.php

Adicionar o código:

if ( extension_loaded(’zlib’) ) ob_start(’ob_gzhandler’);

antes de:

foreach ($meta->headers as $header) {

– Teste se ativou a compressão neste link.

obs: A compressão gzip pode aumentar a carga de CPU utilizada pelo php então fique de olho.

block all wordpress comments

– Bloquear novos comentários em um dia de alto tráfego. Estou falando aqui de você ter por exemplo 10 mil visitas por dia e um de seus artigos for colocado num “Digg” da vida e atrair uma enxurrada de gente de uma só vez. No painel de administração do WordPress vá em Discussions e desmarque esta opção. O plugin super-cache tem uma opção que faz isso pra você.

cpanel error log

– Verificar com frequência os logs de erro do servidor através do cpanel e também solicitar o log de utilização de CPU para a empresa que administra seu servidor (se eles forem honestos não terão problemas em lhe fornecer, o Media Temple tem um painel de controle de CPU). Através de ssh os logs de cpu ficam em seu ~/logs/resource.log.

– Se ainda tem qualquer problema para publicar artigos em seu blog, teste se publicar em um blog de testes funciona. Mostrei como instalar o WordPress numa máquina local mas ainda existe um servidor de testes que você pode publicar artigos aqui (login: user / senha: testing).

– Use um tema padrão do WordPress para ver se o problema é o seu tema. Muitas vezes usamos tantos anúncios, funções e plugins que fica cada vez mais complicado analisar qualquer erro ou problema que apareça.

Boa sorte!