Autoptimize

Descrição

Autoptimize makes optimizing your site really easy. It can aggregate, minify and cache scripts and styles, injects CSS in the page head by default and can move and defer scripts to the footer. It also minifies the HTML code itself, making your page really lightweight. There are advanced options and an extensive API available to enable you to tailor Autoptimize to each and every site’s specific needs. And it can even improve your site’s performance when on HTTP/2!

If you consider performance important, you really should use one of the many caching plugins to do page caching. Some good candidates to complement Autoptimize that way are e.g. WP Super Cache, HyperCache, Comet Cache or KeyCDN’s Cache Enabler.

Premium Support
We provide great Autoptimize Pro Support and Web Performance Optimization services, check out our offering on (http://autoptimize.com/)!

(Imagem Speed-surfing de LL Twistiti sob licença creative commons)

Instalação

Apenas instale a partir da tela “Plugins > Novo ” e tudo correrá bem. Instalação manual é simples também:

  1. Upload the zip file and unzip it in the /wp-content/plugins/ directory
  2. Ative o plugin por meio do menu “Plugins” no WordPress
  3. Vá para Configurações > Autoptimize e ative as opções que desejar. Geralmente isto significa “Otimizar HTML/ CSS/ JavaScript”.

FAQ

Installation Instructions

Apenas instale a partir da tela “Plugins > Novo ” e tudo correrá bem. Instalação manual é simples também:

  1. Upload the zip file and unzip it in the /wp-content/plugins/ directory
  2. Ative o plugin por meio do menu “Plugins” no WordPress
  3. Vá para Configurações > Autoptimize e ative as opções que desejar. Geralmente isto significa “Otimizar HTML/ CSS/ JavaScript”.
O que este plugin faz para ajudar a acelerar meu site?

Concatena todos os scripts e folhas de estilo e os minifica e comprime, adiciona cabeçalhos de expiração, faz cache deles, e move os estilos para o <head>, e os scripts (opcionalmente) para o rodapé. Também minifica o próprio código HTML, tornando sua página realmente leve.

But I’m on HTTP/2, so I don’t need Autoptimize?

HTTP/2 is a great step forward for sure, reducing the impact of multiple requests from the same server significantly by using the same connection to perform several concurrent requests. That being said, concatenation of CSS/ JS can still make a lot of sense, as described in this css-tricks.com article and this blogpost from one of the Ebay engineers. The conclusion; configure, test, reconfigure, retest, tweak and look what works best in your context. Maybe it’s just HTTP/2, maybe it’s HTTP/2 + aggregation and minification, maybe it’s HTTP/2 + minification (which AO can do as well).

Isto vai funcionar no meu blog?

Embora Autoptimize venha sem nenhuma garantia, em geral vai funcionar sem falhas se você configurá-lo corretamente. Veja as informações de “Resolução de Problemas” abaixo sobre como configurar em caso de problemas.

Por quê jquery.js não é otimizado

Começando com AO 2.1, o jquery.js do WordPress core não é otimizada pela simples razão de que um monte de plugins populares adicionam JS em linha que também não são agregados (devido a possíveis problema de tamanho de cache com códigos únicos no JS em linha) que depende do jquery estar disponível, então excluir jquery.js garante que a maioria dos sites vão funcionar por padrão. Se você também quer otimizar o jquery.js, pode removê-lo da lista de exclusão de otimização de JS (você talvez tenha que habilitar “também agregar o JS em linha” ou ligar o “forçar JS no cabeçalho).

Why is Autoptimized JS render blocking?

If not “forced in head”, Autoptimized JS is not render blocking as it has the “defer” flag added. It is however possible another plugin removes the “defer”-flag. Speed Booster Pack was reported doing this, but the behavior has not been confirmed yet.

Why is the autoptimized CSS still called out as render blocking?

With the default Autoptimize configuration the CSS is linked in the head, which is a safe default but has Google PageSpeed Insights complaining. You can look into “inline all CSS” (easy) or “inline and defer CSS” (better) which are explained in this FAQ as well.

Qual é a função de “CSS em linha e adiado”?

Em geral, CSS deveria ir no <head> do documento. Recentemente, o Google começou a promover o adiamento de CSS não essencial, ao mesmo tempo que coloca em linha os estilos necessários para mostrar a área “acima da borda” da página. Isto é especialmente importante para renderizar as páginas o mais rápido possível em dispositivos móveis. Desde o Autoptimize 1.9.0 isto é fácil; selecion “CSS em linha e adiado”, cole o bloco de “CSS acima da borda” no campo de texto e e está tudo pronto!

Mas como posso saber o que é o “CSS acima da borda”?

Não há solução fácil já que “acima da borda” depende de onde a borda (inferior) é, o que depende do tamanho da tela. Entretanto, existem algumas ferramentas que tentam identificar o que é “acima da dobra”. Esta lista de ferramentas (em inglês) é um bom ponta de partida. http://jonassebastianohlsson.com/criticalpathcssgenerator/ (inglês) é uma solução básica boa e http://criticalcss.com/ (inglês) é uma ferramenta premium do mesmo desenvolvendor. Como alternativa este bookmarklet (inglês e apenas para Chrome) pode ajudar também.

Deveria colocar todo o CSS em linha?

The short answer: probably not.

Antigamente, otimizar CSS era fácil; você colocava CSS na <head>, agregando tudo em um arquivo CSS por tipo de mídia e estava pronto. Mas desde que o Google incluiu dispositivos móveis no PageSpeed Insights e começou a reclamar de CSS bloqueando renderização, as coisas ficaram complicadas (veja “Qual é a função de ‘CSS em linha e adiado'” nesta FAQ). Uma das soluções é colocar todo o CSS em linha, que é suportado desde o Autoptimize 1.8.0.

Colocar todo o CSS em linha tem uma vantagem clara (melhor pontuação no PageSpeed) e uma grande desvantagem; o HTML base de suas páginas ficam bem maiores e a quantidade de CSS é grande, o PageSpeed Insights vai reclamar de “roundtrip times”. E também, ao analisar testes que incluem múltiplas requisições (digamos, 5 páginas), a performance será pior, já que o CSS é enviado várias vezes quando, normalmente, arquivos separados de CSS não precisariam ser reenviados já que estão em cache.

So the choice should be based on your answer to some site-specific questions; how much CSS do you have? How many pages per visit do your visitors request? If you have a lot of CSS or a high number of pages/ visit, it’s probably not a good idea to inline all CSS.

Você pode encontrar mais informação sobre este tópico neste post (em inglês).

Meu cache está ficando enorme, o Autoptimize não esvazia o cache?

Autoptimize does not have its proper cache purging mechanism, as this could remove optimized CSS/JS which is still referred to in other caches, which would break your site. Moreover a fast growing cache is an indication of other problems you should avoid.

Instead you can keep the cache size at an acceptable level by either:

  • desativando as opções “agregar JS em linha” e/ou “agregar CSS em linha”
  • excluindo variáveis JS (ou seletores CSS em alguns casos) que mudam página à página (ou a cada carregamento. Você pode ler como fazer isto neste post (em inglês).

Despite above objections, there are 3rd party solutions to automatically purge the AO cache, e.g. using this code or this plugin, but for reasons above these are to be used only if you really know what you’re doing.

Upon updating Autoptimize can’t be reactivated

I have not been able to reproduce this, but had 2 users reporting that they had to temporarily disable W3 Total Cache to be able to re-activate the updated Autoptimize. No idea why this is happening, but this might help if you encounter that problem.

“Clear cache” doesn’t seem to work?

When clicking the “Delete Cache” link in the Autoptimize dropdown in the admin toolbar, you might to get a “Your cache might not have been purged successfully”. In that case go to Autoptimizes setting page and click the “Save changes & clear cache”-button.

Moreover don’t worry if your cache never is down to 0 files/ 0KB, as Autoptimize (as from version 2.2) will automatically preload the cache immediately after it has been cleared to speed further minification significantly up.

Can I still use Cloudflare’s Rocket Loader?

Cloudflare Rocket Loader is a pretty advanced but invasive way to make JavaScript non-render-blocking, which Cloudflare still considers Beta. Sometimes Autoptimize & Rocket Loader work together, sometimes they don’t. The best approach is to disable Rocket Loader, configure Autoptimize and re-enable Rocket Loader (if you think it can help) after that and test if everything still works.

At the moment (June 2017) it seems RocketLoader might break AO’s “inline & defer CSS”, which is based on Filamentgroup’s loadCSS, resulting in the deferred CSS not loading.

I tried Autoptimize but my Google Pagespeed Scored barely improved

Autoptimize is not a simple “fix my Pagespeed-problems” plugin; it “only” aggregates & minifies (local) JS & CSS and allows for some nice extra’s as removing Google Fonts and deferring the loading of the CSS. As such Autoptimize will allow you to improve your performance (load time measured in seconds) and will probably also help you tackle some specific Pagespeed warnings. If you want to improve further, you will probably also have to look into e.g. page caching, image optimization and your webserver configuration, which will improve real performance (again, load time as measured by e.g. https://webpagetest.org) and your “performance best practise” pagespeed ratings.

Então eu deveriar agregar CSS/JS em linha?

Before Autoptimize 2.0.0, inline code was always optimized with all CSS pushed in the head-section and all JS at the end with a defer-flag. This often caused 2 problems; the priority of inline CSS got lost and inline JS could contain page- or request-specific code which broke Autoptimize’s caching mechanism leading to too many cached files and the minification running over and over. This is why as from AO 2.0 by default inline code is not optimized (except for those upgrading from previous versions). Additionally, to avoid inline JS breaking because jquery is not available, js/jquery/jquery.js is excluded by default.

O que posso fazer com a API?

A whole lot; there are filters you can use to conditionally disable Autoptimize per request, to change the CSS- and JS-excludes, to change the limit for CSS background-images to be inlined in the CSS, to define what JS-files are moved behind the aggregated one, to change the defer-attribute on the aggregated JS script-tag, … There are examples for some filters in autoptimize_helper.php_example and in this FAQ.

Como posso usar o código em autoptimize_helper.php_example?

Embora você possa adicionar o código para o arquivo functions.php do seu tema, ele será sobrescrito na próxima atualização de seu tema. Portanto, é melhor ou criar um plugin próprio ou simplesmente usar o plugins Code Snippets para gerenciar qualquer código customizado.

Como funciona uma CDN?

Desde a versão 1.7.0, a CDN é ativada ao digitar o diretório raiz da CDN do blog (e.g. http://cdn.example.net/wordpress/). Se esta URL está presente, será usada para todos os arquivos gerados pelo Autoptimize (i.e. CSS e JS agregado), incluindo imagens de fundo no CSS (quando não estiver usando data-uri’s).

Se você deseja que as imagens que fez upload estejam na CDN também, você pode mudar o upload_url_path na sua configuração do WordPress (/wp-admin/options.php) para coincidir com o diretório de upload da CDN (e.g. http://cdn.example.net/wordpress/wp-content/uploads/). Leve em consideração que isto só funciona para imagens que forem enviadas a partir deste momento, não para as que já foram feitas upload. Obrigado a BeautyPirate pela dica (em inglês)!

Por quê minhas fontes não são colocadas na CDN também?

Autoptimize suporta isto, mas não é habilitado por padrão por quê fontes não locais podem requerer alguma configuração extra (em inglês). Mas se você tem suas políticas de requisição de origem cruzada em ordem (CORS policies), você pode dizer ao Autoptimize para colocar suas fontes na CDN usando um “hook” da API, configurando autoptimize_filter_css_fonts_cdn para true desta forma;

add_filter('autoptimize_filter_css_fonts_cdn',__return_true);
I’m using Cloudflare, what should I enter as CDN root directory

Nothing, when on Cloudflare your autoptimized CSS/ JS is on the Cloudflare’s CDN automatically.

Como posso forçar os arquivos agregado serem CSS ou JS estáticos ao invés de PHP?

Se o seu servidor estiver configurado adequadamente para lidar com compressão (gzip ou deflate) e expiração de cache (expiração e controle de cache com “cacheabilidade” suficiente), você não deve precisar que o Autoptimize cuide disto por você. Neste caso você deve marcar a opção “Salvar scripts/CSS agregados como arquivos estáticos?”, o que vai forçar o Autoptimize a salvar os arquivos agregados como arquivos .css e .js (o que significa que PHP não é necessário para servir estes arquivos). Esta configuração é a padrão desde o Autoptimize 1.8.

Como funciona o “Excluir scripts do Autoptimize”?

Otimização tanto de CSS e de JS podem deixar de agregar e minimizar códigos ao se adicionar “identificador” para a lista de exclusão, separados por vírgulas. O texto identificador exato pode ser determinado da seguinte forma:

  • se você quer excluir um arquivo específico, e.g. wp-content/plugins/funkyplugin/css/style.css, você pode simplesmente excluir “funkyplugin/css/style.css”
  • se você deseja excluir todos os arquivos de um plugin específicos, e.g. wp-content/plugins/funkyplugin/js/*, você pode, por exemplo, excluir “funkyplugin/js/” ou “plugins/funkyplugin”
  • se você deseja excluir código em linha, você vai ter que achar uma sequência de texto de única e específica no bloco de código e adicionar à lista de exclusão. Por exemplo: para excluir´funky_data=’Won\’t you take me to, Funky Town’`, o identificador é “funky_data”.
Configurando & Resolvendo Problemas com Autoptimize

Depois de instalar e ativar o plugin, você terá acesso à página de administração onde você pode habilitar a otimização de HTML, CSS e JavaScript. De acordo com seu gosto, você pode simplesmente ativar todos, ou se você for mais cauteloso, um de cada vez.

Se o seu blog não funciona normalmente após ligar o Autoptimize, aqui tem algumas indicações para identificar & resolver certos problemas usando “configurações avançadas”:

  • Se está tudo funcionando mas você nota que seu blog está mais lento, certifique-se que você tenha um plugin de cache instalado (WP Super Cache ou similar) e verifique a informação sobre tamanho de cache (a solução para o problema também impacta a performance de páginas sem cache) que estão nesta FAQ.
  • No caso de seu blog parecer estranho, i.e. o layout fica bagunçado, então existe um problema com a otimização do CSS. Neste caso, você pode ligar a opção “Buscar estilos somente na seção <head>?” e ver se resolve o problema. Você tambem pode forçar o CSS não ser agregado, colocando ele entre tags “noptimize” no seu tema ou widget, ou adicionando o nome do arquivo (para folhas de estilo externas) ou sequência de texto (para estilos em linha) à lista de exclusão.
  • Caso alguma funcionalidade do seu site pare de funcionar (um carrousel, um menu, a busca, …) provavelmente você está com problema de otimização de JavaScript. Desabilite a opção “Agregar JS em linha” e ative “Forçar Javascript na <head>?” e tente novamente. Excluir ´jquery.js´ da otimização (veja abaixo) e opcionalmente ativar “Adicionar encapsulamento try/catch” (em inglês) também pode ajudar. Alternativamente — para os com experiência técnica — você pode excluir scripts específicos do tratamento (mover e/ou agregar) do Autoptimize adicionando um trecho de texto que vai corresponder com o Javascript dando problema, ou excluí-lo do seu arquivo de template ao encapsular o código entre tags “noptimize”. Identificar o Javascript problemático e escolher o texto correto para a exclusão é algo de tentativa e erro, mas na maioria dos casos os problemas com otimização de JavaScript são resolvidos desta forma. Quando depurando problemas de JavaScript, o console de erros do seu navegador é a ferramenta mais importante para descobrir o que está acontecendo.
  • Se seu tema ou plugin requer JQuery, você pode tentar forçar tudo no <head> e/ou excluir jquery.js (e plugins JQuery, se necessário).
  • Se você não consegue fazer funcionar a otimização de CSS ou de JS, você pode continuar usando as outras duas técnicas de otimização.
  • Se você tentou as dicas para resolver problemas acima e ainda não consegue fazer o CSS ou JS funcionar, você pode pedir suporte no fórum de suporte WordPress do Autoptimize. Veja abaixo a descrição da informação que você deveria prover no seu “pedido de ajuda”.
Socorro, apareceu uma página em branca ou “internal server error” depois de habilitar o Autoptimize!!

Antes de tudo, certifique-se que você não está usando outro plugin de minificação de HTML, CSS ou JS (BWP minify, WP minify, …) simultaneamente ao Autoptimize ou desabilite esta funcionalidade no seu plugin de cache (W3 Total Cache, WP Fastest Cache, …).

Em alguns casos raros o componente de vinificação de CSS atualmente usado pelo Autoptimize trava devido à falta de recursos (veja uma explicação técnica detalhada aqui). Você pode ou desabilitar a otimização de CSS, tentar excluir CSS específicos de serem agregados ou ativar os minificadores legados que não têm este problema. Esta última opção pode ser feita ao adicionar isto ao wp-config.php:

define("AUTOPTIMIZE_LEGACY_MINIFIERS","true");

Os “minificadores legados” vão continuar no Autoptimize “para sempre” e mudanças no wp-config.php não são afetadas pelas atualizações de temas, plugins ou dos arquivos básicos, então tudo deve correr bem.

Mas eu ainda tenho arquivos CSS ou JS “autoptimizados” em branco!

Se você está usando Apache, o arquivo htaccess escrito pelo Autoptimize pode, em alguns casos, entrar em conflito com as configurações AllowOverrides da configuração de seu Apache (como no caso da configuração padrão de alguns Ubuntu), o que resulta em “internal server errors” nos arquivos CSS e JS do Autoptimize. Isto pode ser resolvido configurando AllowOverrides para All (em inglês).

Não aparecem erros, mas minhas páginas não são otimizadas?

Autoptimize does a number of checks before actually optimizing. When one of the following is true, your pages won’t be optimized:

  • when in the customizer
  • if there is no opening <html tag
  • if there is <xsl:stylesheet in the response (indicating the output is not HTML but XML)
  • if there is <html amp in the response (as AMP-pages are optimized already)
  • if the output is an RSS-feed (is_feed() function)
  • if the output is a WordPress administration page (is_admin() function)
  • if the page is requested with ?ao_noptimize=1 appended to the URL
  • if code hooks into Autoptimize to disable optimization (see topic on Visual Composer)
  • if other plugins use the output buffer in an incompatible manner (disable other plugins selectively to identify the culprit)
Visual Composer, Beaver Builder e soluções similares para construir páginas estão quebradas!!

Disable the option to have Autoptimize active for logged on users and go crazy dragging and dropping 😉

Help, my shop checkout/ payment don’t work!!

Disable the option to optimize cart/ checkout pages (works for WooCommerce, Easy Digital Downloads and WP eCommerce).

Revolution Slider está quebrado!

Make sure js/jquery/jquery.js is in the comma-separated list of JS optimization exclusions (this is excluded in the default configuration).

Estou recebendo erros “jQuery não está definido”

In that case you have un-aggregated JavaScript that requires jQuery to be loaded, so you’ll have to add js/jquery/jquery.js to the comma-separated list of JS optimization exclusions.

My Autoptimized CSS/ JS is broken after upgrading from 2.1 to 2.2!

One of the bigger changes in Autoptimize 2.2 it that it minifies first and aggregates second, which has important performance-benefits. Although this has been tested rather thoroughly, it is possible that this approach does not always work. You can turn this behavior off by hooking into Autoptimize’s API, like this;

add_filter('autoptimize_filter_speedupper','__return_false');
Eu uso NextGen Galleries e váriso JS não agregados/minificados?

NextGen Galleries does some nifty stuff to add JavaScript. In order for Autoptimize to be able to aggregate that, you can either disable Nextgen Gallery’s resourced manage with this code snippet add_filter( 'run_ngg_resource_manager', '__return_false' ); or you can tell Autoptimize to initialize earlier, by adding this to your wp-config.php: define("AUTOPTIMIZE_INIT_EARLIER","true");

O que é noptimize?

Starting with version 1.6.6 Autoptimize excludes everything inside noptimize tags, e.g.:
<!–noptimize–><script>alert(‘this will not get autoptimized’);</script><!–/noptimize–>

Você pode fazer isto no conteúdo de sua página ou post, nos widgets e nos arquivos de seu tema (considere criar um tema filho par evitar que seu trabalho seja substituído quando houver atualização do tema).

Posso mudar o diretório & nome de arquivo dos arquivos do autoptimize em cache?

Sim, se você deseja servir arquivos de, por exemplo, /wp-content/resources/aggregated_12345.css ao invés do padrão /wp-content/cache/autoptimize/autoptimize_12345.css, então adicione isto ao seu wp-config.php

define('AUTOPTIMIZE_CACHE_CHILD_DIR','/resources/');
define('AUTOPTIMIZE_CACHEFILE_PREFIX','aggregated_');
O JS e o CSS gerados podem ser pré-gzippados?

Sim, mas isto é desligado por padrão. Você pode habilitar passando ‘true’ para ‘autoptimize_filter_cache_create_static_gzip’. Obviamente, você vai precisar configurar seu servidor para usar estes arquivos ao invés dos não-gzippados para evitar excesso de carga na compressão durante execução.

Where can I get help?

You can get help on the wordpress.org support forum. If you are 100% sure this your problem cannot be solved using Autoptimize configuration and that you in fact discovered a bug in the code, you can create an issue on GitHub. If you’re looking for premium support, check out our Autoptimize Pro Support and Web Performance Optimization services.

Desisti, como eu deveria remover Autoptimize?
  • Desabilita o plugin (isto vai remover as opções e o cache)
  • Remova o plugin
  • Limpe qualquer cache que talvez possa ter páginas que referenciam CSS/JS “Autoptimizadas” (e.g. de um plugin como o WP Super Cache)
Como posso ajudar/contribuir?

Apenas faça um fork do Autoptimize no Github e programe!

Avaliações

Just awesome

Easy to use and does a perfect job!
Its always one of the first plugins I install on every website.
Keep up the good work.

99 problems and autoptimize is one

I’m not sure how much it optimizes and speeds up my sites, but I build and host websites and every site Ive put autoptimize on eventually runs into problems. Problems that are fixed when I disable this plugin. Feel free to try it, it might work better for someone else, but if you hit bugs your first step should be disabling this.

DO NOT TOUCH

Destroyed my blog!!! Physical disk memory through the roof, 503 error as was using all resources, could not stop it in cpanel, no matter what.

Leia todas as 534 avaliações

Contribuidores e desenvolvedores

“Autoptimize” é um software com código aberto. As seguintes pessoas contribuíram para este plugin.

Contribuidores

“Autoptimize” foi traduzido para 18 localidades. Obrigado aos tradutores por suas contribuições.

Traduzir “Autoptimize” para o seu idioma.

Interessado no desenvolvimento?

Navegue pelo código, dê uma olhada no repositório SVN ou assine o registro de desenvolvimento via RSS.

Registro de alterações

2.2.2

  • roll-back to previous battle-tested version of the CSS minifier (a.o. fixing a bug where colors in filenames were replaced by hex-values)
  • tweaks to Autoptimize toolbar menu (visual + timeout of “delete cache” AJAX call)
  • readme update

2.2.1

  • fix for images being referenced in CSS not all being translated to correct path, leading to 404’s as reported by Jeff Inho
  • fix for “[] operator not supported for strings” error in PHP7.1 as reported by falk-wussow.de
  • fix for security hash busting AO’s cache in some cases (esp. in 2.1.1)

2.2.0

  • new: Autoptimize minifies first (caching the individual snippets) and aggregrates the minified snippets, resulting in huge performance improvements for uncached JS/ CSS.
  • new: option to enable/ disable AO for logged in users (on by default)
  • new: option to enable/ disable AO on WooCommerce, Easy Digital Downloads or WP eCommerce cart/ checkout page (on by default)
  • improvement: switched to rel=preload + Filamentgroup’s loadCSS for CSS deferring
  • improvement: switched to YUI CSS minifier PHP-port 2.8.4-p10 (so not to the 3.x branch yet)
  • improvements to the logic of which JS/ CSS can be optimized (getPath function) increasing reliability of the aggregation process
  • security: made placeholder replacement less naive to protect against XSS and LFI vulnerability as reported by Matthew Barry and fixed with great help from Matthew and Tomas Trkulja. Thanks guys!!
  • API: Lots of extra filters, making AO (even) more flexible.
  • Lots of bugfixes and smaller improvements (see GitHub commit log)
  • tested and confirmed working in WordPress 4.8

2.1.2

  • fix for security hash busting AO’s cache in some cases (esp. in 2.1.1)
  • identical to 2.1.0 except for the security fix backported from 2.2.0

2.1.1

  • identical to 2.1.0 except for the security fix backported from 2.2.0

2.1.0

  • novidade: o Autoptimize agora aparece na barra de ferramentas do admin com uma visualização fácil para o tamanho do ache e a possibilidade de limpar o cache (passe false para o filtro autoptimize_filter_toolbar_show para desabilitar), um grande obrigado ao Pablo Custo pelo trabalho duro nesta funcionalidade bacana!
  • novo: Uma aba extra, “Mais Otimização”-é mostrada (e pode ser escondida com o filtro ´autoptimize_filter_show_partner_tabs´) com informação de serviços e ferramentas de otimização relacionadas.
  • novidade: se o cache fica muito grande, um email será enviado ao administrador do site (passe false para o filtro autoptimize_filter_cachecheck_sendmail para desabilitar ou passe um email alternativo para o filtro autoptimize_filter_cachecheck_mailto para mudar o endereço do email)
  • novo: usuários avançados podem habilitar o Autoptimize para já colocar os arquivos autoptimizados com gzip, passando true para o filtro autoptimize_filter_cache_create_static_gzip, joínha ao (Draikin)[https://github.com/Draikin] por isto!
  • melhoria: GUI do admin atualizada (novamente, obrigado Pablo!) com alguma responsividade adicionado ao mix (deixando de mostrar a coluna da direita em telas menores)
  • melhoria: a página de configuração agora aceita URLs com protocolo relativo para a URL base da CDN
  • Melhoria: novos (e melhores) padrões para a otimização JS (não forcar em “head” + excluir jquery.js) e CSS (incluir CSS em linha)
  • Diversas correções de falhar & pequenas melhorias (veja o log de commit no GitHub)
  • Versão mínima atualizada de 2.7 (!) para 4.0
  • Testado e confirmado que funciona com WordPress 4.6 beta 4

2.0.2

  • correção: desabilita mover JS não-agregado como padrão (pode ser rehabilitado ao passar false para autoptimize_filter_js_unmovable)
  • correção: hook autoptimize_action_cachepurged em init a fim de evitar a mensagem de erro horrível para usuários do ZenCache (Comet Cache)
  • correção que permite ao Autoptimize trabalhar com o PHP 5.2, embora você realmente deva atualizar (em inglês)

2.0.1

  • Melhoria: Autoptimize agora tenta expurgar o cache da WP Engine quando o cache do AO é limpo
  • Melhoria: o Autoptimize não irá otimizar páginas AMP (que já são bem otimizadas) para evitar problemas com e.g. “inline & defer” e com AO adicionando atributos para tags link que não são autorizadas no subconjunto de HTML do AMP
  • Melhoria: o mecanismo de expurgo do cache foi refatorado (código duplicado foi removido, agora usa o próprio hook de ação autoptimize_action_cachepurged do AO)
  • Melhoria: Rehabilita funcionalidade para mover JS não-agregado se ” Também agregar JS em linha” estiver ativo (pode ser desabilitado com o filtro autoptimize_filter_js_unmovable)
  • Melhoria: tags de script com atributo data-noptimize também serão excluídas da otimização
  • Correção: suporte melhor para diretórios wp-content renomeados.
  • Correção: múltiplas correções para o CSS/JS injetado ao final (mudanças nestes arquivos não eram sempre percebidas, fontes ou imagens de fundo não estavam sendo enviadas para CDN, …)
  • Correções & melhorias variadas, leia o log do commit no GitHub se você for curioso assim.
  • Testado & confirmado que funciona com WordPress 4.5 (beta 3)

2.0.0

  • Na média, minificação 30% mais rápida (mais info neste post do blog)!
  • Novidade: Opção para (de)ativar agregação do JS e CSS em linha.
  • Novidade: Opção para remover Fontes Google.
  • Nov: o tamanho do cache será verificado diariamente e um aviso será mostrando no wp-admin se o cache ir acima de 512 MB (pode ser mudado por filtro).
  • Novo: CSS pequeno autoptimizado (menos de 256 caracteres, pode ser mudado por filtro) será colocado em linha ao invés de linkado.
  • Novo na API: filtros para declarar uma lista segura de JS e CSS, onde apenas os arquivos na lista segura são otimizados e todas as outras são deixadas intocadas.
  • Novo na API: filtros para declarar uma lista segura de JS e CSS, onde apenas os arquivos na lista segura são otimizados e todas as outras são deixadas intocadas.
  • Novo na API: filtro para mover as fontes para a CDN também.
  • muitas correções pequenas e grandes, não vou te incomodar uma lista completa, mas dê uma olhada no log de commmit no GitHub (em inglês.
  • testado e confirmado que funciona com PHP7

1.9.4

  • correção: certifica que minificadores que não sejam do Autoptimize não recebam 2 parâmetros (já que alguns esperam por apenas um, o que resultava em erro interno do servidor – Erro 500), baesado no reporte de zerooverture e zamba
  • bugfix: make default add_action hook back into “template_redirect” instead of “init” to fix multiple problems as reported by schecteracademicservices, bond138, rickenbacker, Rick Sportel and wizray. If you do need Autoptimize to initialize earlier (e.g. when using Nextgen Galleries), then add this to your wp-config.php:
    define(“AUTOPTIMIZE_INIT_EARLIER”,”true”);

1.9.3

  • Melhoria: lógica de substituição de CDN mais inteligente, obrigado Squazz por reportar e testar
  • melhoria: permite que strings (comentários) sejam excluídas da otimização do HTML (remoção de comentários)
  • melhoria: mudança na prioridade com que AO é acionado pelo WordPress, solucionando JS não serem agregados se o NextGen Galleries estiver ativo, feito com grade ajuda de msebald
  • Melhoria: strings de exclusão de JS extras: gist.github.com, text/html, text/template, wp-slimstat.min.js, _stq, nonce, post_id (os últimos dois foram removidas da lista “manual” na página de configurações)
  • novidade na API: autoptimize_filter_html_exclude, autoptimize_filter_css_defer, autoptimize_filter_css_inline, autoptimize_filter_base_replace_cdn, autopitmize_filter_js_noptimize, autopitmize_filter_css_noptimize, autopitmize_filter_html_noptimize
  • correção: alguns aviso de PHP foram removidos, como reportado por dimitrov.adrian
  • correção: se certifica que otimização de HTML não engole um espaço antes de um “cite” como proposto por ecdltf
  • correção: limpar o cache não estava funcionando para diretórios não-padrão como reportado por NoahJ Champion
  • yui compressor php port 2.4.8-4 atualizado
  • Tradução em árabe adicionada, agradecimentos ao ekleel team
  • testado com WordPress 4.2 beta 3

1.9.2

Em primeiro lugar; Boas festas, um ótimo 2015!!

  • Novo: suporte para diretório de cache e prefixo de arquivo alternativo como requisitado por Jassi Bacha, Cluster666 e Baris Unver.
  • Melhoria: força a exclusão de todos os objetos JSON linked-data (script type=application/ld+json)
  • Melhoria: diversos filtros adicionados à API, e.g. para alterar o HTML, CSS ou JS otimizado.
  • Correção: volta a prioridade do Autoptimize de 11 para 2 para evitar que algumas páginas não sejam otimizadas (obrigado a CaveatLector por investigar & reportar)
  • Correção (em YUI-CSS-compressor-PHP-port): não converte booleanos para porcentagem em rotate3D-transforms (de acordo com bugreport on Github)
  • Correção: imagens de fundo com um espaço no caminho não carregavam, reportado por johnh10.
  • Correção: imagem SVG com fill:url quebradas após a otimização de CSS como reportado por Trama
  • Tradução para Sueco atualizada, nova tradução para Ucraniano porZanatoly of SebWeo.com
  • readme.txt atualizado
  • Confirmado que funciona com WordPress 4.1

1.9.1

1.9.0

  • “Adiar e colocar CSS em linha” permite especificar qual “CSS acima da dobra” deveria ser em linha, enquanto o CSS normal é adiado.
  • Imagens de fundo em linha codificadas como Base64 agora também serão colocadas na cache e o limite para imagens em linha subiu para 4096 (era 2560).
  • Diretórios separados de cache para CSS e JS em /wp-content/cache/autoptimize, o que deve resultar em melhorias na limpeza do cache (e em alguns casos, talvez também para servir os arquivos agregados).
  • CSS agora é adicionado antes da tag , e o JS antes de </body> (e depois de “title” quando forçado em <head>). Isto pode ser modificado via API.</li> <li>Alguns aperfeiçoamentos de usabilidade na página de administração</li> <li>Diversos hooks adicionados à API, como filtros para não agregar CSS ou JS em linha e filtros para agregar mas não minificar CSS ou JS.</li> <li>Traduções atualizadas para Holandês, Francês, Alemã, Persa e Polonês, e novas traduções para Português Brasileiro (obrigado a <a href="http://tobeguarany.com/" rel="nofollow">Leonardo Antonioli</a>) e Turco (kudos a <a href="http://beyn.org/" rel="nofollow">Baris Unver</a>)</li> <li>Múltiplas correções & e melhorias</li> <li>Testado com WordPress 4.0 rc3</li> </ul> <h4>1.8.5</h4> <ul> <li>Atualizado para a versão mais recente do <a href="https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port/" rel="nofollow">componente de minificação de CSS</a></li> <li>melhoria: para mulsites, o cache agora é gravado em diretórios separado, evitando que um site limpe o cache da instalação inteira. Código <a href="https://wordpress.org/support/topic/multisite-blog-admin-can-delete-entire-network-cache" hreflang="en" rel="nofollow">contribuído por Joern Lund</a></li> <li>Melhoria: adicionado o cabeçalho do plugin WordPress ao autoptimize_helper.php_example para tornar mais fácil habilitá-lo como módulo</li> <li>Melhoria: nonce e post_id são adicionados à configuração padrão para exclusão de JS</li> <li>Melhoria: explicitamente exclui wp-admin da Autoptimização</li> <li>Correção: plupload.min.js, syntaxhighlighter e “adsbygoogle” excluídos da agregação JS.</li> <li>Correção: evita duas tags </body> quando o Autoptimize adiciona Javascript ao HTML como <a href="https://wordpress.org/support/topic/works-like-a-charm-but-i-have-two-problems" rel="nofollow">reportado por Can</a></li> <li>Correção: faz o .htaccess compatível tanto com Apache 2.2 quanto com 2.4 (https://wordpress.org/support/topic/feature-request-support-generating-htaccess-files-for-apache-24?replies=3)</li> </ul> <h4>1.8.4</h4> <ul> <li>Correção: código JS (ou CSS) em linha pode ser encapsulado dentro de comentários HTML, mas estes foram removidos desde 1.8.2 como parte de uma correção de falha.</li> </ul> <h4>1.8.3</h4> <ul> <li>Correção: evita que avisos inúteis em is_callalble inundem o log de erros de PHP como <a href="https://wordpress.org/support/topic/182-breaks-css-and-js?replies=14#post-5377604" hreflang="en" rel="nofollow">reportado por Praveen Kumar</a> (em inglês)</li> </ul> <h4>1.8.2</h4> <ul> <li>Melhoria: mais degradação suave quando a classe minificador existe mas o método não, baseado em um <a href="https://wordpress.org/support/topic/confict-with-dynamic-to-top" hreflang="en" rel="nofollow">reporte de erros por Franck160</a> (em inglês)</li> <li>Melhoria: o CSS adiado também é adicionado nas tags “noscript”</li> <li>Melhoria: diferenciação entre versões de Apache no arquivo .htaccess como sugerido por <a href="http://www.imadalin.ro/" hreflang="ro-RO" rel="nofollow">iMadalin</a> (em romeno)</li> <li>Melhoria: também agrega URIs CSS/JS sem protocolo (como <a href="https://wordpress.org/support/topic/protocol-less-url-support" hreflang="en" rel="nofollow">sugerido por Ross</a></li> <li>Melhoria: desabilita autoptimização baseado em parâmetro na query string (para depuração)</li> <li>Correção: alguns CSS importados não estava sendo agregado/minificados</li> <li>Bugfix: add CSS before <title instead of to avoid breakage when title includes other attributes (e.g. itemscope)</li> <li>Correção: certifica-se que javascript ou CSS entre comentários não é agregado como reportado por <a href="https://wordpress.org/support/topic/the-optimized-css-contains-duplicate-classes" hreflang="en" rel="nofollow">Milap Gajjar</a></li> <li>Testado com Wordpres 3.9 (beta 1)</li> <li>Atualizações na FAQ</li> </ul> <h4>1.8.1</h4> <ul> <li>correção: CSS em comentários condicionais não estavam sendo excluídos da agregação como reportado por <a href="http://www.finkbeiner-holz.de/" hreflang="de" rel="nofollow">Rolf</a> e <a href="http://www.wordpress-hebergement.fr/" hreflang="fr" rel="nofollow">bottapress</a> (em alemão e francês)</li> </ul> <h4>1.8.0</h4> <ul> <li>Novo: opção para deixar todo o CSS em linha <a href="https://wordpress.org/support/topic/make-style-sheet-inline" hreflang="en" rel="nofollow">como sugerido por Hamed</a></li> <li>Novo: conjunto de filtros que proveem uma API simples para modificar o comportamento do Autoptimize (e.g. substituir “defer” por “async”, desabilitar Autoptimização em certas páginas, especificar scripts para não serem agregados ou movidos após o agregado (ref: https://wordpress.org/support/topic/feature-request-some-extra-options?replies=14), tamanho da imagem para transformar em data-uri). Mais informação no arquivo autoptimize_helper.php_example.</li> <li>Melhoria: exclui (css em) tags no script como <a href="https://wordpress.org/support/topic/feature-suggestion-noscript-for-css" hreflang="en" rel="nofollow">proposto por belg4mit</a></li> <li>Melhoria: mudada a forma padrão de servir arquivos CSS/JS de PHP para arquivos estáticos.</li> <li>Atualizado o <a href="https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port/commit/fb33d2ffd0963692747101330b175a80173ce21b" hreflang="en" rel="nofollow">mitificado CSS de “upstream”</a> (em inglês)</li> <li>Melhoria (força gzip dos arquivos estáticos) e Correção (força expiração para arquivos dinâmicos, graças a <a href="http://www.column-razenberg.nl/" hreflang="nl" rel="nofollow">Willem Razenberg</a> (em holandês) no .htaccess</li> <li>Melhoria: degradação suavizada quando as coisas dão errado (e.g. importação de CSS resultando em arquivos CSS agregados vazio <a href="https://wordpress.org/support/topic/very-good-332" hreflang="en" rel="nofollow">reportado por Danka</a> ou quando o tema está quebrado <a href="https://wordpress.org/support/topic/js-optimization-break-site-white-page-issue?replies=14#post-5038941" hreflang="en" rel="nofollow">como visto por Prateei Gupta</a>)</li> <li>Traduções atualizadas e Polonês adicionado (obrigado <a href="http://www.sierpinski.pl/" rel="nofollow">Jakub Sierpinski</a>).</li> <li>Correção: evita que diretivas “import” nos comentários CSS sejam levados em consideração <a href="http://www.blog-it-solutions.de/" rel="nofollow">agradecimento a Josef da blog-it-solutions.de</a></li> <li>Correção: correção de blur quando o CSS quebra como <a href="http://blog.clickpanic.com/" hreflang="en" rel="nofollow">reportado por Chris da clickpanic.com</a> (em inglês)</li> </ul> <h4>1.7.3</h4> <ul> <li>melhoria: remove o cache + opções na desinstalação conforme <a href="https://wordpress.org/support/topic/wp_options-entries" hreflang="en" rel="nofollow">requisitado por Gingerbreadmen</a> (em inglês)</li> <li>melhoria: configura .htaccess para permitir execução de PHP em wp-content/cache/autoptimize quando salvar arquivos otimizados como PHP, como sugerido por (David Mottershead da bermuda4u.com)[http://www.bermuda4u.com/] mas proíbe execução de PHP quando salvar os scripts/css agregados como arquivos estáticos (exceto para multisite).</li> <li>correção: evita que os sitemaps Coast SEO fiquem em branco (devido à otimização do XML/XSL dinamicamente construídos do Coast) como reportado por <a href="http://www.icefishing.co" hreflang="en" rel="nofollow">Vance Hallman</a> (em inglês) and <a href="http://solar-flag-pole-lights.com/" hreflang="en" rel="nofollow">Armand Hadife</a> (em inglês). Mais informação sobre este problema <a href="http://blog.futtta.be/2013/12/09/blank-yoast-seo-sitemaps-no-more/" hreflang="en" rel="nofollow">pode ser encontrada em meu blog</a> (em inglês).</li> <li>pequenas mudanças no readme.txt</li> </ul> <h4>1.7.2</h4> <ul> <li>Melhoria: verificações extras no gerenciamento de @import do CSS + mover regras “import” para o topo do CSS se não for importado com sucesso, baseado em reports de erros do a.o. <a href="https://wordpress.org/support/topic/zero-lenght-file-with-css-optimization" hreflang="en" rel="nofollow">por ozum</a> e por <a href="https://wordpress.org/support/topic/cant-activate-plugin-22?replies=13#post-4891377" hreflang="ne" rel="nofollow">Peter Stolwijk</a> (em inglês).</li> <li>melhoria: verifica se as classes minificadoras de JS e CSS existem e carrega somente se elas não evitarem possíveis conflitos com outros temas ou plugins que já carregaram minificadores.</li> <li>testado e aprovado para WordPress 3.8 (beta1)</li> </ul> <h4>1.7.1</h4> <ul> <li>Novo: suporte para domínios mareados como sugerido por <a href="http://tiremoni.com/" hreflang="de" rel="nofollow">Michael da tiremoni.com</a> (em alemão)</li> <li>Adicionado um .htaccess a wp-content/cache/autoptimize para sobrescrever outras diretrizes de cache (na verdade corrigindo um problema com o .htaccess do WP Super Cache <a href="https://wordpress.org/support/topic/expiresmax-age-compatibility-with-supercache" hreflang="en" rel="nofollow">como reportado</a> por <a href="http://www.unitedworldschools.org/" hreflang="en" rel="nofollow">Hugh of www.unitedworldschools.org</a>. links em inglês)</li> <li>correção: Autoptimize quebra data:uris no CSS em alguns casos, como reportado por <a href="http://www.blog-it-solutions.de/" rel="nofollow">Josef do blog-it-solutions.de</a> (em alemão).</li> <li>correção: evita aviso PHP se a lista de exclusão CSS estiver vazia</li> <li>imagem “do not donate” movida no plugin</li> </ul> <h4>1.7.0</h4> <ul> <li>Novo: exclui CSS</li> <li>Novo: adia CSS</li> <li>Componentes de minimização atualizados (JSMin & YUI PHP CSSMin</li> <li>Página de administração atualizada, escondendo opções de configuração avançadas</li> <li>Suporte à CDN atualizado para aumentar simplicidade (código & Interface), incluindo mudar a imagem de fundo no CSS</li> <li>Atualizado: novas traduções feitas por <a href="http://www.wordpress-hebergement.fr/" hreflang="fr" rel="nofollow">Francês: wordpress-hebergement.fr</a>, <a href="http://basics.ir/" hreflang="fa" rel="nofollow">Persa: Hamed Irani</a>, <a href="http://sulo.se/" hreflang="se" rel="nofollow">Sueco: Jonathan Sulo</a>, <a href="http://www.blog-it-solutions.de/" hreflang="de" rel="nofollow">Alemão: blog-it-solutions.de</a> e Holandês.</li> <li>Suporte para YUI removido</li> <li>Expurga o plugin de cache HTML quando expurga o do Autoptimize</li> <li>correção para marcador BOM nos arquivos CSS <a href="https://wordpress.org/support/topic/sidebar-problem-42" hreflang="en" rel="nofollow">como visto no tema Frontier</a> (em inglês), kudoa a <a href="http://convertertoolz.com/" hreflang="en" rel="nofollow">Download Converter</a>(em inglês) por reportar!</li> <li>correção para <a href="https://wordpress.org/support/topic/javascript-optimize-breaks-twentythirteen-mobile-menu" hreflang="en" rel="nofollow">desaparecimento de scripts de 3.os sem protocolo </a>, obrigado por reportar, p33t3r!</li> <li>correção para folhas de estilo sem type=”text/css” não sendo autoptimizadas como reportado por <a href="http://cocobeanproductions.com/" hreflang="en" rel="nofollow">renzo</a> (em inglês)</li> <li>testado com WordPress 3.7 beta2 (adminbar.min.js adicionado aos scripts automaticamente excluídos)</li> </ul> <h4>1.6.6</h4> <ul> <li>New: disable autoptimizatoin by putting part of your HTML, JS or CSS in between noptimize-tags, e.g.;<br /> <!--noptimize-->alert(‘this will not get autoptimized’);<!--/noptimize--></li> <li>Verificação extra adicionada para prevenir que arquivos de plugin sejam chamados fora do WordPress como sugerido neste <a href="http://mikejolley.com/2013/08/keeping-your-shit-secure-whilst-developing-for-wordpress/" hreflang="en" rel="nofollow">bom artigo sobre segurança</a>.</li> <li>Aviso pequeno adicionado para ser mostrado após instalação/ativação para pedir que o usuário configure o plugin.</li> <li>Tradução para Persa adicionada, obrigado a <a href="http://basics.ir/" hreflang="fa" rel="nofollow">Hamed T.</a> (em persa)</li> </ul> <h4>1.6.5</h4> <ul> <li>nova opção “debugar javascript” para forçar o javascript agregado na seção <code>head</code> do HTML ao invés do final.</li> <li>Compressão & CDN pelo YUI agora são funcionalidades obsoletas que serão removidas em 1.7.0</li> </ul> <h4>1.6.4</h4> <ul> <li>correção para o aviso de PHP sobre mfunc_functions</li> <li>correção para avisos strpos devido a valores vazios na configuração “Excluir scripts do autoptimize” como <a href="https://wordpress.org/support/topic/empty-needle-warning" hreflang="en" rel="nofollow">reportado por CandleFOREX</a> (em inglês).</li> <li>correção para feeds quebrando como <a href="https://wordpress.org/support/topic/feed-issue-5" hreflang="en" rel="nofollow">reportado por Dinata and talgalili</a> (em inglês)</li> </ul> <h4>1.6.3</h4> <ul> <li>correção para hacks do IE contendo javascript, o que causa quebra do javascript (como visto no tema Sampression) como reportado por <a href="http://www.hiskip.com/wp/" hreflang="jp" rel="nofollow">Takehiro de hiskip.com</a> (em japonês)</li> <li>correção para problema de escape no CSS importado, causando quebra de CSS (como visto no tema Sampressio) como reportado por Takahiro também</li> <li>correção na análise de importações com a sintaxe @import ‘custom.css’ não sendo analisada (como visto no tema Arras), novamente como reportado por Takahiro</li> <li>correção para media types complexos no atributo media <a href="https://wordpress.org/support/topic/autoptimize-and-media-queries" hreflang="en" rel="nofollow">como reportado por jvwisssen</a></li> <li>correção para o desaparecimento de imagens de fundo que já eram data-uri’s <a href="https://wordpress.org/support/topic/data-uris" hreflang="en" rel="nofollow">como reportado por will.blaschko</a></li> <li>correção para não remover comentários no HTML necessários para o WP Super Cache ou W3 Total Cache (e.g. mfunc)</li> <li>adicionada a verificação para limpar o cache ao atualizar</li> <li>FAQ atualizada no arquivo readme com informação sobre solução de problemas e suporte</li> <li>testado com WordPress 3.6 beta</li> </ul> <h4>1.6.2</h4> <ul> <li>Outra correção de emergência, eu temo: apache_request_header (de novo em config/delayed.php) está disponível apenas em… Apache (duh), quebrando sistemas não-Apache como NGNIX, Lighttpd e MS IIS. Reportado por vários usuários, obrigado a todos!</li> </ul> <h4>1.6.1</h4> <ul> <li>Corrigido o erro estúpido de grafia em config/delayed.php que quebrava bastante coisas; strpos instead of str_pos como reportado por Takahiro.</li> </ul> <h4>1.6.0</h4> <ul> <li>Agora você pode especificar quais scripts não devem ser Autoptimizados na página de administração. Apenas adicione os nomes (ou parte do caminho) dos scripts numa lista separada por vírgula e o arquivo JavaScript não será tocado pelo Autoptimize.</li> <li>Adicionado suporte para ETag e LastModified (essencialmente para melhorar a nota pagespeed, já que os arquivos são “cacheáveis” explicitamente por 1 ano)</li> <li>Autoptimização para usuários logados está ativada novamente</li> <li>Agora o Autoptimize cria um index.html em wp-content/cache/autoptimize para evitar que espiem (como <a href="http://blog.futtta.be/2013/01/07/adopting-an-oss-orphan-autoptimize/#li-comment-36292" hreflang="en" rel="nofollow">proposto por Chris</a>)</li> <li>correção: todas as funções obsoletas removidas (<a href="https://wordpress.org/support/topic/many-deprecated-errors" hreflang="en" rel="nofollow">reportado por Hypolythe</a> e um diff do Heiko Adams, obrigado caras!)</li> <li>correção para problema de HTTPS como <a href="https://wordpress.org/support/topic/woocommerce-autoptimizer-https-issue" hreflang="en" rel="nofollow">reportado por dbs121</a> (em inglês)</li> <li>.correção para quebra de diretório incomum do WordPress como reportado por por <a href="http://www.blog-it-solutions.de/" hreflang="de" rel="nofollow">Josef d blog-it-solutions.de</a>.</li> </ul> <h4>1.5.1</h4> <ul> <li>correção: adiciona o CSS antes da tag “title” de abertura e não depois tag para fechar, evitando que o CSS seja carregado na ordem errada, como reportado por <a href="http://fotoandfashion.de/" hreflang="de" rel="nofollow">fotofashion</a> e <a href="http://www.blog-it-solutions.de" hreflang="de" rel="nofollow">blogitsolutions</a> (obrigado, pessoal)</li> </ul> <h4>1.5</h4> <ul> <li>primeiro versão de correção lançada por <a href="http://blog.futtta.be/2013/01/07/adopting-an-oss-orphan-autoptimize/" hreflang="en" rel="nofollow">furta</a>, obrigado por um grande plugin Turl!</li> <li>diversas correções de defeitos, suporte ao tema Twenty Twelve, problema na barra de admin no WP 3.5, data-uris quebrando nome de arquivo CSS</li> </ul> <h4>1.4</h4> <ul> <li>Adicionado o suporte para tags style em linha com CSS media</li> <li>Correção para a barra superior do WordPress</li> </ul> <h4>1.3</h4> <ul> <li>Adicionada solução alternativa para TinyMCEComments</li> <li>Adicionado jeitinho para Google Analytics assíncrono</li> </ul> <h4>1.2</h4> <ul> <li>Adicionado jeitinho para anúncios Chitika</li> <li>Adicionado jeitinho para o widget LinkWithin.</li> <li>Tradução para Bielorusso</li> </ul> <h4>1.1</h4> <ul> <li>Adicionado jeitinho para Amazon e Fastclick</li> <li>Adicionado uma solução para Comment Form Quicktags</li> <li>Corrige problema com Vipers Video Quicktags</li> <li>Solução para um defeito no qual alguns scripts que não deveriam ser movidos são movidos</li> <li>Corrige um defeito onde a página de configuração não aparece</li> <li>Corrige manejo de @import</li> <li>Implementa uma opção para desabilitar o gzip de JS/CSS</li> <li>Implementa a funcionalidade CDN</li> <li>Implementado geração de data-uri para imagens</li> <li>Suporte ao YUI CSS/JS Compressor</li> <li>Aumento de performance</li> <li>Gerencia melhor os arquivos do WP Super Cache</li> <li>Traduções atualizadas</li> </ul> <h4>1.0</h4> <ul> <li>Adiciona solução para whos.among.us</li> <li>Suporte à preservação de comentários HTML.</li> <li>“Compressão de cache atrasada” implementada</li> <li>Tradução para Francês</li> <li>Tradução para Espanhol atualizada</li> </ul> <h4>0.9</h4> <ul> <li>Solução para blogs em rede adicionada.</li> <li>Solução para histats e statscounter adicionada.</li> <li>Solução para smowtion e infolinks adicionada.</li> <li>Solução para “Featured Content Gallery” adicionada</li> <li>Tradução para Chinês adicionada</li> <li>Tradução para Espanhol atualizada</li> <li>Sistema de cache modificado para usar wp-content/cache/</li> <li>Botão limpar cache adicionado</li> </ul> <h4>0.8</h4> <ul> <li>Solução para Vipers Video Quicktags adicionada</li> <li>Suporte à tags sem “media”.</li> <li>Ainda mais precauções para evitar que URLs no CSS sejam quebradas</li> <li>Suporte à encapsulamente “try-catch” no código JavaScript</li> <li>Adicionada solução para Estatísticas WordPress.com (Jetpack)</li> <li>Corrige uma falha na qual as tags não eram movidas</li> <li>Atualizado o modelo de tradução</li> <li>Tradução para Espanhol atualizada</li> </ul> <h4>0.7</h4> <ul> <li>Adicionada correção para DISQUS Comment System.</li> </ul> <h4>0.6</h4> <ul> <li>Adicionada solução para mubloglog, blogcatalog, tweetmeme and Google CSE</li> </ul> <h4>0.5</h4> <ul> <li>Suporte à localização</li> <li>Corrige o sistema move/não-move (novamente)</li> <li>Melhora a detecção de URL no CSS</li> <li>Suporte a procurar por scripts e estilo apenas em “header”</li> <li>Corrige uma ocorrência com data-uris sendo modificadas</li> <li>Tradução para Espanhol</li> </ul> <h4>0.4</h4> <ul> <li>Descrição do plugin em Inglês</li> <li>Ajusta a configuração padrão para tudo desligado</li> <li>Adiciona link de páginas do plugin à página de opções</li> <li>Corrige problema com scripts que não deveriam ser movidos mas eram movidos assim mesmo</li> </ul> <h4>0.3</h4> <ul> <li>Desabilita media CSS em @import pois causava um loop infinito</li> </ul> <h4>0.2</h4> <ul> <li>Suporte à media CSS</li> <li>Corrige um problema com o mecanismo de preservação de Hacks IE</li> <li>Corrige um problema com algumas URLs quebrando no CSS</li> </ul> <h4>0.1</h4> <ul> <li>Primeira versão lançada.</li> </ul></div> <button type="button" class="button-link section-toggle" aria-controls="tab-changelog" aria-describedby="changelog-header" aria-expanded="false" data-show-less="Mostrar menos" data-read-more="Leia mais" >Leia mais</button> </div><!-- .entry-content --> <div class="entry-meta"> <div class="widget plugin-meta"> <h3 class="screen-reader-text">Meta</h3> <ul> <li>Versão: <strong>2.2.2</strong></li> <li> Última atualização: <strong><span>4 meses</span> atrás</strong> </li> <li>Active installations: <strong>400.000+</strong></li> <li>Requer a versão do WordPress:<strong>4.0</strong></li> <li>Testado até o WordPress: <strong>4.8.2</strong></li> <li> Idiomas:<div class="languages"> <button type="button" class="button-link popover-trigger" aria-expanded="false" data-target="popover-languages"> Veja todos os 19 </button> <div id="popover-languages" class="popover is-top-right"> <div class="popover-arrow"></div> <button type="button" class="button-link popover-close" aria-label="Fechar esta janela"> Fechado </button> <div class="popover-inner"> <p><a href="https://bg.wordpress.org/plugins/autoptimize/">Bulgarian</a>, <a href="https://nl.wordpress.org/plugins/autoptimize/">Dutch</a>, <a href="https://en-au.wordpress.org/plugins/autoptimize/">English (Australia)</a>, <a href="https://en-nz.wordpress.org/plugins/autoptimize/">English (New Zealand)</a>, <a href="https://en-gb.wordpress.org/plugins/autoptimize/">English (UK)</a>, <a href="https://wordpress.org/plugins/autoptimize/">English (US)</a>, <a href="https://fi.wordpress.org/plugins/autoptimize/">Finnish</a>, <a href="https://fr.wordpress.org/plugins/autoptimize/">French (France)</a>, <a href="https://de.wordpress.org/plugins/autoptimize/">German</a>, <a href="https://it.wordpress.org/plugins/autoptimize/">Italian</a>, <a href="https://ja.wordpress.org/plugins/autoptimize/">Japanese</a>, <a href="https://pl.wordpress.org/plugins/autoptimize/">Polish</a>, <a href="https://br.wordpress.org/plugins/autoptimize/">Portuguese (Brazil)</a>, <a href="https://pt.wordpress.org/plugins/autoptimize/">Portuguese (Portugal)</a>, <a href="https://sr.wordpress.org/plugins/autoptimize/">Serbian</a>, <a href="https://sk.wordpress.org/plugins/autoptimize/">Slovak</a>, <a href="https://es.wordpress.org/plugins/autoptimize/">Spanish (Spain)</a>, <a href="https://sv.wordpress.org/plugins/autoptimize/">Swedish</a> e <a href="https://tr.wordpress.org/plugins/autoptimize/">Turkish</a>.</p> <p><a href="https://translate.wordpress.org/projects/wp-plugins/autoptimize">Translate into your language</a></p> </div> </div> </div> </li> <li class="clear">Tags: <div class="tags"><a href="https://br.wordpress.org/plugins/tags/css/" rel="tag">css</a><a href="https://br.wordpress.org/plugins/tags/html/" rel="tag">html</a><a href="https://br.wordpress.org/plugins/tags/javascript/" rel="tag">javascript</a><a href="https://br.wordpress.org/plugins/tags/js/" rel="tag">JS</a><a href="https://br.wordpress.org/plugins/tags/optimize/" rel="tag">Optimize</a></div></li> <li class="hide-if-no-js"> <strong><a class="plugin-admin" href="https://br.wordpress.org/plugins/autoptimize/advanced/">Panorama avançado</a></strong> </li> </ul> </div><div class="widget plugin-ratings"><h3 class="widget-title">Classificações</h3> <a class="reviews-link" href="https://wordpress.org/support/plugin/autoptimize/reviews/">Ver todos</a> <div class="rating"> <div class="wporg-ratings" aria-label="4.5 de 5 estrelas" data-title-template="%s de 5 estrelas" data-rating="4.5" style="color:#ffb900;"><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-half"></span></div> </div> <ul class="ratings-list"> <li class="counter-container"> <a href="https://wordpress.org/support/plugin/autoptimize/reviews/?filter=5"> <span class="counter-label">5 estrelas</span> <span class="counter-back"> <span class="counter-bar" style="width: 85.955056179775%;"></span> </span> <span class="counter-count">459</span> </a> </li> <li class="counter-container"> <a href="https://wordpress.org/support/plugin/autoptimize/reviews/?filter=4"> <span class="counter-label">4 estrelas</span> <span class="counter-back"> <span class="counter-bar" style="width: 4.6816479400749%;"></span> </span> <span class="counter-count">25</span> </a> </li> <li class="counter-container"> <a href="https://wordpress.org/support/plugin/autoptimize/reviews/?filter=3"> <span class="counter-label">3 estrelas</span> <span class="counter-back"> <span class="counter-bar" style="width: 2.434456928839%;"></span> </span> <span class="counter-count">13</span> </a> </li> <li class="counter-container"> <a href="https://wordpress.org/support/plugin/autoptimize/reviews/?filter=2"> <span class="counter-label">2 estrelas</span> <span class="counter-back"> <span class="counter-bar" style="width: 1.87265917603%;"></span> </span> <span class="counter-count">10</span> </a> </li> <li class="counter-container"> <a href="https://wordpress.org/support/plugin/autoptimize/reviews/?filter=1"> <span class="counter-label">1 estrela</span> <span class="counter-back"> <span class="counter-bar" style="width: 5.0561797752809%;"></span> </span> <span class="counter-count">27</span> </a> </li> </ul> </div><div id="plugin-contributors" class="widget plugin-contributors read-more" aria-expanded="false"><h4 class="widget-title">Contribuidores</h4> <ul id="contributors-list" class="contributors-list"> <li> <img alt='' src='https://secure.gravatar.com/avatar/ed18711cb635df5ef512bf75b1a50f89?s=32&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/ed18711cb635df5ef512bf75b1a50f89?s=64&d=mm&r=g 2x' class='avatar avatar-32 photo' height='32' width='32' /> <a href="https://profiles.wordpress.org/futtta"> Frank Goossens </a> </li> <li> <img alt='' src='https://secure.gravatar.com/avatar/9638840deee19659d10b487fdcfbcb20?s=32&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/9638840deee19659d10b487fdcfbcb20?s=64&d=mm&r=g 2x' class='avatar avatar-32 photo' height='32' width='32' /> <a href="https://profiles.wordpress.org/optimizingmatters"> Optimizing Matters </a> </li> <li> <img alt='' src='https://secure.gravatar.com/avatar/b5b3a1d2a78ad9aec116088306975377?s=32&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/b5b3a1d2a78ad9aec116088306975377?s=64&d=mm&r=g 2x' class='avatar avatar-32 photo' height='32' width='32' /> <a href="https://profiles.wordpress.org/turl"> turl </a> </li> </ul> </div><button type="button" class="button-link section-toggle" aria-controls="plugin-contributors">Veja mais</button><div class="widget plugin-support"><h3 class="widget-title">Suporte</h3> <p class="aside">Problemas resolvidos nos dois últimos meses:</p> <p class="counter-container"> <span class="counter-back"> <span class="counter-bar" style="width: 75%;"></span> </span> <span class="counter-count"> 72 de 96 </span> </p> <p> <a class="button" href="https://wordpress.org/support/plugin/autoptimize">Ver fórum de suporte</a> </p> </div><div class="widget plugin-donate"><h3 class="widget-title">Doar</h3> <p class="aside">Gostaria de apoiar o desenvolvimento deste plugin?</p> <p> <a class="button button-secondary" href="http://blog.futtta.be/2013/10/21/do-not-donate-to-me/" rel="nofollow"> Faça uma doação a este plugin </a> </p> </div> </div><!-- .entry-meta --> </article><!-- #post-## --> </main><!-- #main --> </div><!-- #content --> <div id="wporg-footer"> <h6 class="aligncenter">Código é Poesia</h6> </div> <script type="text/javascript"> var _qevents = _qevents || []; (function() { var elem = document.createElement('script'); elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js"; elem.async = true; elem.type = "text/javascript"; var scpt = document.getElementsByTagName('script')[0]; scpt.parentNode.insertBefore(elem, scpt); })(); </script> <script type="text/javascript">_qevents.push( { qacct:"p-18-mFEk4J448M"} );</script> <noscript><img src="//pixel.quantserve.com/pixel/p-18-mFEk4J448M.gif" style="display: none;" border="0" height="1" width="1" alt=""/></noscript> <!-- 1064 queries. 1,111 seconds --> <script type="text/javascript" src="//gravatar.com/js/gprofiles.js"></script> <script type="text/javascript"> (function($){ $(document).ready(function() { $('#footer a').click(function() { if (this.href.indexOf('wordpress.org') == -1 && this.href.indexOf('http') == 0) { recordOutboundLink(this, 'Outbound Links', this.href); return false; } }); }); })(jQuery); </script> <script type='text/javascript' src='https://br.wordpress.org/plugins/wp-includes/js/admin-bar.min.js?ver=4.9-beta2-41930'></script> <script type='text/javascript' src='https://s0.wp.com/wp-content/js/devicepx-jetpack.js?ver=201742'></script> <script type='text/javascript' src='https://br.wordpress.org/plugins/wp-content/themes/pub/wporg-plugins/js/navigation.js?ver=20151215'></script> <script type='text/javascript' src='https://br.wordpress.org/plugins/wp-content/themes/pub/wporg-plugins/js/skip-link-focus-fix.js?ver=20151215'></script> <script type='text/javascript' src='https://br.wordpress.org/plugins/wp-content/themes/pub/wporg-plugins/js/popover.js?ver=20171002'></script> <script type='text/javascript' src='https://br.wordpress.org/plugins/wp-content/themes/pub/wporg-plugins/js/section-accordion.js?ver=20161121'></script> <script type='text/javascript' src='https://br.wordpress.org/plugins/wp-content/themes/pub/wporg-plugins/js/section-faq.js?ver=20170404'></script> <script type='text/javascript'> /* <![CDATA[ */ var wporgLocaleBanner = {"apiURL":"https:\/\/br.wordpress.org\/plugins\/wp-json\/plugins\/v1\/locale-banner","currentPlugin":"autoptimize"}; /* ]]> */ </script> <script type='text/javascript' src='https://br.wordpress.org/plugins/wp-content/themes/pub/wporg-plugins/js/locale-banner.js?ver=20160622'></script> <script type='text/javascript'> /* <![CDATA[ */ var pluginDirectory = {"endpoint":"https:\/\/br.wordpress.org\/plugins\/wp-json","nonce":"55e8dcf4de","base":"\/plugins\/","userId":"0"}; var localeData = {"":{"Plural-Forms":"nplurals=2; plural=n != 1;","Language":"pt_BR","localeSlug":"pt"}}; /* ]]> */ </script> <script type='text/javascript' src='https://br.wordpress.org/plugins/wp-content/themes/pub/wporg-plugins/js/theme.js?ver=20170501'></script> <script type='text/javascript' src='https://br.wordpress.org/plugins/wp-includes/js/wp-embed.min.js?ver=4.9-beta2-41930'></script> <div id="wpadminbar" class="nojq nojs"> <a class="screen-reader-shortcut" href="#wp-toolbar" tabindex="1">Pular para a barra de ferramentas</a> <div class="quicklinks" id="wp-toolbar" role="navigation" aria-label="Barra de ferramentas" tabindex="0"> <ul id="wp-admin-bar-root-default" class="ab-top-menu"> <li id="wp-admin-bar-wp-logo" class="menupop"><a class="ab-item" aria-haspopup="true" href="https://global.wordpress.org/wp-admin/user/about.php"><span class="ab-icon"></span><span class="screen-reader-text">Sobre o WordPress</span></a><div class="ab-sub-wrapper"><ul id="wp-admin-bar-wp-logo-default" class="ab-submenu"> <li id="wp-admin-bar-about"><a class="ab-item" href="https://global.wordpress.org/wp-admin/user/about.php">Sobre o WordPress</a> </li></ul><ul id="wp-admin-bar-wp-logo-external" class="ab-sub-secondary ab-submenu"> <li id="wp-admin-bar-wporg"><a class="ab-item" href="https://br.wordpress.org/">WordPress.org</a> </li> <li id="wp-admin-bar-documentation"><a class="ab-item" href="https://codex.wordpress.org/pt-br:Página_Inicial">Documentação</a> </li> <li id="wp-admin-bar-support-forums"><a class="ab-item" href="http://br.forums.wordpress.org">Fóruns de suporte</a> </li> <li id="wp-admin-bar-feedback"><a class="ab-item" href="http://br.forums.wordpress.org/forum/pedidos-e-feedback">Feedback</a> </li></ul></div> </li></ul><ul id="wp-admin-bar-top-secondary" class="ab-top-secondary ab-top-menu"> <li id="wp-admin-bar-search" class="admin-bar-search"><div class="ab-item ab-empty-item" tabindex="-1"><form action="https://br.wordpress.org/plugins/" method="get" id="adminbarsearch"><input class="adminbar-input" name="s" id="adminbar-search" type="text" value="" maxlength="150" /><label for="adminbar-search" class="screen-reader-text">Pesquisar</label><input type="submit" class="adminbar-button" value="Pesquisar"/></form></div> </li> <li id="wp-admin-bar-log-in"><a class="ab-item" href="https://login.wordpress.org/?redirect_to=https%3A%2F%2Fbr.wordpress.org%2Fplugins%2F">Fazer login</a> </li> <li id="wp-admin-bar-register"><a class="ab-item" href="https://login.wordpress.org/register">Cadastre-se</a> </li></ul> </div> </div> </body> </html>