Como Acelerar ao Máximo Seu Site em WordPress: O Guia Definitivo

Recentemente o Google anunciou que a velocidade de carregamento das páginas de um site terão também seu peso na posição do ranking que o mesmo ocupa nas buscas (link, em inglês).

Por enquanto apenas sites em inglês estão sendo afetados, mas a tendência é que o critério se espalhe para toda a Internet.

Um tempo atrás eu já publiquei um pequeno guia de otimização (link), hoje eu vou mais fundo, entrando em detalhes bem mais técnicos, mas nem por isso muito difíceis de aplicar.

Corrão!

1. Analisando Seu Site

Para analisar o desempenho do seu site, vamos utilizar um complemento para Firefox chamado Pagespeed, que funciona em conjunto com o Firebug.

Download Firebug.

Download Pagespeed.

Instale os dois complementos (o Pagespeed funciona apenas em conjunto com Firebug) e reinicie o Firefox. Você verá o símbolo de um inseto no lado direito da barra de ferramentas inferior.

Abra seu site, aguarde o completo carregamento da página e clique no ícone. Clique em “Analyse Performance” e você verá uma página de resultados como a mostrada abaixo.

Pagespeed

O índice de 0 a 100 exibido no início indica o quanto sua página é bem otimizada para rapidez. O objetivo é chegar o mais próximo possível de 100. Já vou avisando que esse valor é praticamente impossível. O resultado 89 acima é da página inicial do próprio Google.

Via de regra, se seu site estiver acima de 85 nem vale muito a pena mexer, já que dificilmente você irá conseguir algo muito melhor do que isso.

2. Trabalhando Com os Resultados

Os resultados marcados com um ponto de exclamação dentro de um círculo vermelho são aqueles considerados críticos; o triângulo amarelo representa pontos intermediários; verde representa o que está OK.

O sinal de + permite ver sugestões para resolver o problema ou melhorar o que já está bom.

3. Atacando o Problema

Certamente o seu site terá muitos problemas a ser resolvidos, e atacar um por um pode ser uma tarefa demorada e improdutiva.

Há um plugin, no entanto, que ajuda a colocar boa parte da casa em ordem.

O W3 Total Cache, além de cachear seu site com eficiência, tem uma gama enorme de configurações que permitem ajustar quase que cada detalhe de seu site.

Eu já havia testado a versão anterior do plugin, que deixava muito a desejar, principalmente por comer uma infinidade de recursos do servidor.

A versão que iremos utilizar é a que está em desenvolvimento (link para download), se o link direto não funcionar, clique nesse link e baixe a “Development Version” no final da página.

Instale o plugin e desabilite qualquer sistema de cachê que você utiliza antes de ativá-lo. Se seu site é movimentado é melhor fazer isso em horários de menor tráfego, como a madrugada.

Após ativar o plugin, vá até a página de configurações. Não se assuste com a quantidade de abas e opções, muitas delas serão utilizadas no estado padrão.

W3 Total Cache

Na aba inicial você irá usar as configurações mostradas na figura acima (clique na imagem para ampliar), o item CDN nós iremos ver mais adiante se se aplica ao seu caso.

Mesmo que seu servidor tenha outras opções de cachê, eu observei que a mais eficiente á a que utiliza o disco, principalmente em momentos de maior tráfego.

As outras abas já vêm pré-configuradas, você só precisará alterar o tempo de validade do cachê. 86400 segundos (24 horas) é um bom valor.

Você deve prestar uma atenção especial à aba “Browser Cache”.

Esta aba trata dos chamados “server headers”. Server headers são informações que seu site envia ao navegador do visitante, como por exemplo quanto tempo as imagens devem ser armazenadas no cachê (do navegador).

Dessa forma, quando o visitante voltar a sua página as imagens não serão enviadas novamente via servidor, sendo utilizadas as que estão armazenadas, reduzindo o tempo de carregamento das páginas.

86400 segundos também é um bom valor, com exceção das imagens. Dificilmente as imagens irão mudar com o tempo, então um valor alto (no mínimo uma semana, ou 604800 segundos) é o ideal. Eu radicalizei e coloquei logo um ano (31536000 segundos).

Esse valor mais alto deve ser utilizado na última caixa de opções, “Media & Other Files”.

Se seu tema utiliza o script “Timthumb” para gerar imagens, é necessário mais um passo. Vá até a página do script e procure por “Cache-Control: max-age”. Você irá encontrar um valor em torno de 9999, equivalente a algo como 2 horas e 40 minutos. Altere para 9999999999, equivalente a algo em torno de 100 dias.

Para localizar mais facilmente essa linha de código, digite CTRL+F5, cole Cache-Control: max-age na janela que se abrirá e clique em OK.

Utilizar ou Não um CDN?

Cdn é a abreviatura de “Content Delivery Network”. A rigor, é um site com servidores espalhados pelo mundo que entregam seus arquivos de mídia, imagens geralmente, do ponto mais próximo possível em relação ao visitante.

Isso faz com que suas páginas carreguem muito mais rápido, não apenas pela questão dos servidores, mas por causa de outro ponto importante que veremos logo em seguida.

Um serviço de CND custa caro e, se você usa muitas imagens e tem uma visitação alta, custa muito caro.

Porém, é possível montar um CDN “caseiro” e tirar vantagem de algumas características do serviço que fazem a diferença.

Quando seu site é aberto em um navegador, ele baixa sua página para poder exibi-la. A maneira com que os navegadores baixam as páginas segue algumas regras.

Só são baixados 2 arquivos de cada vez por domínio, ou seja, se seu site usa a url exemplo.com e todos os seus arquivos são armazenados debaixo dessa url, uma página com muitos arquivos vai demorar bem mais para ser exibida completamente do que se você utilizasse, digamos, 3 domínios.

A matemática é simples: 1 domínio = 2 arquivos de cada vez, 2 domínios = 4 arquivos de cada vez, 3 domínios = 6 arquivos de cada vez, 4 domínios = muitas conexões de DNS.

Exatamente, o navegador precisa requisitar o DNS de cada domínio utilizado. Mais do que 3 cria um problema: você ganha em velocidade de download e perde no tempo gasto realizando as conexões.

Segundo o próprio Google, um CDN, caseiro ou não, só vale a pena se você exibe mais do que 5 imagens na maioria de suas páginas (link, em inglês). O termo técnico é “arquivo estático” e refere-se também a arquivos em javascript ou css.

Utilizando um CDN

Caso você tenha dinheiro sobrando para contratar um CDN, eles lhe darão todas as instruções necessárias; aqui nós iremos ver como estabelecer um CDN “caseiro”, utilizando o próprio plugin W3 Total Cache.

Antes de mais nada, vale lembrar que um subdomínio é considerado como um domínio diferente pelo navegador, logo não é necessário sair registrando domínios em massa.

No entanto, não adianta servir as imagens de outro domínio ou subdomínio, se o mesmo envia cookies para o navegador do visitante. Cada cookie é uma informação a mais a ser baixada, e não é uma informação necessária para arquivos que não mudam. Novamente você ganha por um lado e perde pelo outro.

O problema com os cookies é que eles são estabelecidos em nível de domínio superior, e o WordPress envia cookies sempre. Isso quer dizer que se você tem seu site em exemplo.com, qualquer diretório ou subdomínio irá estabelecer cookies, e não há muito que se possa fazer quanto a isso.

Há alguns tutoriais, como esse, que ensinam a criar um subdomínio de seu site livre de cookies, mas eu não consegui fazer funcionar de forma alguma; tente se quiser e tiver tempo sobrando para o festival de tentativas e erros.

Com menos de 10 dólares você registra um domínio .com, que pode ser utilizado como CDN para todos os seus sites, através de subdomínios.

Como você não vai instalar nada no domínio e apenas utilizá-lo para armazenar imagens, ele nunca irá gerar cookies.

Se você tem um domínio parado, também é possível utilizá-lo, basta remover os arquivos que porventura estejam armazenados.

Utilizando Subdomínios

Supondo que você irá utilizar o domínio novo para armazenar as imagens de seu site principal, vamos criar um subdomínio tal como img.seudominio.com.

Armazene todas as imagens utilizadas por seu tema nesse subdomínio e altere os caminhos para as imagens no css e onde mais for necessário.

Configurando o CDN

Na página “General” do W3 Total Cache, marque a opção CDN e escolha a opção “Self-hosted / File Transfer Protocol Upload”.

Vá até a aba “Content Delivery Network” e configure tudo conforme a figura abaixo (clique para ampliar).

CDN

Os dados de conexão via FTP são os dados do domínio que você vai utilizar para hospedar os arquivos, “Replace site’s hostname with” é o domínio que será usado em seus artigos para chamar as imagens, substituindo o caminho atual.

Clique em “Test FTP server”, se aparecer “Test passed” é só começar a subir os arquivos.

Agora é só clicar nos botões, um a um, para subir os diversos arquivos ao novo domínio. Se você tem muitas imagens, o processo será mais demorado e provavelmente vários erros acontecerão.

A velocidade vai variar conforme seu servidor. Aqui, em um site com aproximadamente 8000 imagens, demorou algo em torno de 15 minutos. Isso na tentativa que funcionou, que deve ter sido a sexta (não esqueça que é uma versão de desenvolvimento do plugin).

Caso algo dê errado e você não consiga consertar de jeito algum, é só desabilitar o plugin que tudo retorna ao normal, nada é feito de forma a afetar a base de dados.

Quando você sobe imagens para um artigo, elas vão para o caminho tradicional e uma cópia vai para o domínio novo, então é possível reverter tudo a qualquer momento.

Agora é testar novamente seu site com o Pagespeed e ver a mudança. Qualquer dúvida, consulte esse link.

Compartilhar

Lua Nova - Guia Oficial Ilustrado do Filme
Lua Nova - Guia Oficial Ilustrado do Filme
 R$ 10,00 
Veja mais
Lata Lua Nova (Duplo) + Crepúsculo (Duplo) + Almanaque do Filme
Lata Lua Nova (Duplo) + Crepúsculo (Duplo) + Almanaque do Filme
 R$ 119,90 
Veja mais
Crepúsculo + Lua Nova + Eclipse + Formaturas Infernais
Crepúsculo + Lua Nova + Eclipse + Formaturas Infernais
 R$ 89,90 
Veja mais
Lua Nova - vol. 2
Lua Nova - vol. 2
 R$ 27,90 
Veja mais

Vitrine Submarino 3.4.1

Gostou? Cadastre seu email e receba mais, é grátis!

26 Comentários para “Como Acelerar ao Máximo Seu Site em WordPress: O Guia Definitivo”

  1. Roberto disse:

    Olá sr Noronha
    Tenho medo de plugins no wordpress!
    Um site bom pra fazer algumas análises do carregamento que é esse: link removido

  2. Eber disse:

    Olá Noronha,

    Você acha mesmo que o W3 Total Cache é muito melhor que o WP Super Cache, no resultado final que ele gera?

    Instalei um tempo atrás e deixou meu servidor mais carregado do que com o WP Super Cache.

    • j. noronha disse:

      Eu acho o W3 superior por fazer cache da base de dados e, na versão em desenvolvimento, até do object cache do WordPress.

      Pelo que pude testar até agora, está bem superior ao WP Supercache, vamos ver se continua assim.

  3. Assunto: Problemas no meu site

    Boa noite.

    Eu estava seguindo a técnicas ensinadas pelo post, e estava tudo indo um maravilha, pois tinha passado de 65 do teste do Pagespeed para 80. Foi quando chegei no final sobre o CDN. Notei que logo após colocar as informaçoes do ftp e mudar a permissão do arquivo .htaccess para 777, que as paginas do meu site deixaram de carregar.

    já voltei as configurações padrão do plugin e tb já disabilitei-o, mas o problema persiste. Não sei mais o que fazer para voltar com o meu site para o ar.

    Alguma sugestão?
    Obrigado pela atenção.

  4. Micox disse:

    Eu gosto de usar este teste online aqui: http://www.webpagetest.org/test

    É bem completo. Prefiro ele do que plugins locais.

    Ótimas dicas noronha.

  5. Helio disse:

    Quem for instalar o w3 cache tenham cuidado se seu .htaccess for já editado para permalinks, pois pode haver duplicidade de código e seus feeds não abrirem.

    O arquivo deve ficar como abaixo para os que usam permalinks custom:

    # BEGIN W3 Total Cache

    SetEnvIfNoCase Accept-Encoding (gzip) APPEND_EXT=.$1

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    RewriteCond %{REQUEST_URI} \/$
    RewriteCond %{REQUEST_URI} !(\/wp-admin\/|\/xmlrpc.php|\/wp-(app|cron|login|register).php|wp-.*\.php|index\.php) [OR]
    RewriteCond %{REQUEST_URI} (wp-comments-popup\.php|wp-links-opml\.php|wp-locations\.php) [NC]
    RewriteCond %{REQUEST_METHOD} !=POST
    RewriteCond %{QUERY_STRING} =”"
    RewriteCond %{HTTP_COOKIE} !(comment_author|wp-postpass|wordpress_\[a-f0-9\]\+|wordpress_logged_in) [NC]
    RewriteCond %{HTTP_USER_AGENT} !(bot|ia_archive|slurp|crawl|spider) [NC]
    RewriteCond /home/arrobabr/public_html/wp-content/w3tc/pgcache/$1/_default_.html%{ENV:APPEND_EXT} -f
    RewriteRule (.*) wp-content/w3tc/pgcache/$1/_default_.html%{ENV:APPEND_EXT} [L]

    # END W3 Total Cache

Trackbacks/Pingbacks

    1. [...] resposta a dois outros artigos: Acelere o WordPress com o Plugin WP Super Cache, do Celso Lemes, e Como Acelerar ao Máximo Seu Site em WordPress: O Guia Definitivo, do J. [...]

    2. [...] Aproveite para ler mais dicas sobre CDN no excelente artigo do J. Noronha n’O Fim da Várzea. [...]

Deixe um comentário

XHTML: Tags permitidas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Online