{"id":569,"date":"2015-03-13T12:47:24","date_gmt":"2015-03-13T15:47:24","guid":{"rendered":"http:\/\/www.valuehost.com.br\/blog\/?p=569"},"modified":"2025-11-24T19:32:29","modified_gmt":"2025-11-24T22:32:29","slug":"26-tecnicas-de-otimizacao-de-sites","status":"publish","type":"post","link":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/","title":{"rendered":"26 t\u00e9cnicas de otimiza\u00e7\u00e3o de Sites"},"content":{"rendered":"<p>Por que otimizar nossos Sites \u00e9 t\u00e3o importante? Simplesmente porque nenhum usu\u00e1rio gosta de perder tempo esperando o carregamento das p\u00e1ginas. \u00c9 extremamente irritante. E isso tem graves consequ\u00eancias, como mostram esses estudos:<\/p>\n<p><!--more--><\/p>\n<ul>\n<li>O <strong>Yahoo!<\/strong> descobriu que, para cada 400ms de melhora na performance, seu tr\u00e1fego aumenta em 9% (<a href=\"http:\/\/www.slideshare.net\/stoyan\/yslow-20-presentation\">fonte<\/a>).<\/li>\n<li>Ao cortar 2,2s da landing page do Firefox, a <strong>Mozilla<\/strong> aumentou o n\u00famero de downloads em 15%, totalizando um ganho de mais de 60 milh\u00f5es de c\u00f3pias por ano (<a href=\"http:\/\/blog.mozilla.com\/metrics\/category\/website-optimization\/\">fonte<\/a>).<\/li>\n<li>A <strong>Amazon<\/strong> concluiu que apenas 100ms de melhora aumentam 1% seu faturamento (fonte).<\/li>\n<li>Em um de seus v\u00e1rios experimentos, o <strong>Google<\/strong> aumentou o n\u00famero de resultados por p\u00e1gina de 10 para 30. Isso aumentou o tempo de carregamento de 0.4s para 0.9s, o que diminuiu em 20% o tr\u00e1fego das buscas (<a href=\"http:\/\/glinden.blogspot.com\/2006\/11\/marissa-mayer-at-web-20.html\">fonte<\/a>).<\/li>\n<li>A <strong>Microsoft<\/strong> mostrou que 2s a mais de lat\u00eancia no Bing diminu\u00edam o faturamento em 4,3% (fonte).<\/li>\n<li>Em um experimento, subimos o tamanho de uma p\u00e1gina de 100kb para 300kb, aumentando o n\u00famero de requests de 12 para 42, o que resultou em um crescimento no tempo de carregamento de 2s para 6s. Os impactos foram queda de 21% no tempo que os usu\u00e1rios ficam no Site, menos 28% pageviews e uma queda de 18% no <em>conversion rate<\/em>.<\/li>\n<li>H\u00e1 diversos outros experimentos publicados, incluindo um estudo que mostra uma rela\u00e7\u00e3o entre sites lentos e queda da press\u00e3o arterial (fonte).<\/li>\n<\/ul>\n<p>Mas falar de otimiza\u00e7\u00f5es de browser em um evento como o QCon pode parecer b\u00e1sico. Tantos arquitetos, discuss\u00f5es de alto n\u00edvel sobre novas plataformas como Node.JS e processamento ass\u00edncrono, diversas palestras sobre cloud computing, todo mundo usando memcache e tantas outras t\u00e9cnicas avan\u00e7adas.<\/p>\n<p>Ent\u00e3o, para contextualizar mais ainda a discuss\u00e3o, <a href=\"https:\/\/gist.github.com\/1210374\">analisei os dados dos Sites de todos os participantes do evento<\/a>. Com base nos e-mails dos inscritos (descartando webmails como GMail, Hotmail etc), separei mais de 100 dom\u00ednios para testes, incluindo grandes portais brasileiros, empresas de tecnologia, Sites do governo e outros. Submeti todos ao WebPageTest.org e compilei os resultados.<\/p>\n<p>O n\u00famero mais importante, o tempo total de carregamento, j\u00e1 d\u00e1 uma ideia da situa\u00e7\u00e3o. Os sites analisados demoram, em m\u00e9dia, <strong>9 segundos para carregar<\/strong>, sendo que alguns demoraram mais de 40s. E a grande verdade \u00e9 que a performance final para o usu\u00e1rio depende muito mais do <em>client-side<\/em> que do <em>server-side<\/em>. De todos os Sites analisados, a esmagadora maioria, 75%, tinha um tempo de processamento de menos de 400ms no servidor.<\/p>\n<h2>T\u00e9cnicas de otimiza\u00e7\u00e3o<\/h2>\n<ul>\n<li><a href=\"#l1\">#1 \u2013 Habilite GZIP<\/a><\/li>\n<li><a href=\"#l2\">#2 \u2013 Minifique JavaScript<\/a><\/li>\n<li><a href=\"#l3\">#3 \u2013 Minifique CSS<\/a><\/li>\n<li><a href=\"#l4\">#4 \u2013 Comprima o HTML<\/a><\/li>\n<li><a href=\"#l5\">#5 \u2013 N\u00e3o redimensione imagens no HTML<\/a><\/li>\n<li><a href=\"#l6\">#6 \u2013 Otimize as imagens<\/a><\/li>\n<li><a href=\"#l7\">#7 \u2013 Pense no formato das imagens<\/a><\/li>\n<li><a href=\"#l8\">#8 \u2013 Diminua cookies e headers<\/a><\/li>\n<li><a href=\"#l9\">#9 \u2013 Junte arquivos JavaScript<\/a><\/li>\n<li><a href=\"#l10\">#10 \u2013 Juntar arquivos CSS<\/a><\/li>\n<li><a href=\"#l11\">#11 \u2013 Use Sprites<\/a><\/li>\n<li><a href=\"#l12\">#12 \u2013 Use Data URIs<\/a><\/li>\n<li><a href=\"#l13\">#13 \u2013 Configure os headers<\/a><\/li>\n<li><a href=\"#l14\">#14 \u2013 Tire firulas do design<\/a><\/li>\n<li><a href=\"#l15\">#15 \u2013 Especifique o tamanho das imagens<\/a><\/li>\n<li><a href=\"#l16\">#16 \u2013 Coloque o JavaScript no fim<\/a><\/li>\n<li><a href=\"#l17\">#17 \u2013 Coloque o CSS no topo<\/a><\/li>\n<li><a href=\"#l18\">#18 e #19 \u2013 Adie o carregamento do que puder e Abuse do carregamento ass\u00edncrono<\/a><\/li>\n<li><a href=\"#l19\">#20 \u2013 Otimize o First-View e o Above the Fold Time<\/a><\/li>\n<li><a href=\"#l20\">#21 \u2013 Design perform\u00e1tico<\/a><\/li>\n<li><a href=\"#l21\">#22 \u2013 Automatize<\/a><\/li>\n<li><a href=\"#l22\">#23 \u2013 Use ferramentas de diagn\u00f3stico<\/a><\/li>\n<li><a href=\"#l23\">#24 \u2013 Pr\u00e9-carregue componentes<\/a><\/li>\n<li><a href=\"#l24\">#25 \u2013 Escreva c\u00f3digo eficiente<\/a><\/li>\n<li><a href=\"#l25\">#26 \u2013 Dispare logo o onload<\/a><\/li>\n<li><a href=\"#l26\">Quebre as regras<\/a><\/li>\n<li><a href=\"#l27\">Refer\u00eancias<\/a><\/li>\n<\/ul>\n<h2>Diminua o tamanho dos requests<\/h2>\n<p>Boa pr\u00e1tica em qualquer aplica\u00e7\u00e3o distribu\u00edda, diminuir o <em>payload<\/em>, ou seja, o volume de dados trafegados, \u00e9 um princ\u00edpio b\u00e1sico. E h\u00e1 diversas formas de se fazer isso.<\/p>\n<p>Na an\u00e1lise das p\u00e1ginas dos participantes do evento, <strong>a m\u00e9dia de tamanho foi de 860kb<\/strong>. Al\u00e9m disso, 35% dos Sites t\u00eam mais de 1MB de tamanho, sendo que o pior caso chegava a ter incr\u00edveis 8MB.<\/p>\n<p><a name=\"l1\"><\/a>#1 \u2013 Habilite GZIP<\/p>\n<p>N\u00e3o leva mais de 30s para ser feito e \u00e9 suportado em todos os navegadores e servidores dos \u00faltimos 15 anos. Com ele, todo conte\u00fado textual (HTML, CSS, JS etc) \u00e9 comprimido antes de ser enviado para o cliente, chegando a cortar mais de 50% do tr\u00e1fego total.<\/p>\n<p>Apesar disso, na an\u00e1lise dos Sites, descobri que 43% de todos os requests textuais n\u00e3o estavam gzipados. Mais: <strong>apenas 14% dos Sites tinha gzip em todos os requests<\/strong>.<\/p>\n<p><a name=\"l2\"><\/a>#2 \u2013 Minifique JavaScript<\/p>\n<p>Um c\u00f3digo JS bem feito \u00e9 bem documentado, todo identado e possui nomes de vari\u00e1veis leg\u00edveis. Mas nada disso conta na execu\u00e7\u00e3o do script, e trafegar esse monte de bytes \u00e9 desperd\u00edcio. Em poucos minutos, \u00e9 poss\u00edvel integrar uma ferramenta de minifica\u00e7\u00e3o de JavaScript, como YUI Compressor, <a href=\"http:\/\/code.google.com\/closure\/compiler\/\">Google Closure Compiler<\/a> ou <a href=\"https:\/\/github.com\/mishoo\/UglifyJS\">UglifyJS<\/a>.<\/p>\n<p>Muitos Sites costumam incluir alguns scripts j\u00e1 minificados como o jQuery (com seu arquivo jquery-min). Apesar disso, dos Sites analisados, <strong>apenas 13% minificavam todos os JavaScripts<\/strong>.<\/p>\n<p><a name=\"l3\"><\/a>#3 \u2013 Minifique CSS<\/p>\n<p>Minificar os arquivos CSS \u00e9 igualmente importante. Para isso, podemos usar o YUI Compressor e at\u00e9 o <a href=\"http:\/\/lesscss.org\/\">LESS compiler<\/a>.<\/p>\n<p><a name=\"l4\"><\/a>#4 \u2013 Comprima o HTML<\/p>\n<p>O c\u00f3digo HTML tamb\u00e9m pode ser comprimido, removendo espa\u00e7os, coment\u00e1rios e at\u00e9 certas aspas e fecha tags desnecess\u00e1rias. O Google, por exemplo, n\u00e3o fecha <code>&lt;\/html&gt;<\/code> ou <code>&lt;\/body&gt;<\/code> em sua home, j\u00e1 que isso n\u00e3o prejudica nenhum navegador e economiza mais alguns bytes.<\/p>\n<p>O excelente HTML Compressor permite diversas otimiza\u00e7\u00f5es e \u00e9 bastante configur\u00e1vel. Comprimir o HTML n\u00e3o costuma ser simples porque, em geral, tratamos com p\u00e1ginas din\u00e2micas.<\/p>\n<p><a name=\"l5\"><\/a>#5 \u2013 N\u00e3o redimensione imagens no HTML<\/p>\n<p>Princ\u00edpio b\u00e1sico das otimiza\u00e7\u00f5es, nunca deixe para diminuir imagens setando o <code>width<\/code> e o <code>height<\/code> no HTML ou CSS. Sempre redimensione o arquivo original e referencie o tamanho direto.<\/p>\n<p><a name=\"l6\"><\/a>#6 \u2013 Otimize as imagens<\/p>\n<p>Dentro de um arquivo PNG ou JPG muitos dados s\u00e3o guardados. Al\u00e9m das informa\u00e7\u00f5es da imagem em si, h\u00e1 metadados como EXIF, e \u00e0s vezes, at\u00e9 uma miniatura da pr\u00f3pria imagem. Nada disso \u00e9 necess\u00e1rio para renderizar a imagem na tela e podem ser removidos. Esse tipo de otimiza\u00e7\u00e3o, chamada de <em>lossless<\/em>, sem perda de qualidade visual, \u00e9 o m\u00ednimo que toda aplica\u00e7\u00e3o deveria fazer. Com o Smush.it, por exemplo, basta enviar as imagens e receb\u00ea-las de volta otimizadas. Outras ferramentas incluem o <a href=\"http:\/\/imageoptim.pornel.net\/\">ImageOptim<\/a> al\u00e9m de diversas op\u00e7\u00f5es em linha de comando para automatiza\u00e7\u00e3o (pngquant, optipng, pngcrush, pngout, advpng).<\/p>\n<p>Otimizar imagens \u00e9 essencial porque costumam ser a parte mais pesada das p\u00e1ginas Web. Na an\u00e1lise dos Sites dos conferencistas, em m\u00e9dia, <strong>47% dos bytes da p\u00e1gina eram de imagens<\/strong>.<\/p>\n<p>Apesar disso, apenas 15% dos Sites otimizam todas as imagens. Para 1\/4 dos Sites, otimizar as imagens economizaria mais de 40% dos bytes totais.<\/p>\n<p>Mas \u00e9 poss\u00edvel tamb\u00e9m aplicar transforma\u00e7\u00f5es <em>lossy<\/em>, isto \u00e9, diminuir a qualidade das imagens em prol de uma melhora na performance. Muitos designers nem cogitam essa possibilidade, mas fato \u00e9 que muito no mundo \u00e9 <em>lossy<\/em>. Um MP3, por exemplo, diminui a qualidade do \u00e1udio original para favorecer a mobilidade. Diminuir a qualidade de uma foto JPEG com pouco impacto visual percept\u00edvel pode trazer imensos ganhos. O novo servi\u00e7o JPEGMini, por exemplo, tem um avan\u00e7ado algoritmo que diminui a qualidade de JPEGs baseado em um modelo matem\u00e1tico que simula as caracter\u00edsticas da percep\u00e7\u00e3o humana. O resultado s\u00e3o imagens com menos da metade do tamanho e visualmente id\u00eanticas.<\/p>\n<p><a name=\"l7\"><\/a>#7 \u2013 Pense no formato das imagens<\/p>\n<p>Os formatos de imagens us\u00e1veis na Web s\u00e3o PNG, JPEG e GIF. Mas qual usar e como escolher o formato correto? H\u00e1 diversos fatores. PNG e GIF mant\u00e9m fidelidade da imagem; j\u00e1 o JPEG \u00e9 um formato <em>lossy<\/em> cuja compress\u00e3o sempre causa perda de qualidade (ali\u00e1s, \u00e9 por isso que jamais se deve editar JPEGs diretamente; cada vez que se salva o arquivo, perde-se qualidade). Com isso, um PNG costuma ser mais interessante para gr\u00e1ficos quando fotos ficam com tamanhos menores em JPEGs.<\/p>\n<p>Outro ponto \u00e9 que PNGs suportam transpar\u00eancia com canal alpha, equanto que GIFs t\u00eam apenas transpar\u00eancia total e JPEG n\u00e3o suporta transpar\u00eancia. De modo geral, PNGs hoje s\u00e3o superiores a GIFs e o \u00fanico motivo para usar o \u00faltimo \u00e9 quando h\u00e1 anima\u00e7\u00f5es.<\/p>\n<p>Mas mesmo ao usar PNG, \u00e9 poss\u00edvel escolher entre dois formatos diferentes: PNG8 e PNG24. O PNG cl\u00e1ssico \u00e9 o de 24bits que suporta milh\u00f5es de cores e \u00e9 exportado por padr\u00e3o por todas as ferramentas gr\u00e1ficas. Mas o PNG8 diminui a palheta para 8bits, 256 cores no m\u00e1ximo, assim como os antigos GIFs. A vantagem do PNG8 \u00e9 que tem um tamanho bem menor e \u00e9 muito \u00fatil para imagens com poucas cores (logos, gr\u00e1ficos simples etc).<\/p>\n<p><a name=\"l8\"><\/a>#8 \u2013 Diminua cookies e headers<\/p>\n<p>Um \u00faltimo passo para diminuir o tr\u00e1fego \u00e9 minimizar os headers envolvidos na requisi\u00e7\u00e3o e na resposta. Destes, os cookies costumam ser o pior vil\u00e3o pois s\u00e3o enviados a cada request entre cliente e servidor. H\u00e1 at\u00e9 a recomenda\u00e7\u00e3o de <a href=\"http:\/\/code.google.com\/speed\/page-speed\/docs\/request.html#ServeFromCookielessDomain\">servir conte\u00fados est\u00e1ticos de dom\u00ednios sem cookies<\/a>.<\/p>\n<h2>Diminua a quantidade de requests<\/h2>\n<p>Outro princ\u00edpio base de qualquer sistema distribu\u00eddo, minimizar o n\u00famero de invoca\u00e7\u00f5es remotas \u00e9 essencial para boa performance. Na Web, isso significa diminuir os requests feitos na p\u00e1gina para recursos externos \u2013 arquivos JS, CSS, imagens, Flash, v\u00eddeos etc.<\/p>\n<p>No estudo dos Sites dos participantes da QCon, a m\u00e9dia de requests \u00e9 de 65 por p\u00e1gina, sendo que 17% possuem mais de 100 requests.<\/p>\n<p><a name=\"l9\"><\/a>#9 \u2013 Junte arquivos JavaScript<\/p>\n<p>A an\u00e1lise mostrou que, em m\u00e9dia, os Sites chamam 10 arquivos JavaScript externos. O pior caso era um Site que chamava incr\u00edveis 54 arquivos JS. A solu\u00e7\u00e3o \u00e9 simples: juntar v\u00e1rios arquivos e diminuir o total. O ideal \u00e9 isso ser feito dinamicamente pela aplica\u00e7\u00e3o ou em build time, para que n\u00e3o seja necess\u00e1rio fazer manualmente. N\u00e3o existe um n\u00famero ideal de arquivos JS, mas eu recomendo entre 3 e 5 arquivos, no m\u00e1ximo.<\/p>\n<p><a name=\"l10\"><\/a>#10 \u2013 Juntar arquivos CSS<\/p>\n<p>O mesmo princ\u00edpio vale para arquivos CSS. Nesse caso, recomendo 1 ou 2 arquivos externos. Na an\u00e1lise dos Sites, a m\u00e9dia foi de 5 arquivos por p\u00e1gina, sendo que o pior caso chegou a 24 arquivos CSS externos.<\/p>\n<p><a name=\"l11\"><\/a>#11 \u2013 Use Sprites<\/p>\n<p>Aplicar a mesma ideia de juntar arquivos a imagens n\u00e3o \u00e9 t\u00e3o simples. As sprites s\u00e3o imagens que unem diversas outras em uma s\u00f3, como essa usada no Google:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.google.com\/images\/nav_logo83.png\" alt=\"Nav logo83\" \/><\/p>\n<p>O problema \u00e9 criar essas imagens, algo dif\u00edcil de se automatizar, e de gerenciar o CSS necess\u00e1rio para posicionar cada peda\u00e7o no lugar certo. H\u00e1 ideias para automatiza\u00e7\u00e3o como o Sprite.me, o SpriteMapper, o <a href=\"http:\/\/www.spritecow.com\/\">SpriteCow<\/a> e o SmartSprites.<\/p>\n<p>Ao criar sprites, muitos pontos precisam ser pensados: \u00e9 dif\u00edcil lidar com imagens que precisem de repeti\u00e7\u00f5es. \u00c9 preciso pensar em espa\u00e7amentos entre as imagens para facilitar o posicionamento no CSS, ao mesmo tempo que n\u00e3o se deixe a sprite com \u00e1rea muito grande, o que causaria um grande uso de mem\u00f3ria no navegador. \u00c9 preciso pensar na similaridade das imagens para que, ao junt\u00e1-las, n\u00e3o tenhamos uma palheta de cores maior e pouca compress\u00e3o. Temos que decidir o formato da sprite (PNG? JPEG?) e como unificar as mesmas caracter\u00edsticas de qualidade e compress\u00e3o de diversas imagens.<\/p>\n<p>\u00c9 complicado fazer Sprites mas, essencial para uma otimiza\u00e7\u00e3o s\u00e9ria. Na an\u00e1lise dos Sites dos participantes da QCon, <strong>mais da metade referencia 36 imagens ou mais<\/strong>. No pior caso, 144 imagens foram inclu\u00eddas em uma \u00fanica p\u00e1gina.<\/p>\n<p><a name=\"l12\"><\/a>#12 \u2013 Use Data URIs<\/p>\n<p>Esse \u00e9 um recurso perigoso mas extremamente \u00fatil. Assim como podemos embutir conte\u00fados de CSS e JS no meio do HTML quando conveniente, com as <em><a href=\"http:\/\/en.wikipedia.org\/wiki\/Data_URI_scheme\">data URIs<\/a><\/em>, podemos embutir imagens e outros elementos bin\u00e1rios. N\u00e3o \u00e9 um recurso para ser abusado, j\u00e1 que aumenta o tamanho do HTML e n\u00e3o permite que a imagem seja cacheada e referenciada em lugares diferentes. \u00c9 poss\u00edvel usar data URIs em arquivos CSS cache\u00e1veis, pr\u00e1tica mais recomendada.<\/p>\n<p>A ideia \u00e9 transformar os dados bin\u00e1rios de uma imagem em base64 e colocar diretamente no src de uma imagem. Um problema \u00e9 que s\u00f3 h\u00e1 suporte no IE a partir da vers\u00e3o 8, apesar de todos os outros browsers suportarem h\u00e1 bastante tempo. Isso n\u00e3o impede que se sirva vers\u00f5es diferentes do Site para browsers antigos, por exemplo. O Google Images \u00e9 um exemplo emblem\u00e1tico de uso de <a href=\"http:\/\/en.wikipedia.org\/wiki\/Data_URI_scheme\">data URIs<\/a>.<\/p>\n<p><a name=\"l13\"><\/a>#13 \u2013 Configure os headers<\/p>\n<p>A estrat\u00e9gia aqui \u00e9 permitir que recursos est\u00e1ticos sejam <a href=\"http:\/\/code.google.com\/speed\/page-speed\/docs\/caching.html\">cacheados pelo navegador<\/a>, evitando novos requests quando o usu\u00e1rio visitar a p\u00e1gina novamente. Em poucos segundos \u00e9 poss\u00edvel configurar o servidor para servir requests com valores apropriados de <code>Expires<\/code>, <code>Last-Modified<\/code>, <code>Cache-Control<\/code> e <code>ETag<\/code>.<\/p>\n<p>No estudo dos Sites, descobri que ao acessar a mesma p\u00e1gina duas vezes, o segundo acesso dispara, em m\u00e9dia, 46 novos requests. E, ainda, 87% dos Sites disparam mais que 10 requests nesse segundo acesso, um forte ind\u00edcio de que pouco se usa o recurso de cache do navegador. Um valor razo\u00e1vel seria manter esse n\u00famero em menos de 5 requests e, se poss\u00edvel, apenas 1 ou 2.<\/p>\n<p><a name=\"l14\"><\/a>#14 \u2013 Tire firulas do design<\/p>\n<p>Pol\u00eamico, esse t\u00f3pico prop\u00f5e que o layout seja feito com performance em mente. Talvez muitos designers discordem, mas os n\u00fameros mostram que velocidade \u00e9 mais importante para o usu\u00e1rio do que designs detalhistas e carregados.<\/p>\n<p>Essa pr\u00e1tica inclui diminuir a depend\u00eancia do layout por imagens externas, evitar o uso de fontes externas, n\u00e3o usar Flash para design, entre outros.<\/p>\n<h2>Performance \u00e9 medida pela percep\u00e7\u00e3o do usu\u00e1rio<\/h2>\n<p>A percep\u00e7\u00e3o humana \u00e9 muito menos racional do que imaginamos. E, na Web, isso reflete diretamente em como os usu\u00e1rios percebem a velocidade do Site (e credibilidade, atratividade etc). H\u00e1 estudos que mostram que a percep\u00e7\u00e3o de tempo de carregamento dos usu\u00e1rios \u00e9, em m\u00e9dia, 15% pior que a real. E, quando perguntados tempos depois sobre a performance de um Site, a lembran\u00e7a costuma ser 35% pior que a velocidade real (fonte).<\/p>\n<p>Na Web, o n\u00famero de segundos para a p\u00e1gina carregar e a nota do YSlow s\u00e3o m\u00e9tricas importantes, mas n\u00e3o s\u00e3o tudo. Performance Web tem tudo a ver com com Usabilidade e UX, e \u00e9 o usu\u00e1rio final quem fala o qu\u00e3o r\u00e1pido est\u00e1 um Site ou n\u00e3o.<\/p>\n<p>Existem diversas t\u00e9cnicas de otimiza\u00e7\u00e3o que n\u00e3o afetam o tempo de carregamento da p\u00e1gina e talvez n\u00e3o melhorem sua nota no YSlow. S\u00e3o t\u00e9cnicas para tornar a percep\u00e7\u00e3o do usu\u00e1rio mais favor\u00e1vel ao seu Site, dando a sensa\u00e7\u00e3o de velocidade mesmo que o rel\u00f3gio diga o contr\u00e1rio.<\/p>\n<p><a name=\"l15\"><\/a>#15 \u2013 Especifique o tamanho das imagens<\/p>\n<p>F\u00e1cil de implementar, essa pr\u00e1tica tem um grande impacto visual para o usu\u00e1rio. Quando n\u00e3o especificamos o tamanho da imagem, o navegador n\u00e3o reserva um espa\u00e7o na p\u00e1gina para ela. O efeito \u00e9 que, quando a imagem chega, ela \u00e9 posicionada em seu lugar empurrando o restante do conte\u00fado. Isso d\u00e1 a sensa\u00e7\u00e3o de que os elementos da p\u00e1gina est\u00e3o se movendo e que ela ainda n\u00e3o est\u00e1 carregada. \u00c9 uma p\u00e9ssima pr\u00e1tica de usabilidade e d\u00e1 a sensa\u00e7\u00e3o de mais lerdeza.<\/p>\n<p>Simplesmente<a href=\"http:\/\/code.google.com\/speed\/page-speed\/docs\/rendering.html#SpecifyImageDimensions\"> especificar o tamanho correto da imagem no width e height do HTML ou CSS<\/a> faz com que o browser j\u00e1 reserve o espa\u00e7o para a imagem mesmo antes de seu download acabar. Quando ela chega, o navegador n\u00e3o precisa abrir espa\u00e7o e empurrar os outros elementos, dando a sensa\u00e7\u00e3o de que a p\u00e1gina est\u00e1 sendo carregada mais rapidamente. Al\u00e9m disso, ao evitar o reposicionamento de elementos, evita-se <a href=\"http:\/\/www.phpied.com\/rendering-repaint-reflowrelayout-restyle\/\">reflows e repaints<\/a> desnecess\u00e1rios.<\/p>\n<p><a name=\"l16\"><\/a>#16 \u2013 Coloque o JavaScript no fim<\/p>\n<p>C\u00f3digo JavaScript, interno ou externo, bloqueia a renderiza\u00e7\u00e3o de tudo que vem abaixo dele. Em alguns browsers, bloqueia inclusive o download de componentes seguintes. Para evitar esse bloqueio, coloque o JavaScript o mais pra baixo que puder; se poss\u00edvel, logo antes de fechar o body.<\/p>\n<p>O efeito mais comum de JavaScript mal posicionado \u00e9 a tela ficar em branco durante muito tempo, adiando o in\u00edcio da renderiza\u00e7\u00e3o. O senso comum manda colocar os JavaScripts no head, o que causa o bloqueio da renderiza\u00e7\u00e3o da tela toda. Na an\u00e1lise dos Sites dos conferencistas, <strong>a m\u00e9dia de espera para o in\u00edcio da renderiza\u00e7\u00e3o foi de 4,3s<\/strong>. O pior caso deixava o browser totalmente branco durante 25s.<\/p>\n<p><a name=\"l17\"><\/a>#17 \u2013 Coloque o CSS no topo<\/p>\n<p>O CSS tamb\u00e9m bloqueia a renderiza\u00e7\u00e3o da tela mas, neste caso, isso \u00e9 melhor na maioria das vezes. Colocar o CSS para baixo causaria o efeito conhecido como <em><a href=\"http:\/\/en.wikipedia.org\/wiki\/Flash_of_unstyled_content\">FOUC \u2013 Flash of Unstyled Content<\/a><\/em>. A p\u00e1gina \u00e9 renderizada sem estilo e, quando o CSS acaba de baixar, ela \u00e9 redesenhada com o estilo.<\/p>\n<p>Embora isso fa\u00e7a com que a p\u00e1gina comece a ser mostrada antes para o usu\u00e1rio, na maioria dos Sites, mostrar uma p\u00e1gina sem estilos n\u00e3o tem valor algum para o usu\u00e1rio. O layout fica sem estrutura, sem organiza\u00e7\u00e3o, e o efeito \u00e9 aparentar que a p\u00e1gina est\u00e1 demorando mais para carregar. Por isso, <a href=\"http:\/\/code.google.com\/speed\/page-speed\/docs\/rendering.html#PutCSSInHead\">coloque o CSS no topo do documento<\/a>, de prefer\u00eancia no head.<\/p>\n<p><a name=\"l18\"><\/a>#18 e #19 \u2013 Adie o carregamento do que puder e Abuse do carregamento ass\u00edncrono<\/p>\n<p>Uma das t\u00e9cnicas avan\u00e7adas mais discutidas ultimamente \u2013 e das mais eficazes \u2013 \u00e9 o uso de carregamento ass\u00edncrono de componentes da p\u00e1gina. Isso evita bloqueios na renderiza\u00e7\u00e3o e faz a p\u00e1gina ficar mais responsiva.<\/p>\n<p><a name=\"l19\"><\/a>#20 \u2013 Otimize o First-View e o Above the Fold Time<\/p>\n<p>Como diz o ditado, a primeira impress\u00e3o \u00e9 a que fica. Isso significa otimizar ao m\u00e1ximo a primeira visita do usu\u00e1rio, aquele onde o cache do navegador vai estar vazio, aquela quando ele ainda n\u00e3o conhece seu Site, e aquele onde ele traz todas suas expectativas.<\/p>\n<p>\u00c9 preciso entender como a intera\u00e7\u00e3o do usu\u00e1rio acontece, e priorizar os componentes e a ordem da renderiza\u00e7\u00e3o da p\u00e1gina para esse primeiro contato. H\u00e1 quem fale em uma nova m\u00e9trica, o <em>Above the Fold Time<\/em> \u2013 AFT \u2013 que mede o tempo de tempo de carregamento do in\u00edcio da p\u00e1gina, \u201cacima da dobra\u201d, aquela parte que o usu\u00e1rio v\u00ea sem fazer scroll. O <a href=\"http:\/\/www.infinite-scroll.com\/\">scroll infinito<\/a> do Twitter \u00e9 um exemplo disso; os dados mais para baixo s\u00f3 s\u00e3o carregados quando o usu\u00e1rio faz scroll at\u00e9 l\u00e1. Ou ainda a p\u00e1gina de produtos da Amazon que deixa para carregar alguns componentes do fim da p\u00e1gina s\u00f3 quando o usu\u00e1rio chega l\u00e1.<\/p>\n<p>Mesmo sem usar t\u00e9cnicas avan\u00e7adas como o scroll infinito, priorizar o AFT \u00e9 pensar na ordem dos elementos no HTML para que as coisas que ser\u00e3o exibidas antes carreguem primeiro. \u00c9 adiar aquele widget do Facebook que fica no fim da p\u00e1gina para ser carregado s\u00f3 depois do onload, por exemplo. \u00c9 prover um menu de op\u00e7\u00f5es que n\u00e3o dependa de JavaScript para funcionar, j\u00e1 que este ser\u00e1 executado por \u00faltimo. No fim, \u00e9 focar na primeira experi\u00eancia do usu\u00e1rio e adiar tudo aquilo que n\u00e3o \u00e9 necess\u00e1rio para isso.<\/p>\n<p><a name=\"l20\"><\/a>#21 \u2013 Design perform\u00e1tico<\/p>\n<p>Uma \u00e1rea que mereceria um post por si s\u00f3 \u00e9 como o design da p\u00e1gina pode afetar a percep\u00e7\u00e3o de velocidade do usu\u00e1rio. O Google Reader antigamente usava um fundo azul claro em sua barra lateral e resolveu experimentar trocar para branco. Quando perguntados, os usu\u00e1rios, em sua maioria, afirmaram que o \u201cnovo Site\u201d era mais r\u00e1pido que o anterior (fonte).<\/p>\n<p>A <em>Psicologia da Performance<\/em> envolve muitos t\u00f3picos de design, UX e usabilidade. Uma layout mais leve, uma arquitetura de informa\u00e7\u00e3o mais simples, um <em>call-to-action<\/em> mais direto influenciam diretamente em como os usu\u00e1rios percebem a performance.<\/p>\n<h2>B\u00f4nus: mais t\u00f3picos<\/h2>\n<p><a name=\"l21\"><\/a>#22 \u2013 Automatize<\/p>\n<p>O segredo para um Site com performance consistente e dur\u00e1vel \u00e9 automatizar o processo. Fa\u00e7a um script que minifique JS e CSS, automatize a otimiza\u00e7\u00e3o das imagens, etc. Qualquer processo repetitivo deve ser automatizado, caso contr\u00e1rio ser\u00e1 logo deixado de lado pela equipe.<\/p>\n<p><a name=\"l22\"><\/a>#23 \u2013 Use ferramentas de diagn\u00f3stico<\/p>\n<p>Monitore suas p\u00e1ginas constantemente com ferramentas de diagn\u00f3stico. H\u00e1 diversas dispon\u00edveis:<\/p>\n<ul>\n<li>Pain\u00e9is de monitoramento dos pr\u00f3prios navegadores, como <a href=\"http:\/\/getfirebug.com\">Firebug<\/a>, Chrome Developer Tools, Opera Dragonfly, e IE Dev Toolbar j\u00e1 nos d\u00e3o muitas informa\u00e7\u00f5es.<\/li>\n<li>Fora isso, as cl\u00e1ssicas extens\u00f5es <a href=\"http:\/\/developer.yahoo.com\/yslow\/\">YSlow<\/a> e <a href=\"http:\/\/code.google.com\/speed\/page-speed\/docs\/extension.html\">PageSpeed<\/a> (dispon\u00edveis para Chrome e Firefox) apresentam relat\u00f3rios completos com dicas e problemas de performance.<\/li>\n<li>O PageSpeed em particular possui uma vers\u00e3o online muito f\u00e1cil de usar.<\/li>\n<li>Outra ferramenta online fant\u00e1tica \u00e9 a WebPageTest.org, usada para gerar as estat\u00edsticas usadas nessa apresenta\u00e7\u00e3o. Ela permite testar do IE6 ao IE10, al\u00e9m de Chrome e Firefox. Gera screenshots, gr\u00e1ficos, grava v\u00eddeos comparativos e prov\u00ea uma an\u00e1lise com dicas de otimiza\u00e7\u00e3o. Al\u00e9m disso, o framework \u00e9 aberto e pode ser rodado internamente ou instalado em uma imagem da Amazon EC2.<\/li>\n<li>O <a href=\"http:\/\/analytics.google.com\">Google Analytics<\/a> pode ser configurado para guardar estat\u00edsticas da velocidade do site. O interessante \u00e9 usar essa capacidade para cruzar dados com outras m\u00e9tricas para descobrir os impactos da performance sobre os usu\u00e1rios da sua aplica\u00e7\u00e3o.<\/li>\n<li>O <a href=\"https:\/\/www.google.com\/webmasters\/tools\/\">Google Webmasters Tools<\/a> mostra informa\u00e7\u00f5es sobre a performance do site em compara\u00e7\u00e3o com os outros sites indexados pelo Google.<\/li>\n<\/ul>\n<p><a name=\"l23\"><\/a>#24 \u2013 Pr\u00e9-carregue componentes<\/p>\n<p>Em alguns casos, ao visitar uma p\u00e1gina, voc\u00ea quase que certamente sabe qual ser\u00e1 a pr\u00f3xima p\u00e1gina visitada pelo usu\u00e1rio. Pense na home do Google que certamente ser\u00e1 seguida por uma visita \u00e0 p\u00e1gina de resultados da busca. Ou ainda em um fluxo de fechamento das compras de uma loja virtual em v\u00e1rios passos.<\/p>\n<p>Nessas situa\u00e7\u00f5es, pode ser interessante que a primeira p\u00e1gina pr\u00e9-carregue elementos que ser\u00e3o utilizados na p\u00e1gina seguinte. CSS, JavaScript e imagens podem ser pr\u00e9-carregados via c\u00f3digo, antecipando o download de componentes que tem grande chance de serem usados depois. Obviamente, essa pr\u00e1tica s\u00f3 deve ser usada se voc\u00ea configurou os headers de cache apropriadamente, sen\u00e3o os componentes ser\u00e3o baixados duas vezes.<\/p>\n<p>Essa pr\u00e1tica tem um imenso ganho de velocidade ao visitar a segunda p\u00e1gina. Deve-se, por\u00e9m, tomar cuidado para que n\u00e3o se prejudique a performance da primeira. O ideal \u00e9 fazer esses pr\u00e9-carregamentos somente quando a p\u00e1gina inicial terminar de carregar todos os seus componentes, possivelmente depois do onload da mesma.<\/p>\n<p><a name=\"l24\"><\/a>#25 \u2013 Escreva c\u00f3digo eficiente<\/p>\n<p>Em alguns raros casos o performance pode ser bastante afetada por m\u00e1s pr\u00e1ticas de codifica\u00e7\u00e3o de HTML, CSS ou JavaScript. Note, por\u00e9m, que a maioria das t\u00e9cnicas mais eficazes costumam ser pouco influenciadas por micro otimiza\u00e7\u00f5es de c\u00f3digo; o problema costuma ser mais estrutural.<\/p>\n<p>Por\u00e9m, quando a aplica\u00e7\u00e3o \u00e9 carregada, cheia de recursos ricos, o c\u00f3digo pode ser otimizado. H\u00e1 diversos <a href=\"http:\/\/code.google.com\/speed\/page-speed\/docs\/rendering.html#UseEfficientCSSSelectors\">seletores CSS que deixam a renderiza\u00e7\u00e3o bem mais lenta<\/a>. <a href=\"https:\/\/developer.yahoo.com\/performance\/rules.html#min_dom\">O alto n\u00famero de elementos no DOM tamb\u00e9m diminui a performance<\/a>. <a href=\"https:\/\/developer.yahoo.com\/performance\/rules.html#iframes\">Usar iframes em excesso ent\u00e3o \u00e9 um quase um crime<\/a>. E h\u00e1 tamb\u00e9m as pr\u00e1ticas de <a href=\"http:\/\/www.phpied.com\/extreme-javascript-optimization\/\">otimiza\u00e7\u00e3o de c\u00f3digo e l\u00f3gica JavaScript<\/a>, como quebrar longas tarefas em peda\u00e7os menores com WebWorkers ou setTimeout, evitando bloqueio da tela.<\/p>\n<p><a name=\"l25\"><\/a>#26 \u2013 Dispare logo o onload<\/p>\n<p>O evento de onload \u00e9 esperado por muitos scripts para que sua execu\u00e7\u00e3o prossiga. Al\u00e9m disso, costuma ser a m\u00e9trica usada para medir performance em ferramentas como Analytics e Webmasters Tools. Desde 2010, o Google usa a <a href=\"http:\/\/googlewebmastercentral.blogspot.com\/2010\/04\/using-site-speed-in-web-search-ranking.html\">velocidade do Site<\/a> como uma das vari\u00e1veis do rankeamento das buscas, e isso tem a ver com o onload. Depois do disparo do onload, o indicador de carregamento do navegador para de girar, dando a impress\u00e3o de fim do carregamento.<\/p>\n<p>H\u00e1 v\u00e1rios motivos para se otimizar o tempo de onload, muitos explicados por <a href=\"http:\/\/stevesouders.com\/\">Steve Souders<\/a> em seus livros. Abusar do carregamento ass\u00edncrono ajuda a implementar essa pr\u00e1tica.<\/p>\n<p><a name=\"l26\"><\/a><\/p>\n<h2>Quebre as regras<\/h2>\n<p>N\u00e3o se prenda a n\u00fameros exatos que sua ferramenta de diagn\u00f3stico d\u00e1. Quebre algumas regras quando elas se mostrarem melhores para o usu\u00e1rio. A t\u00e9cnica de pre-carregar componentes da p\u00e1gina seguinte vai piorar sua nota no YSlow, pois o n\u00famero de requests aumenta, o tamanho total aumenta; mas \u00e9 uma t\u00e9cnica que sabemos que melhora a performance para o usu\u00e1rio.<\/p>\n<p>V\u00e1rias das outras regras podem ser quebradas em casos espec\u00edficos. H\u00e1 quem diga que home pages de portais deveriam embutir CSS e JS diretamente no HTML para economizar requests. H\u00e1 quem pregue que o JavaScript n\u00e3o deve estar no final da p\u00e1gina, mas logo depois do fold, j\u00e1 que n\u00e3o h\u00e1 muito problema em bloquear a renderiza\u00e7\u00e3o da parte n\u00e3o vis\u00edvel da p\u00e1gina. H\u00e1 situa\u00e7\u00f5es onde voc\u00ea quer redimensionar imagens no HTML, como ao fazer um <a href=\"http:\/\/www.alistapart.com\/articles\/responsive-web-design\/\">design responsivo<\/a>.<\/p>\n<p><strong>N\u00e3o se prenda a n\u00fameros, foque na experi\u00eancia do usu\u00e1rio.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Por que otimizar nossos Sites \u00e9 t\u00e3o importante? Simplesmente porque nenhum usu\u00e1rio gosta de perder tempo esperando o carregamento das p\u00e1ginas. \u00c9 extremamente irritante. E isso tem graves consequ\u00eancias, como mostram esses estudos:<\/p>\n","protected":false},"author":1,"featured_media":572,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","footnotes":""},"categories":[72],"tags":[237,249,213,248,250,1293,247],"class_list":{"0":"post-569","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-desenvolvimento","8":"tag-css","9":"tag-gzip","10":"tag-javascript","11":"tag-js","12":"tag-minify","13":"tag-otimizacao-2","14":"tag-tecnica"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>26 t\u00e9cnicas de otimiza\u00e7\u00e3o de Sites - Blog da ValueHost<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"26 t\u00e9cnicas de otimiza\u00e7\u00e3o de Sites - Blog da ValueHost\" \/>\n<meta property=\"og:description\" content=\"Por que otimizar nossos Sites \u00e9 t\u00e3o importante? Simplesmente porque nenhum usu\u00e1rio gosta de perder tempo esperando o carregamento das p\u00e1ginas. \u00c9 extremamente irritante. E isso tem graves consequ\u00eancias, como mostram esses estudos:\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog da ValueHost\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/valuehostbrasil\" \/>\n<meta property=\"article:published_time\" content=\"2015-03-13T15:47:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-24T22:32:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.valuehost.com.br\/blog\/wp-content\/uploads\/2015\/03\/performance.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"831\" \/>\n\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Administrador\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@valuehostbrasil\" \/>\n<meta name=\"twitter:site\" content=\"@valuehostbrasil\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Administrador\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/\"},\"author\":{\"name\":\"Administrador\",\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/6c5c2bfdf39886e117506864a00c479d\"},\"headline\":\"26 t\u00e9cnicas de otimiza\u00e7\u00e3o de Sites\",\"datePublished\":\"2015-03-13T15:47:24+00:00\",\"dateModified\":\"2025-11-24T22:32:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/\"},\"wordCount\":4160,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/performance.jpg\",\"keywords\":[\"css\",\"gzip\",\"javascript\",\"js\",\"minify\",\"otimiza\u00e7\u00e3o\",\"tecnica\"],\"articleSection\":[\"Desenvolvimento\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/\",\"url\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/\",\"name\":\"26 t\u00e9cnicas de otimiza\u00e7\u00e3o de Sites - Blog da ValueHost\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/performance.jpg\",\"datePublished\":\"2015-03-13T15:47:24+00:00\",\"dateModified\":\"2025-11-24T22:32:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/performance.jpg\",\"contentUrl\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/performance.jpg\",\"width\":831,\"height\":350},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/26-tecnicas-de-otimizacao-de-sites\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"26 t\u00e9cnicas de otimiza\u00e7\u00e3o de Sites\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/\",\"name\":\"Blog da ValueHost\",\"description\":\"Artigos sobre Hospedagem, Revenda, Linux, VPS, Cloud, Dedicado, Dom\u00ednio, Certificado SSL, Backup, WebDesign, SEO,  Shell, etc\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/#organization\",\"name\":\"ValueHost Hospedagem\",\"url\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/05\\\/logo_valuehost_1024x1024.png\",\"contentUrl\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/05\\\/logo_valuehost_1024x1024.png\",\"width\":1024,\"height\":1024,\"caption\":\"ValueHost Hospedagem\"},\"image\":{\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/facebook.com\\\/valuehostbrasil\",\"https:\\\/\\\/x.com\\\/valuehostbrasil\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/6c5c2bfdf39886e117506864a00c479d\",\"name\":\"Administrador\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/47637a7862f0e39b85e0eaec84ccb39582621378c11b72dc4318f9ca26ad4ff0?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/47637a7862f0e39b85e0eaec84ccb39582621378c11b72dc4318f9ca26ad4ff0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/47637a7862f0e39b85e0eaec84ccb39582621378c11b72dc4318f9ca26ad4ff0?s=96&d=mm&r=g\",\"caption\":\"Administrador\"},\"url\":\"https:\\\/\\\/www.valuehost.com.br\\\/blog\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"26 t\u00e9cnicas de otimiza\u00e7\u00e3o de Sites - Blog da ValueHost","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/","og_locale":"pt_BR","og_type":"article","og_title":"26 t\u00e9cnicas de otimiza\u00e7\u00e3o de Sites - Blog da ValueHost","og_description":"Por que otimizar nossos Sites \u00e9 t\u00e3o importante? Simplesmente porque nenhum usu\u00e1rio gosta de perder tempo esperando o carregamento das p\u00e1ginas. \u00c9 extremamente irritante. E isso tem graves consequ\u00eancias, como mostram esses estudos:","og_url":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/","og_site_name":"Blog da ValueHost","article_publisher":"https:\/\/facebook.com\/valuehostbrasil","article_published_time":"2015-03-13T15:47:24+00:00","article_modified_time":"2025-11-24T22:32:29+00:00","og_image":[{"width":831,"height":350,"url":"https:\/\/www.valuehost.com.br\/blog\/wp-content\/uploads\/2015\/03\/performance.jpg","type":"image\/jpeg"}],"author":"Administrador","twitter_card":"summary_large_image","twitter_creator":"@valuehostbrasil","twitter_site":"@valuehostbrasil","twitter_misc":{"Escrito por":"Administrador","Est. tempo de leitura":"22 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/#article","isPartOf":{"@id":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/"},"author":{"name":"Administrador","@id":"https:\/\/www.valuehost.com.br\/blog\/#\/schema\/person\/6c5c2bfdf39886e117506864a00c479d"},"headline":"26 t\u00e9cnicas de otimiza\u00e7\u00e3o de Sites","datePublished":"2015-03-13T15:47:24+00:00","dateModified":"2025-11-24T22:32:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/"},"wordCount":4160,"commentCount":2,"publisher":{"@id":"https:\/\/www.valuehost.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/#primaryimage"},"thumbnailUrl":"https:\/\/www.valuehost.com.br\/blog\/wp-content\/uploads\/2015\/03\/performance.jpg","keywords":["css","gzip","javascript","js","minify","otimiza\u00e7\u00e3o","tecnica"],"articleSection":["Desenvolvimento"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/","url":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/","name":"26 t\u00e9cnicas de otimiza\u00e7\u00e3o de Sites - Blog da ValueHost","isPartOf":{"@id":"https:\/\/www.valuehost.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/#primaryimage"},"image":{"@id":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/#primaryimage"},"thumbnailUrl":"https:\/\/www.valuehost.com.br\/blog\/wp-content\/uploads\/2015\/03\/performance.jpg","datePublished":"2015-03-13T15:47:24+00:00","dateModified":"2025-11-24T22:32:29+00:00","breadcrumb":{"@id":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/#primaryimage","url":"https:\/\/www.valuehost.com.br\/blog\/wp-content\/uploads\/2015\/03\/performance.jpg","contentUrl":"https:\/\/www.valuehost.com.br\/blog\/wp-content\/uploads\/2015\/03\/performance.jpg","width":831,"height":350},{"@type":"BreadcrumbList","@id":"https:\/\/www.valuehost.com.br\/blog\/26-tecnicas-de-otimizacao-de-sites\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.valuehost.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"26 t\u00e9cnicas de otimiza\u00e7\u00e3o de Sites"}]},{"@type":"WebSite","@id":"https:\/\/www.valuehost.com.br\/blog\/#website","url":"https:\/\/www.valuehost.com.br\/blog\/","name":"Blog da ValueHost","description":"Artigos sobre Hospedagem, Revenda, Linux, VPS, Cloud, Dedicado, Dom\u00ednio, Certificado SSL, Backup, WebDesign, SEO, Shell, etc","publisher":{"@id":"https:\/\/www.valuehost.com.br\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.valuehost.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.valuehost.com.br\/blog\/#organization","name":"ValueHost Hospedagem","url":"https:\/\/www.valuehost.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.valuehost.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.valuehost.com.br\/blog\/wp-content\/uploads\/2015\/05\/logo_valuehost_1024x1024.png","contentUrl":"https:\/\/www.valuehost.com.br\/blog\/wp-content\/uploads\/2015\/05\/logo_valuehost_1024x1024.png","width":1024,"height":1024,"caption":"ValueHost Hospedagem"},"image":{"@id":"https:\/\/www.valuehost.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/valuehostbrasil","https:\/\/x.com\/valuehostbrasil"]},{"@type":"Person","@id":"https:\/\/www.valuehost.com.br\/blog\/#\/schema\/person\/6c5c2bfdf39886e117506864a00c479d","name":"Administrador","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/47637a7862f0e39b85e0eaec84ccb39582621378c11b72dc4318f9ca26ad4ff0?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/47637a7862f0e39b85e0eaec84ccb39582621378c11b72dc4318f9ca26ad4ff0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/47637a7862f0e39b85e0eaec84ccb39582621378c11b72dc4318f9ca26ad4ff0?s=96&d=mm&r=g","caption":"Administrador"},"url":"https:\/\/www.valuehost.com.br\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.valuehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.valuehost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.valuehost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.valuehost.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.valuehost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=569"}],"version-history":[{"count":0,"href":"https:\/\/www.valuehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/569\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.valuehost.com.br\/blog\/wp-json\/wp\/v2\/media\/572"}],"wp:attachment":[{"href":"https:\/\/www.valuehost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.valuehost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.valuehost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}