Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Otimização Front-end para WordPress

9,911 views

Published on

Palestra ministrada no FrontInBh sobre 'Otimização Front-End para WordPress' com foco total em performance.

Published in: Technology, Business

Otimização Front-end para WordPress

  1. 1. Otimização Front-end para WordPress
  2. 2. Quem vos fala@GugaAlves- Analista de Sistemas- Pós Graduado em Gestão Estratégica de Mkt Digital- Professor de Mkt Digital e WordPress- Criador do Tudo Para WordPress- Vencedor do #DesafioSEO 09/10 da MestreSeo
  3. 3. O problemaCitação do livro ‘High Performance Web Sites’
  4. 4. Duvida?
  5. 5. Tem Solução? Vejamos algumas boas práticas paraotimizar o tempo de carregamento de uma página e aliviar a carga do servidor
  6. 6. Índice• Querys PHP e Acesso ao BD • Versão do WordPress• Compressão Zlib • Ferramentas• Uso de Plugins • Prova dos 9• W3 Total Cache • Bibliografia• CDN• Compressão de .js e .css• Otimização de Imagens• CSS Sprites• Permalinks
  7. 7. Querys PHP e acesso ao BDQuase todo tema WordPress é distribuído de forma que sua configuração seja da forma mais simples possível.Estes temas vem com alguns códigos genéricos (chamadas de funções do WP), que podem ser facilmente substituídos depois de instalá-lo em nosso blog.Isso é feito para temas distribuídos livremente mas infelizmente muito desenvolvedores acabam fazendo seu uso em projetos específicos também, ao invés de otimizar tais itens removendo Querys que fazem chamadas ao BD e retornam sempre o mesmo valor.Remover (ou não fazer uso de) algumas consultas ​php lhe ajudará a diminuir a carga do servidor e também fazer o seu site mais rápido. Vejamos na prática!
  8. 8. Querys PHP e acesso ao BD<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="<?php bloginfo(html_type); ?>; charset=<?php bloginfo(charset); ?>" /><link rel=”stylesheet” type=”text/css” media=”screen” href=”<?php bloginfo(‘stylesheet_url’); ?>“/><link rel=”shorcut icon” type=”image/png” href=”<php bloginfo(‘template_url’); ?>/favicon.jpg” /><link rel=”alternate” type=”application/rss+xml” title=”RSS Feed” href=”<?php bloginfo(‘rss_url’); ?>” /> Precisa mesmo de tantas chamadas para itens e endereços estáticos?
  9. 9. Querys PHP e acesso ao BD<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="pt-BR"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel=”stylesheet” type=”text/css” media=”screen” href=”http://www.seusite.com.br/wp-content/themes/SeuTema/style.css“/><link rel=”shorcut icon” type=”image/png” href=”http://www.seusite.com.br/favicon.jpg” /><link rel=”alternate” type=”application/rss+xml” title=”RSS Feed” href=”http://www.seusite.com.br/feed/rss” /> Só nesse pequeno exemplo, temos 21 requisições a menos ! 21 ? Sim a função bloginfo() faz 4 requisições a cada chamada !
  10. 10. Compressão ZlibO WordPress, por padrão, envia HTML não compactado parao navegador do visitante.Com algumas simples linhas de código adicionado aoseu cabeçalho, você pode comprimir a saída do WordPressem até 75% usando tecnologia de compressão Zlib!
  11. 11. Compressão Zlib- Verifique se seu servidor tem o Zlib ativo através do phpinfo();- Adicione o comando abaixo na 1ª linha do header.php <?php ini_set(zlib.output_compression, On); ini_set(zlib.output_compression_level, 1); ?>
  12. 12. Compressão ZlibHttpZip Compression Check - http://migre.me/5qeZh
  13. 13. Plugins no WordPressUm pouco da minha visão
  14. 14. Porque ter muitos plugins pode deixar meu site lento?A principal razão é que nem todos os desenvolvedores criam seus plugins de maneira correta, portanto muitos deles pedem para carregar seus arquivos independente do plugin estar sendo realmente usado ou não.Quando o WordPress solicita o processamento do wp_header(); e chama tais arquivos e a menos que existam condicionais corretos no código do plugin, informando se deve ser carregado ou não o plugin para determinada página/post, o WordPress vai continuar a processar o plugin, chamando consultas de banco de dados para recuperar parâmetros que você definiu no painel, recuperar arquivos PHP adicionais e carregar arquivos .js e .css quando não são necessários a todos.
  15. 15. Porque ter muitos plugins pode deixar meu site lento?Todo o processo pode aumentar consideravelmente o tempo de carregamento de seu site, o que vai depender da quantidade de plugins ativos.Portanto, ative apenas os plugins que forem realmente usados e evite o uso de plugins para funções simples demais. Para funções mais simples, prefira sempre criar suas funções no functions.php e as chamar apenas quando necessário no seu tema, ok? #FikDik !Leia mais sobre o assunto em http://migre.me/5utlJ
  16. 16. Uso de PluginsResumindo:• Use plugins apenas quando necessário!• Não está usando um plugin temporariamente? Desative-o e evite inserção de arquivos .css e .js que não estão sendo usados.• Não vai mais usar tal plugin? Apague-o da pasta!• Achas que pode vir a precisar de um plugin novamente? Crie um arquivo .txt, salve na pasta wp-content/plugins e anote nele seus nomes. Se precisar novamente dele, só instalar de novo!
  17. 17. Plugins que não dispenso?• W3 Total Cache Otimização de .css e .js, cache, CDN.• WordPress SEO SEO, Sitemap.xml, Breadcrumbs, Open Graph Protocol (Facebook).• Akismet Ninguém gosta de SPAM né?• WP-DB-Backup Backup da base de dados sempre cai bem• Redirection Redirecionamentos 301 de maneira rápida (mas se forem poucos redirecionamentos, faça na mão mesmo, no .htaccess)E alguns outros citados nos próximos slides!
  18. 18. W3 Total Cache
  19. 19. CDNContent Delivery Network (CDN ou Rede de Fornecimento de Conteúdo) ésistema de computadores interligados em rede através da Internet, quecooperam de modo transparente para fornecer conteúdo (particularmentegrandes conteúdos de mídia) a usuários finais. Akamai Amazon S3 MaxCDN CoralCDN W3 Total Cache + MaxCDN - http://migre.me/5sCY0
  20. 20. Compressão de .js e .cssCom o plugin W3 Total Cache você poderá compactar seus arquivos .js e .css.Com isso, ao invés de chamar 5 .js e 4 .css, chame apenas 1 .js e 1 .css, diminuindo o tempo de carregamentoDica:Você pode fazer a compressão pelo plugin e depois copiar os arquivos gerados por ele para usar manualmente, sem o plugin precisar o chamar 
  21. 21. Compressão de .js e .css14 requisições 4 reqs271 kb 49kb4.44s 1.1s
  22. 22. Compressão de .js e .css
  23. 23. Otimização de Imagens
  24. 24. WP Smush.itUsar imagens nos posts é sempre uma boa tática para dar mais vida a matéria e aumentar a conversão, mas imagens pesadas podem comprometer o tempo de carregamento.O plugin WP Smush.it faz uma compressão automática de toda imagem enviada pelo Uploader do WP
  25. 25. SEO Friendly ImagesConfigurando este plugin, as tags ALT e TITLE serão preenchidas de acordo com a configuração feita.
  26. 26. CSS SpritesTécnica que consiste em se colocar as várias imagens de fundo usadas no template do site em um arquivo único e com a declaração CSS background-position mostrar em cada elemento que recebe uma imagem de fundo uma parte da imagem.Aprenda como fazer com o mestre @Maujor:http://maujor.com/tutorial/css-sprites.php
  27. 27. CSS Sprites Exemplo:Menu da Apple.com
  28. 28. CSS Sprites Sprite.me
  29. 29. Estrutura da URLConfigurando Permalinks
  30. 30. Estrutura de PermalinksComo afirma o Codex, podem existir alguns problemas de desempenho com estruturas de permalink começando com %category%, %postname%, %tag% e %author%O Desempenho seria melhor quando a estrutura da URL tivesse o ID do post, ou começar com uma coisa estática, como /posts/postname%/Entretanto...
  31. 31. Estrutura de PermalinksPara ser honesto, eu não me preocuparia com isso em projetos de pequeno e médio porte.Utilizando uma hospedagem decente e um plugin de cache configurado corretamente, tais problemas de desempenho deixarão de existir.
  32. 32. Estrutura de PermalinksO que costumo usar:• /%category%/%postname%/• /%postname%/• /materias/%postname%/
  33. 33. Estrutura de PermalinksBônus:O que está por vir no WordPress 3.3? http://migre.me/5qY3dVia @TudoParaWP(Tens mais novidades por lá)
  34. 34. Mantenha seu WordPress atualizado sempre !Com o lançamento de novas versões, o Wordpress continua a melhorar como um todo.A cada atualização, a equipe WP e toda a comunidade mundial se esforçam para deixar o WordPress mais rápida e segura.Entretanto, seu visitante não precisa saber qual versão está sendo usada, pois assim ele poderá saber quais falhas ainda estão lá. Portanto, remova sempre a versão do WordPress de seu cabeçalho usando a função abaixo (no functions.php, claro) remove_action(‘wp_head’, ‘wp_generator’);
  35. 35. Quanto tempo devo esperar para atualizar o WP?Sempre recomendo esperar algumas semanas e ficar de olho no feedback que os usuários da comunidade WordPress estão dando sobre a atualização. Se você decidir fazer a atualização, opte por fazer um teste primeiro em localhost ou algum ambiente específico para testes, ok? Mais detalhes em http://migre.me/4CdAh
  36. 36. Ferramentas Firebug YslowPingdom Tools Google(tools.pingdom.com) Page Speed
  37. 37. Prova dos 9Boas dicas mas..Funciona mesmo?
  38. 38. Ô loco bicho! Que isso fera!Veja você mesmo o resultado de nossos testes: DEPOIS ANTES De 10.18 para 5.1 segundos de carregamento total do site ! E ainda falta usar CDN e CSS Sprites nesse case, vai melhorar mais!
  39. 39. Bibliografia RecomendadaSobre o autor:Steve Souders trabalha no Google com web performance e iniciativas open source
  40. 40. E ai, curtiu? Contatos: twiter.com/GugaAlves (Pessoal) twitter.com/TudoParaWP (Site) http://br.linkedin.com/in/gugaalves/pt http://www.slideshare.net/gugaalves

×