Autoptimize

Descrição

Autoptimize torna bem fácil otimizar seu site. Ele concatena (junta) todos os scripts e estilos, e os minifica e comprime, adiciona cabeçalhos de expiração, guarda no cache, move os estilos para o “head” da página e pode mover o scripts para o rodapé. Também minifica o código HTML, tornando sua página bem leve. Existem opções avançadas e uma API extensa está disponível para que você ajuste o Autoptimize para necessidades específicas de cada site.

Se você considerar performance importante, você realmente deveria usar um dos muitos plugins de cache para fazer cache de página. Bons candidatos a complementar o Autoptimize desta forma são e.g. WP Super Cache, HyperCache, Comet Cache ou KeyCDN’s Cache Enabler.

(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. Faça upload do arquivo zip e o descompacte no diretório /wp-content/plugins/
  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. Faça upload do arquivo zip e o descompacte no diretório /wp-content/plugins/
  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.

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.

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?

Resposta curta: provavelmente não (mas eu faço).

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.

Então a escolha deveria ser baseada nas suas respostas para algumas questões específicas do site; quanto de CSS você tem? Qual a média de páginas por visita que seus visitantes requisitam? Se você tem um monte de CSS ou um grande número de páginas/visita, provavelmente não é uma boa idéia colocar todo o CSS em linha. Mas eu faço (já que tenho um número muito baixo de páginas por visitante e um CSS bem pequeno ja que uso um tema muito simples).

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 não tem um mecanismo próprio de limpeza do cache, já que isto poderia remover CSS/JS otimizados que ainda são referenciados em outros caches, o que quebraria seu site. Desde a versão 2.0.0 o Autoptimize mostra uma notícia em páginas de administração se o o tamanho do cache ultrapassar a marca de meio Gigabyte.

Você pode manter o tamanho do cache num nível aceitável das seguintes formas:

  • 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).
Onde está a opção “Buscar scripts somente na seção <head>”?

Apesar de “Buscar scripts somente na seção <head>” ainda funcionar, agora (desde Autoptimize 2.0.0) não é visível na página de configurações se não estiver ativo. Enquanto a opção estiver ativa (para JS ou CSS), entretanto, vai continuar visível até você desativar. Se você tem intimidade com PHP, existem filtros disponíveis para continuar usando o “Buscar somente na seção <head>”.

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

Antes do Autoptimize 2.0.0, o código em linha era sempre automatizado com todo o CSS enviado para a seção head e todo o JS para o final com a flag defer. Isto frequentemente causava 2 problemas; a prioridade do CSS em linha se perdia e o JS em linha poderia conter código específico da página – ou da requisição – o que quebrava o mecanismo de cache do Autoptimize e resultava em excesso de arquivos no cache e minificação rodando várias vezes. Por isto que desde 2.0.0 o código em linha não é otimizado por padrão (exceto para aqueles fazendo upgrade de versões anteriores). Adicionalmente, para evitar a quebra do JS em linha por que o JS otimizado não está disponível, o JS é forçado para a <head> por padrão. Se você que conseguir o máximo possível de performance, você deveria, de fato, marcar as opções “agregar em linha” e desabilitar “Forçar JavaScript na seção <head>”, enquanto fica de olho se ocorre as desvantagens acima.

O que posso fazer com a API?

Um monte; existem filtros que você pode usar para desabilitar o Autoptimize condicionalmente por requisição, mudar as exclusões de CSS e JS, para mudar o limite de imagens de fundo CSS para serem colocadas em linha no CSS, para definir quais arquivos JS são movidos para trás do que está agregado, para mudar o atributo “defer” na tag script do JS agregado… há muitos exemplos de diversos filtros no arquivo autoptimize_helper.php_example e nesta 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.

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).

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);
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 faz uma série de verificações antes de realmente otimizar. Sua página não será otimizada quando uma das seguintes condições for verdadeira:
* se não houver a tag <html>
* se houver uma tag <ssl:stylesheet> na resposta (indicando que o resultado é XML, não HTML)
* se houver <html amp> na resposta (já que páginas AMP já são otimizadas)
* se o resultado é for um feed RSS (função is_feed())
* se o resultado é uma página de administração do WordPress (função is_admin())
* se a página for requisitada com ?ao_noptimize=1 na URL
* se o código usa um “hook” do Autoptimize para desabilitar a otimização (veja o tópico sobre Visual Composer)

Visual Composer, Beaver Builder e soluções similares para construir páginas estão quebradas!!

Estes plugins construtores de páginas rodam no frontend para usuários logados, usam JavaScript intensamente e não deveriam ser otimizados. Você pode dizer ao Autoptimize que não aja sobre estas páginas que usam construtores de páginas para os usuários logados com este código:

add_filter('autoptimize_filter_noptimize','pagebuilder_noptimize',10,0);
function pagebuilder_noptimize() {
  if (is_user_logged_in()) {
    return true;
  } else {
    return false;
  }
}
Revolution Slider está quebrado!

Você pode consertar isto adicionado js/jquery/jquery.js à lista separada por vírgulas para exclusão de otimização JS.

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

Neste caso você tem JavaScript não-agregado que requer que jQuery seja carregado, então você ou vai ter que agregar este JavaScript (marcando a opção “também agregar JS em linha”) ou adicionar js/jquery/jquery.js à lista separada por vírgula de exclusões de otimização JS.

Meus CSS/JS “Autoptimizados” quebraram depois de atualizar de 1.9.4 para 2.0!

Uma das maiores mudanças no Autoptimize 2.0 é que arquivos que têm “min.js” ou “min.css” no nome são considerados minificados e são apenas inseridos no código agregado após a minificação própria, por quê isto é um benefício importante de performance. Embora isto tenha sido testado exaustivamente, é possível que este método nem sempre funcione. Você pode desligá-lo usando um “hook” da API do Autoptimize, como este;

add_filter('autoptimize_filter_js_inject_min_late',__return_false);
add_filter('autoptimize_filter_css_inject_min_late',__return_false);

Obviamente você pode escolher fazer isto apenas CSS, JS ou ambos (como no exemplo).

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’ll need to tell it 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.:
alert(‘this will not get autoptimized’);

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.

Onde posso reportar um erro?

Você pode reportar problemas no fórum de suporte no wordpress.org. Se você tem 100% de certeza que seu problema não pode ser resolvido configurando o Autoptimize e você, de fato, encontrou um problema no código, você pode criar uma ocorrência (issue) no GitHub.

Que informação eu deveria incluir quando solicitar suporte?
  • Uma descrição do problema, incluindo imagens da tela e informação do console de erros/debug do seu navegador.
  • URL do seu blog (você pode desligar o Autoptimize, mas deveria estar disposta(os) a ligá-lo brevemente para tornar o erro visível)
  • suas configurações do Autoptimize (incluindo uma descrição das mudanças que você fez na configuração para tentar resolver o problema)
  • o Tema usado (incluindo o link de download do Tema)
  • opcionalmente os plugins usados (se você suspeita que um ou mais plugins estão bagunçando tudo)
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

Works!

Works perfectly with WP Super Cache. Increased my Google PageSpeed Tools score.

Leia todas as 473 avaliações

Contribuidores e desenvolvedores

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

Contribuidores

“Autoptimize” has been translated into these 12 locales: Turkish, Japanese, German, Portuguese, Brazilian Portuguese, Spanish, Italian, Swedish, Dutch, English (UK), English (Australia), English (New Zealand). Obrigado aos tradutores por suas contribuições.

Traduzir “Autoptimize” para o seu idioma.

Interessado no desenvolvimento?

Navegue pelo código ou assine o log de desenvolvimento por RSS.

Registro de alterações

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> <link itemprop="applicationCategory" href="http://schema.org/OtherApplication" /> <span itemprop="offers" itemscope itemtype="http://schema.org/Offer"> <meta itemprop="price" content="0.00" /> <meta itemprop="priceCurrency" content="USD" /> <span itemprop="seller" itemscope itemtype="http://schema.org/Organization"> <span itemprop="name" content="WordPress.org"></span> </span> </span> <ul> <li>Versão: <strong>2.1.0</strong></li> <li> Última atualização: <strong><span itemprop="dateModified" content="2016-12-14T05:45:03+00:00">4 meses</span> atrás</strong> </li> <li>Instalações ativas: <strong>300.000+</strong></li> <li>Testado até o WordPress: <strong>4.7.4</strong></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/minify/" rel="tag">minify</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> <meta itemprop="ratingCount" content="473"/> <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> <meta itemprop="ratingValue" content="4.7"> </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: 86.469344608879%;"></span> </span> <span class="counter-count">409</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.6511627906977%;"></span> </span> <span class="counter-count">22</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.5369978858351%;"></span> </span> <span class="counter-count">12</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.6913319238901%;"></span> </span> <span class="counter-count">8</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: 4.6511627906977%;"></span> </span> <span class="counter-count">22</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: 70.454545454545%;"></span> </span> <span class="counter-count"> 93 de 132 </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> <!-- 323 queries. 0,587 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.8-alpha-40555'></script> <script type='text/javascript' src='https://s0.wp.com/wp-content/js/devicepx-jetpack.js?ver=201717'></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/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":"843de3231a","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=20170420'></script> <script type='text/javascript' src='https://br.wordpress.org/plugins/wp-includes/js/wp-embed.min.js?ver=4.8-alpha-40555'></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>