Professional Documents
Culture Documents
www.brunodesouza.com
O trabalho Guia de otimizao para Wordpress de Bruno de Souza foi licenciado com uma Licena Creative Commons - Atribuio 3.0 Brasil. Com base no trabalho disponvel em www.brunodesouza.com. Podem estar disponveis autorizaes adicionais ao mbito desta licena em http://www.brunodesouza.com/contato.
Aviso Para qualquer reutilizao ou distribuio, voc deve deixar claro a terceiros os termos da licena a que se encontra submetida esta obra. A melhor maneira de fazer isso com um link para esta pgina.
Sumrio
Introduo ..........................................................................................................................3 1. Eliminar plug-ins desnecessrios ......................................................................................4 2. Otimize seu banco de dados .............................................................................................5 3. Desativar a reviso de post e apag-las do banco..............................................................6 4. Use um plug-in de cache ..................................................................................................7 5. Otimize as suas imagens ..................................................................................................9 6. Hospede as imagens de seu blog/site em outro servidor ou em um subdomnio ............. 10 7. Comprimir seu contedo ................................................................................................ 12 8. Desabilitar hotlinking ..................................................................................................... 12 9. Problemas com o gravatar.............................................................................................. 13 10. Otimize seus arquivos css e javascript ........................................................................... 14 11. Reduzir uso de scripts externos .................................................................................... 15 12. Utilize o php flush ........................................................................................................ 16 13. Minimizar o php e consultas de banco de dados ........................................................... 17 14. Otimizando o wordpress pelo wp-config.php ................................................................ 18 15. Limpar o banco de dados.............................................................................................. 20 16. Utilizando um CDN (content delivery network) para otimizar o carregamento .............. 23
Introduo
Otimizando a velocidade de nosso site no s o fazemos feliz, mas tambm seus leitores, afinal um site que carrega rpido sempre ter vantagens em relao a um site que demora muito para carregar, alm de economizar banda e os custos de hospedagem. Uma web mais rpida sempre melhor para todos, especialmente para os usurios, e isso pode significar mais visitas a qualquer site que possa se adaptar s novas exigncias. Aumentar a velocidade de carregamento de um site aumenta a taxa de converso, aumentando a experincia do usurio. Por que se preocupar com a otimizao em termos de carregamento? Matt Cutts da Google j confirmou oficialmente que o Google leva em conta o tempo de carregamento para posicionar um site. Se voc tem um site de carregamento lento, isso pode significar rankings mais baixos no Google e menos trfego. Antes de comear a otimizar seu site, voc precisa saber quais as partes que tm de melhorar, quais levam mais tempo para carregar e qual o peso total do mesmo. Para fazer isso eu recomendo que voc use ferramentas como Pingdom ou Firebug (para Firefox) com os plugins PageSpeed ou YSlow. Existem diferentes maneiras de otimizar a velocidade do Wordpress, deixo aqui 15 dicas testadas para voc otimizar a velocidade do seu blog no Wordpress e deixa-lo to rpido como um relmpago. Se voc implementar algumas das dicas descritas abaixo, voc vai notar uma melhora dramtica no desempenho do seu site Wordpress.
Este plug-in, criado pela GoDaddy, faz uma anlise do carregamento de vrias pginas do seu blog, v quais so os tempos de carregamento de cada plug-in, o tempo de carregamento do site sem plug-ins, mostra o nmero de queries feitas base de dados, entre outros. Todos os relatrios so guardados para que depois voc possa comparar com relatrios mais recentes e pode tambm enviar os resultados por email (til se pedir ajuda a algum para resolver a lentido).
1. 2. 3. 4. 5.
Voc deve abrir o gerenciador de banco de PHPMyAdmin Selecione o seu banco de dados. Ao clicar em "Marcar Tudo" na parte inferior da pgina. Escolha a opo "Otimizar tabela" na lista suspensa ao lado. E pronto!
Faa backup do seu banco de dados antes de realizar qualquer teste nele, pois se der algo errado, voc poder voltar o banco normalmente.
Compatvel com CDN (Content Delivery Network), Amazon CloudFront, Amazon S3 ou qualquer outro sistemas. Falarei do CDN mais abaixo. No vou entrar em detalhes sobre a configurao do W3 total cache, mas sua configurao muito simples, o EscolaWp escreveu um manual que ensina a configurar o plug-in. Como instalar e configurar o plugin W3 Total Cache no WordPress.
Voc saiba!
1. Se voc j estiver usando o plug-in PHP Speedy certifique-se de remov-lo antes de instalar qualquer plug-in de cache que eu mencionei acima. O PHP Speedy pode causar conflitos com os plugins. Em minha opinio um plugin de cache supera os benefcios do PHP speedy. Plug-in de Cache uma escolha melhor e o PHP speedy j passou a sua vida til. 2. preciso tempo e esforo para configurar corretamente W3 cache total por causa das muitas opes disponveis. 3. Se voc decidiu usar o plugin Hyper cache, ser preciso usar com ele o plugin DB Cache Reloaded, eles se complementam, e voc obter um bom impulso no desempenho. Fiz alguns testes e gostei bastante, mas particularmente prefiro o W3 Total Cache.
8
Existe tambm um plugin para Wordpress chamado Lazy Load, o trabalho dele carregar imagens somente quando elas se tornam visveis no browser. Com o efeito fade voc faz um retoque bem interessante para o site. Faz algo sofisticado que alguns blogs famosos, como o Mashable, esto usando. O plug-in proporciona uma dupla reduo: 1- No tempo de carregamento da pgina para o usurio final; 2- No consumo de recursos do servidor, principalmente do LOAD da mquina.
Outra maneira de otimizar o carregamento do seu blog transferir todas as imagens do seu domnio principal (ex: seudominio.com) para um subdomnio (ex: cache.seudominio.com) voc estar aumentando o poder de carregamento do seu blog, j que cada domnio, por padro, s carrega dois arquivos simultaneamente. Aps criar o subdomnio, voc precisa configurar o Wordpress para que, a partir deste momento, todo upload seja realizado diretamente para cache.seusite.com. Para isto, basta ir a Configuraes e clicar em Mdia, conforme ilustrado a seguir:
Agora como caminho para upload alterado, necessrio que voc transfira as imagens que esto no domnio principal, mais precisamente na pasta wp-content/uploads, ser necessrio realizar uma migrao completa, via FTP ou via Cpanel, para o subdomnio, j que o Wordpress no vai mais reconhecer este local. Tambm vai ser necessrio atualizar o caminho das imagens em todos os posts antigos atravs do phpMyAdmin. Para isso, basta selecionar seu banco de dados no menu lateral e clicar na aba SQL.
10
Copie e cole o cdigo abaixo e clique em Executar: UPDATE wp_posts SET post_content = REPLACE(post_content,'http://www.seusite.com/wpcontent/uploads/','http://images.seusitecom/') Tambm ser necessrio atualizar os links da biblioteca de imagens rodando mais um comando SQL, mas com o cdigo abaixo: UPDATE wp_posts SET guid = REPLACE(guid,'http://www.seusite.com/wpcontent/uploads/','http://images.seusite.com/') Todas estas dicas vo ajudar seu blog a carregar rapidamente. Importante s dicas que forem ser executadas no Banco de dados, criem um backup antes caso algo sai errado.
11
Se a verso do seu servidor Apache 2.x, voc pode utilizar o mod_deflate tambm:
8. Desabilitar Hotlinking
O hotlinking, tambm conhecido como roubo ancora de banda, quando algum copia a URL da sua imagem, e a utilizando sem seu prprio site, o que faz utilizar banda do seu servidor. Existem vrias formas de evitar isto colocando um pequeno cdigo no .htaccess, que est na raiz do seu servidor.
Envie sua prpria imagem para o Gravatar novo padro para a pasta do tema que voc est usando (/ wp-content/themes/seutema). E a Terceira opo seria usar o FV Cache Gravatar, que acelera o seu site, certificando-se que os Gravatars esto armazenados em seu site e no carregar a partir do servidor do Gravatar.
13
Coloque o JavaScript (jquery, mootools, prototype e outros) no fim do cdigo. Ah, mas me disseram que tem que colocar dentro da tag <head> voc agora est aprendendo algo novo. Coloque o JS antes de fechar a tag </body>. Motivo: o JavaScript no carrega simultaneamente com o css. Ento carregue primeiro o seu design e depois o JS. Coloque o css entre as tags <head> Coloque o JavaScript antes do fechamento do <body> Se for usar bibliotecas JS como Jquery, Mootools e outros. Utilize bibliotecas que esteja hospedado em outro site (exemplo Dropbox). Assim os usurios no precisam carregar o script, j vai estar no cache. O Google fornece essa biblioteca externa: http://code.google.com/intl/ptBR/apis/ajaxlibs/documentation/index.html
14
A dica , adicione apenas a parte em vermelho ao seu arquivo (index.php, Archive.php, etc.) e coloque o comando que se refere ao JavaScript no Rodap, assim o WordPress far apenas uma requisio e carregar todos os botes. Coloque o JavaScript em arquivos externos sempre que possvel, ao invs de colocar o cdigo diretamente no HTML. Com essa tcnica o browser no precisa carregar novamente o cdigo da pgina, pois o mesmo estar no cache. Reduza a quantidade de arquivos externos, combinando os cdigos em um nico arquivo. Isso economiza diversas requisies HTTP, cruciais para o desempenho do site. (Combinar determinados arquivos s vezes pode causar erros, caso o tenha feito, verifique todo o seu blog).
15
Se voc estiver usando o plugin W3 Total Cache em seu site, provavelmente mais seguro no usar o flush (). Eu estava usando ambos por vrias semanas e tudo estava funcionando bem, sem problemas, mas eu decidi remover o flush () funo apenas para ser seguro. No tenho certeza sobre a compatibilidade da funo flush () com outros plugins de cache. Dando uma pesquisada sobre o Flush, encontrei a seguinte dvida no FAQ do wp total cache. Eu vejo caracteres estranhos em vez do site normal, o que pode estar acontecendo? Se um tema usar o php_flush call () ou flush function (), a funo ir interferir no funcionamento do plugin; far o plugin enviar arquivos em cache antes que as operaes essenciais terminem. Sendo assim, o flush no mais necessrio e deve ser removido. Realizei alguns testes e o tempo de carregamento reduziu em cerca de 1,5 segundos. Acreditem, na Internet, 1 segundo e meio muito tempo.
16
Uma soluo para este problema substituir as consultas PHP por cdigo HTML esttico, que, cada vez que uma pgina carregada, o navegador s tem que ler o cdigo HTML. Algumas dessas chamadas de banco de dados so inevitveis, mas algumas podem ser evitadas simplesmente usando um Plug-in de Cache. No entanto, as chamadas de banco de dados ainda sero necessrios para gerar o arquivo esttico aps uma cache est sendo limpo. Tente remover o mximo possvel de consultas queries PHP. Aqui est uma dica de como verificar quantas consultas de banco de dados o seu tema / blog est fazendo. Voc pode inserir esse trecho de cdigo no seu arquivo footer.php (ou em qualquer lugar) para torn-lo exibir o nmero de consultas: Num_queries <php echo $ wpdb de?>;?> <Php _e ('consultas');?>. Abaixo est um exemplo de consulta com o respectivo PHP que podem ser substituda por HTML: <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" /> A consulta acima deve ser substituda por: <link rel="stylesheet" type="text/css" media="all" href=http://seusite.com/wp-content/themes/seutema/style.css" />
17
define('ENABLE_CACHE', true); Configurar tempo de expirao do cache define('CACHE_EXPIRATION_TIME', 1800); // em segundos Desabilitar o cache define('WP_CACHE', false); define('DISABLE_CACHE', true); Esta opo permite que voc especifique o nmero de dias que leva para remover artigos da lixeira. define ('EMPTY_TRASH_DAYS', 30), / / 30 dias O cdigo a seguir otimiza automaticamente o banco de dados MySQL. define ('WP_ALLOW_REPAIR', true); H muitos ajustes, mas s descrevi os mais importantes e, por enquanto isso tudo.
19
20
melhor usar a configurao regular do plug-in, para, em seguida, clique em "Buscar opes Orfs".
O plug-in ir buscar entradas rfs que esto sobrando na tabela. Se voc tiver plug-ins desativados, eles tambm podem aparecer. Em seguida, selecione "Opes Exibir informaes" (Veja informaes sobre as opes selecionadas).
Analise cuidadosamente os dados apresentados para cada entrada rf apresentada pelo plug-in a fim de determinar se importante ou no.
21
Se voc tem certeza absoluta de que deseja excluir entradas, selecione Sim e clique no boto Enviar, mas caso contrrio melhor selecione No e clique no boto que diz que no. Neste plug-in no existe a opo "undo" (desfazer) uma vez que voc executar a limpeza, ela permanente, por isso que essencial fazer o backup do banco de dados antes de comear.
Opes removidas. Uma vez feito ir exibir uma lista como apresentado abaixo:
Antes de otimizar e reparar a tabela wp_options, voc deve rever o blog para verificar se tudo funciona corretamente, incluindo plug-ins. Se um plug-in no est funcionando, voc precisa desativ-lo, exclu-lo e reinstal-lo. Se tudo funciona corretamente, podemos fazer um backup do banco de dados no phpMyAdmin e usar os recursos desta otimizao e reparar bancos de dados.
22
23
Depois que o Google adicionou a velocidade de carregamento da pgina como um fator determinante resultados da pesquisa, webmasters esto em uma misso para melhorar a velocidade de seus sites. Muitos j esto experimentando plug-ins de cache e tcnicas de otimizao de imagem. Se est procurando mais formas de otimizao de velocidade, em seguida, uma coisa que voc tem que considerar o uso de um Content Delivery Network ou CDN. Vou ensinar a configurar um CDN para seu blog em Wordpress utilizando o Speedy Mirror que oferece 5GB de banda gratuitamente.
24
Agora d um nome para o espelho, digite a URL do seu blog colocando o / no final do endereo e clique em Detectar salvar. Agora o seu espelho est pronto para usar. Cada espelho (alias) recebe um subdomnio gratuito no seguinte formato: seumirror.speedymirror.com. Se voc gosta de deixar as coisas mais ajeitadas, voc pode configurar um CNAME para o seu espelho. Conforme imagem abaixo:
Meu espelho brunodesouza.speedymirror.com. Eu criei um CNAME cache.brunodesouza.com e o apontei para o meu espelho.
25
Outra opo gratuita de CDN e o Cloudflare que um servio que permite tornar o seu site mais seguro e ao mesmo tempo pode torna-lo mais rpido (se ainda no o conhece, leia o artigo o que o Cloudflare e quais so os seus benefcios). No vou entrar em detalhes no Cloudflare, pois nosso amigo Celso Azevedo publicou um tutorial para configurar o Cloudflare. Como Usar o Cloudflare. No posso deixar de citar o CoralCDN que uma rede de distribuio de contedo (Content Delivery Network) baseada em P2P que possui 206 servidores espalhados pelo mundo, inclusive no Brasil. Ele foi feito para evitar que o carregamento do seu site seja prejudicado quando uma grande quantidade de visitantes acessa a mesma pgina, fazendo todos carem. Diferente do Cloudflare e do Speedy Mirror a configurao para utilizar o CoralCDN simples, baixe o plug-in FREE CDN que substitui todos os links para scripts, estilos e imagens por endereos atravs da rede do CCDN. Isso significa que o que antes era carregado atravs de: http://brudesouza.com.com/wp-content/uploads/2012/04/imagem.jpg Agora passa a vir de: http://brunodesouza.com.net.nyud.net/wpcontent/uploads/2012/04/imagem.jpg Assim, a carga que iria somente para os servidores da HostGator, passa a ser distribuda pelo CoralCDN, acelerando o carregamento independente de que parte do globo voc estiver. Junte isso ao sistema de cache que utilizo e voc tem um site super leve que no sobrecarrega o servidor. Atualmente no meu blog, estou utilizando o CDN americano CDN777 que tem um preo bastante acessvel e seu funcionamento semelhante ao Speedy Mirror, cria uma URL dentro do sistema e depois adiciona um CNAME no seu host e pronto o contedo esttico do seu blog j estar disponvel em diversas partes do mundo. Quem quiser pode fazer um Trial de 14 dias, eu RECOMENDO.
26
Vocs podem estar se perguntando, existe algum servio de CDN no Brasil? Sim, Existe CDN no Brasil, mas em relao aos CDNs estrangeiros a contrao no vale a pena. Digo isso, pois os preos so totalmente fora de mo, os servios oferecidos no Brasil so praticamente para grandes corporaes, quando digo grandes, me refiro, a Globo.com, R7 entre outras empresas. Alm de no serem nenhum pouco confiveis, abaixo deixo uma lista de alguns CDNs nacionais ou quase isso: Distribui: Parece interessante uma vez que o foco deles justamente CDN no Brasil. Exceda: Akamai no Brasil. Muito bom e caro. Global Crossing: Essa empresa provedora de banda para as ISPs brasileiras. Possui quilmetros de fibra no territrio brasileiro. Samba Tech: O R7 da Record fica l. Admotion: Interessante, porm somente 2 pontos de acesso por aqui (So Paulo e Buenos Aires). UPX CDN: Pelo que pesquisei uma empresa Brasileira que oferece o servio Cloud Cache para acelerar seu site. Entrei em contato para ver os preos e so totalmente fora de mo. R$ 300,00 por 100 GB de transferncia. Pago atualmente $ 4,99 por esta mesma quantidade de transferncia.
27
Sobre o Autor
Bruno de Souza o CEO do Marketing Digital 2.0 e criador do primeiro blog sobre Educao Mvel do Pas, o MLearningPedia. Social Media and Mobile Learning Research e Amauter Roller nas Horas vagas. Colunista nos blogs: Papos na Rede, Midiaboom, Midiassociais.net, Webinsider e ResultsOn. Em 2010 citado como referencia nacional em mdias sociais, no livro A revoluo das Mdias Sociais Frase Favorita: Ideias podem vencer crises por Cladio Nader. Contato: contato@brunodesouza.com Twitter: @brunounix @mktdigitalblog Facebook: facebook.com/blogmarketingdigital
28