Autoptimize

Descrição

Autoptimize torna bem fácil otimizar seu site. Pode agregar, minificar e armazenar (cache) scripts e estilos, adicionar CSS no elemento head da página por padrão (mas também pode adiar), move e adia scripts para o rodapé e minifica HTML. As opções “Extras” permitem você deixar assíncrono o JavaScript não-agregado, remover o emoji meia-boca dos arquivos básicos do WordPress, otimizar Fontes Google e mais. E assim, pode melhorar o desempenho de seu site mesmo quando em HTTP/2! Tem disponível uma API bem abrangente que permite que você ajuste Autoptimize a cada e toda necessidade específica do seu 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.

Suporte Premium
Nós oferecemos serviços premium de Otimização de Performance Web e Suporte Pro para Autoptimize, veja nossa oferta em (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. 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

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.

Mas eu estou com HTTP/2, então não preciso de Autoptimize?

HTTP/2 certamente é um grande passo à frente, reduzindo o impacto de requisições múltiplas para o mesmo servidor ao usar a mesma conexão para realizar várias requisições ao mesmo tempo. Dito isto, concatenar CSS/ JS ainda pode fazer muito sentido, como descrito neste artigo do css-tricks.com (em inglês) e neste blogpost
de um dos engenheiros do Ebay
(em inglês). Conclusão: configure, teste, reconfigure, teste de novo, ajuste e veja o que funciona melhor no seu contexto. Talvez seja só HTTP/2, talvez seja HTTP/2 + agregação e minificação, talvez seja HTTP/2 + minificação (o que AO também faz).

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

Por quê o JS Autoptimizado bloqueando renderização?

Se não usar “Forçar JavaScript na seção head?”, o JS Autoptimizado não bloqueia a renderização e tem o parâmetro “defer” adicionado. Entretanto, é possível que outros plugin remova o parâmetro “defer”. Já foi reportado o plugin Speed Booster Pack fazendo isto, mas o comportamento não foi confirmado ainda.

Porquê o CSS autoptimizado ainda é considerado como bloqueador de render.

Na configuração padrão do Autoptimize o CSS é linkado no elemento “head”, que é um padrão seguro mas vai fazer o Google PageSpeed Insights reclamar. Você pode dar uma olhada em “Colocar todo CSS inline?” (fácil) ou “CSS em linha e adiado?”(melhor) que também são explicadas nestas Perguntas Frequentes.

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?

A resposta curta: provavelmente nã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 na sua resposta para duas perguntas específicas para cada site: quando de CSS você tem? Quantas páginas o visitante requisita a cada visita? Se você tem bastante CSS ou um grande número de páginas por vista, pode não ser uma boa ideia colocar todo o CSS em linha.

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 para limpar o cache, já que isto poderia remover CSS/JS otimizado que ainda estariam sendo referidos por outros caches, o que poderia quebrar seu site. Além disto, um cache aumentando muito rapidamente é indicação de outros problemas que você deveria evitar.

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

Apesar das objeções, há algumas soluções de terceiros para expurgar automaticamente o cache do AO, e.g usar este código (em inglês) ou este plugin, mas pelas razões acima isto deve ser considerado apenas se você realmente souber o que está fazendo.

“Limpar cache” aparentemente não funciona?

Quando clicar no link “Apagar CAche” no menu dropwdow Autoptimize na barra da administração, você pode ver a mensagem “Seu cache pode não ter sido limpo com sucesso”. Neste caso vá até a página de configuração do Autoptimize e clique no botão “Salvar mudanças & e limpar o cache”.

Ademais, não se preocupe se seu cache nunca cai para 0 arquivos / 0 KB, já que o Autoptimize (desde a versão 2.2) vai automaticamente pré carregar o cache imediatamente após ter sido limpo para acelerar ainda mais a minificação.

Eu ainda posso usar o Rocket Loader do Cloudflare?

O Rocket Loader da Cloudflare é uma forma bem avançada, mas invasiva, de fazer o seu JavaScript não bloquear a renderização, que a Cloudflare ainda considera BETA. Algumas vezes o Autoptimize & o Rocket Loader trabalham bem, algumas não. A melhor tática é desativar o Rocket Loader, configurar Autoptimize e re-ativar o Rocket Loader (se você achar que vai ajudar) depois disto e testar se tudo funciona.

No momento (Junho 2017) parece que o RocketLoader pode quebrar o “CSS em linha e adiado” do AO, que é baseado no loadCSS do Filamentgroup, resultando no CSS adiado não sendo carregado.

Eu tentei o Autoptimize mas meu placar Google Pagespeed mal melhorou

Autoptimize não é um simples plugins do tipo “arrume meus problemas com o Pagespeed”;ele “apenas” agrega & e minifica JS & CSS (local) e permite alguns extras como remover Fontes Google ou adiando o carregamento do CSS. Como tal, Autoptimize vai permitir que você melhore o desempenho (tempo de carregamento em segundos) e também provavelmente vai ajudar a resolver alguns avisos específicos do Pagespeed. Se você quer melhorar ainda mais, você também provavelmente vai querer dar uma olhada em, por exemplo, cache de página, otimização de imagens e a configuração de seu servidor, que vai melhorar desempenho pra valer (novamente, tempo de carregamento como medido por exemplo pelo https://webpagetest.org) e notas de “melhores práticas de desempenho” no Pagespeed.

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 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);
Eu estou usando Cloudflare, o que devo usar como diretório raíz da CDN

Nada, quando está na Cloudflare, seu CSS/JS autotimizado vai para a CDN do Cloudflare automaticamente.

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!!

Certifique-se de não estar usando nenhum outro plugin de minificação de HTML, CSS ou JS (BWP Minify, WP Minify, …) ao mesmo tempo que o Autoptimize ou desabilite esta funcionalidade do seu plugin de cache (W3 Total Cache, WP Fastest Cache, …). Tente habilitar somente a otimização de CSS ou somente a de JS para ver qual delas causa erro no servidor e siga o passos de consertos gerais para encontrar uma solução.

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. Quando uma das condições abaixas for verdadeira, suas páginas não serão otimizadas:

  • quando no personalizador
  • Se não tiver uma tag <html abrindo
  • se tiver <xsl:stylesheet na resposta (o que indica que a resposta não é HTML, mas XML)
  • se tiver <html amp na respostas (já que páginas AMP já são otimizadas)
  • Se o resultado é 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 solicitada com ?ao_noptimize=1 na URL
  • se o código se conecta ao Autoptimize para desabilitar otimização (veja o tópico sobre o Visual Composer)
  • Se outros plugins usarem o buffer de saída de forma incompatível (desative outros plugins seletivamente para identificar o causador)
Visual Composer, Beaver Builder e soluções similares para construir páginas estão quebradas!!

Desative a opção de Autoptimizar também para usuários logados e divirta-se arrastando e soltando 😉

Ajuda, o checkout/pagamento de minha loja não funciona!!

Desativa a opção de optimizar páginas carrinhos/checkout (funciona para WooCommerce, Easy Digital Downloads e WP eCommerce).

Revolution Slider está quebrado!

Certifique-se que js/jquery/jquery.js está numa lista de exclusões de JS separadas por vírgulas (ele é excluído na configuração padrão).

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

Neste caso você tem um JavaScript não agregado que requer que o jQuery seja carregado, então você terá que adicionar js/jquery/jquery.js a uma lista de exclusão de JS separada por vírgula.

Eu uso NextGen Galleries e váriso JS não agregados/minificados?

O plugin NextGen Galleries faz algumas coisas estilosas para adicionar JavaScript. Para que o Autoptimize possa agregar isto, você ou desativa o gerenciamento de recursos do Nextgen Gallery com este trecho de código add_filter( 'run_ngg_resource_manager', '__return_false' ); ou você pode configurar o Autoptimize para inicializar mais cedo, adicionando isto a seu arquivo 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.

O que “remover emoji’s” faz?

Esta nova opção em Autoptimize 2.3 remove o CSS em linha, o JS em linha e o arquivo JS linkado pelo WordPress básico. E desta forma pode ter um impacto positivo no desempenho de seu site.

“Remover parâmetros da URL” é útil?

Embora algumas ferramentas de avaliação de desempenho coloquem “parâmetros de versão na URL” como um problema de performance, em geral este impacto é quase inexistente. Portanto, desde a versão o Autoptimize permite que você remova os parâmetros (ou mais precisamente, o parâmetro “ver”), mas marcar “Remover variáveis da url de recursos estáticos” vai ter pouco ou nenhum impacto no desempenho do seu site ao medir os (mili)segundos

(Como) devo otimizar as Fontes Google?

Tipicamente, as Fontes Google são carregada usando um arquivo CSS linkado que bloqueia a renderização da página. Se você tem um tema ou plugins que usam Fontes Google, você pode acabar com vários destes arquivos. Autoptimize (desde a versão 2.3) agora deixa você diminuir o impacto das Fontes Google ou removendo as fontes completamente ou otimizando a forma que elas são carregadas. Tem dois “sabores” de otimização: o primeiro é “combinar e linkar”, que substitui todas as requisições por Fontes Google por uma requisição só, que ainda bloqueará a renderização mas vai permitir as fontes carregarem imediatamente (isto é, você não verá fontes mudando quando a página está carregando). A alternativa é “combinar e carregar assincronamente” que usa JavaScript para carregar as fontes de uma forma que não bloqueia a renderização mas que pode causar “texto sem estilo piscando”. A partir do Autoptimize 2.4 “agregar & pré carregar” permite agregar todas os arquivos de Fontes Googe em um arquivo CSS que é pré-carregado, o que não deveria ser considerado bloqueador, e as fontes devem estar disponíveis mais cedo (então menos piscadas de conteúdo sem estilo).

Devo usar “preconnect”?

Preconnect é uma funcionalidade um tanto avançada que instrui navegadores (se eles suportarem) a fazerem uma conexão a domínios específicos, mesmo que a conexão não seja necessária de imediato. Isto pode ser usado, por exemplo, para diminuir o impacto de recursos de terceiros (já que requisições DNS, conexões TCP e negociação SSL/TLS são executadas mais cedo). Use com cuidado, já que pré conectar a muitos domínio pode ser contraprodutivo.

Quando (não)posso usar JS assíncrono?

Arquivos JavaScript que não são autoptimizados (por quê eles foram excluídos ou estão hospedados em outros lugares) tipicamente bloqueiam a renderização. Ao adicioná-los no campo “async JS”, Autoptimize irá usar o parâmetro async fazendo com o que o navegador carregue estes arquivos de forma assíncronamente (i.e. sem bloquear a renderização). Isto pode potencialmente quebrar o seu site (página), e.g. se você colocar “js/jquery/jquery.js” assíncrono você provavelmente verá erros do tipo “JQuery is not defined”. Use com cuidado.

Como a otimização de imagens funciona?

Quando otimização de imagem está ligada, o Autoptimize vai procurar por arquivos png, gif, jpeg (.jpg) nas tags de imagens dos arquivos CSS que são carregados a partir de seu domínio e vão mudar o src (origem) deles para a CDN do ShortPixel.

Onde posso conseguir mais informações sobre otimização de imagens?

Dê uma olhada nas Perguntas Frequentes do Shortpixel.

Pode desativar a minificação de JS/CSS excluídos?

Desde o AO 2.4, JS/CSS excluídos são minificados se (o nome do arquivo indica que) o arquivo não foi minificado ainda. Você pode desativar com estes filtros;

add_filter('autoptimize_filter_js_minify_excluded','__return_false');
add_filter('autoptimize_filter_css_minify_excluded','__return_false');
Posso desabilitar que AO fique “ouvindo” a limpeza de cache de páginas?

A partir da versão 2.4, o Autoptimize “ouve” as limpezas de cache no WordPress para limpar o seu próprio cache. Você pode desabilitar usando este filtro.

add_filter('autoptimize_filter_main_hookpagecachepurge','__return_false');
Por quê não consigo atualizar do 2.3.4 para o 2.4.0 (ou posterior)?

A razão principal (fora alguns “soluços” ocasionais que parecem ser inerentes a atualizações de plugins) é que o AO 2.4 requer que você esteja usando PHP 5.3 ou mais recente. E vamos encarar: você deveria estar usando PHP 7.x se você realmente se importa com desempenho (e segurança e suporte) não?

Some of the non-ASCII characters get lost after optimization

By default AO uses non multibyte-safe string methods, but if your PHP has the mbstring extension you can enable multibyte-safe string functions with this filter;

add_filter('autoptimize_filter_main_use_mbstring', '__return_true');
The Shortpixel image optimizing notice cannot be dismissed?

In some rare cases the logic to dismiss the notice does not work due to the transient (WordPress cache) not keeping the dismissed state. If this happens you can use this code snippet to make the notice go away;

add_filter( 'autoptimize_filter_main_imgopt_plug_notice', '__return_empty_string' );
Onde posso conseguir ajuda?

Você pode obter ajuda no fórum de suporte do wordpress.org (em inglês). Se você tem 100% de certeza que este é um problema que não pode ser resolvido usando a configuração do Autoptimize e que, de fato, descobriu um erro no código, você pode criar um incidente no Github (em inglês). Se você está em busca de suporte premium, consulte nossos Serviços de Suporte Profissional e Serviços de Otimização.

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

Super Support!

I had a problem with the floating icons and Frank came to my rescue so quickly I was astonished! and it is a weekend! I truly appreciate the quick response and my floating icons are now perfect. I also really really like the autoptimize plugin, it has brought up my gtmetrix scores from an abysmal low 70’s to the 90-92% !

Works Great Easy To Setup

I use this plugin with sites I build using Genesis theme and child themes. Love it easy enough to setup. I have tried it with Divi and cannot get the same results so could be a theme issue.

Great plugin, with a great author!

Autoptimize does wonders for performance optimization and has saved me on many an occasion!
Not only that, but Frank is always on hand to support – I don’t think I’ve ever seen a single support req where he hasn’t responded and provided assistance or advice where he can!
5/5 – would recommend!

A Good Optimization Plugin And Good Author/Support

I hired a freelancer to optimize my sites and implement “lazy load” for YouTube videos as the JavaScript (JS) load impact is rather significant (in case you weren’t aware) when videos are embedded in a post.

Later when we had issues with it not working, he switched to Autoptimize and it’s been doing well ever sense.

Is it the fanciest minimization plugin out there? No. Does that matter to me? Not at all 🙂 There are a generous number of options including HTML, JavaScript, CSS, CDN use, Cache info, and Misc.

It gets the job done and works well. That’s what I care about.

Two additional tabs, “Extra” and “Optimize More!” will send you in the direction of even more features that can benefit you.

I had problems with a theme conflict and an additional plugin I was running and I got good help from the author which I appreciate. Nice guy.

Recommended! I’m confident you’ll like it.

Bad plugin with thrive – quick support respone

Edit: Developer responds quickly, but more headaches than it’s worth it if you’re using Thrive.

Original review:

Holy crap, I don’t leave negative reviews too often but JEEZ.

Not only does this plugin NOT speed up the site, but the second you update any content, it strips ALL THE STYLING OUT OF THE PAGE. It gets better though, if you disable and remove the plugin, it doesn’t revert back!

So with this wonderful piece of programming BS, you get ZERO site speed improvements, but a ton of CSS fixes added to your to-do list.

Seriously guys, not sure how this plugin has so many good reviews. I installed it on 2 sites and it did the same thing. STAY AWAY!

Leia todas as 682 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 22 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.4.1

  • bugfix for CSS minifier throwing a HTTP 500 error when a } is missing.
  • bugfix for slowness when iconv was used for multibyte string replacements (ditched iconv).
  • bugfix for occasional issues with broken/ missing strings due to mbstring (also for multibyte string replacement) weirdness.
  • bugfix for wrong sizes in image optimization.
  • bugfix for Google Font subset getting lost in optimization.

2.4.0

  • refatorado significantemente (não há mais “sem classes: , tudo é OO), classes são autocarregadas, testes adicionados (travis-ci) por zytzagoo que merece palmas pelo trabalho duro dele!
  • novo: otimização de imagens (veja aba “Extra”) usando o proxy de otimização inteligente de imagens do Shortpixel
  • agora você pode desabilitar agregação de arquivos JS/CSS, e minificá-los individualmente
  • nov: Fontes Google agora podem ser “agregadas e pré-carregadsa”, usando CSS que agora é carregado sem bloquear renderização
  • novo: Autoptimize monitora os caches de página sendo limpos, e quando isto acontece limpa seu próprio cache também. O suporte a isto depende em hooks de ações conhecidos sendo disparados pelos caches de páginas, suportado pelo Hyper Cache, WP Rocket, W3 Total Cache, KeyCDN Cache Enabler e suporte em breve confirmado no WP Fastest Cache e Comet Cache.
  • Arquivos JS / CSS locais que são excluídos da otimização são minificados por padrão (pode ser alterado por filtro)
  • minificadores atualizados (com melhorias significativas para o port do Compressor de CSS YUI para PHP)
  • melhoria: “remover todas as Fontes Google” agora é mais cuidadoso (evitando remover blocos inteiros de CSS)
  • diversas melhorias “debaixo do capô” (e.g. limpeza de cache mais robusta, suporte melhorado a conjuntos de caracteres multibyte, lógica para reescrita de CDN melhorada, evita avisos do PHP quando gravando arquivos no cache, …)

2.3.4

  • correção de erros: is_plugin_active estava causando erros em alguns casos como reportado por @iluminancia e @lozula (em inglês)
  • correção de erro: domínio de idioma adicionado a 4 funções __/_e, un grand merci ao Guillaume Blet!

2.3.3

  • melhoria: atualizado para a versão mais recente do loadCSS do Filamentgroup
  • Melhoria: por padrão, excluir wp-content/cache e wp-content/uploads da otimização do CSS(Divi, Avada & possivelmente outros plugins guardam CSS específico para páginas neste lugares)
  • correção de erro: impedir blocos try/catch duplos
  • diversas corrreções de erros (veja o registro de commit do GitHub)
  • Atenção: isto é (supostamente) o último lançamento menor no ramo 2.3, 2.4 é uma mudança grande com várias mudanças funcionais e debaixo do capô

2.3.2

  • Solução para dados de opções velhos em caches de objeto externo tal como Redis, Memcached (defeito do core) resultando no Autoptimize continuamente executando o procedimento de atualização, inclusive limpando o cache e tentando fazer o pré carregamento de requisições HTTP com “cachebuster” no parâmetro da URL, obrigado a Haroon Q. Raja e Tomas Trkulja pela grande assistência!
  • correções para avisos “undefined index” na página configurações Extra
  • agora remove as respectivas dicas de recursos dns-prefetch quando “remover emojis” estiver ativo ou quando Fontes Google forem otimizadas ou removidas.
  • código JS do webfont.js mudado para adiado ao invés de assíncrono para certificar que o arquivo JS ou fontes não sejam consideradas bloqueadoras de renderização.

2.3.1

  • correção para incidente no código de atualização em algumas circunstâncias, obrigado ao Rajendra Zore por reporter & e ajudar a corrigir!

2.3.0

2.2.2

  • Retrocesso à uma versão mais bem testada do minificador CSS
  • ajustes no menu Autoptimize na barra de ferramentas (visual + tempo esgotado da chamada AJAX “apagar cache”)
  • atualização do leiame

2.2.1

  • correção para imagens referidas no CSS não sendo transportadas para o caminho correto, levando a erros 404 como reportado por Jeff Inho
  • correção para o error “operator not supported for strings” no PHP7.1 como reportado por falk-wussow.de
  • correção para quebra da hash de segurança do cache AO’s em alguns casos (especialmente no 2.1.1)

2.2.0

  • novidade: Autotpimize minimiza primeiro (armazenando os fragmentos individuais) e agrega os fragmentos minificados, resultando em melhoras de desempenho enormes em relação a JS/CSS não cacheados.
  • novidade: opção para ativar/desativar AO para usuários conectados (ligado por padrão)
  • novidade: opção para ativar/desativar AO nas páginas carrinhos/checkout do WooCommerce, Easy Digital Downloads ou WP ecommerce (ligado por padrão)
  • melhoria: mudança para rel=preload + loadCSS do Filamentgroup para o carregamento adiado
  • melhoria: mudança para o minificador de CSS YUI PHP=port 2.8.4-p10 (ou seja, ainda não é o brach 3.x)
  • melhoras na lógica de quais JS/CSS devem ser otimizados (função getPath), aumentando a confiança no processo de agregação.
  • segurança: a substituição do placeholder agora é menos ingênua para proteger contra vulnerabilidade LFI e XSS como reportado por Matthew Barry e corrigido com ajuda do Matthew e Tomas Trkulja. Obrigado, caras!!
  • API: vários filtros extras, fazendo AO (ainda) mais flexível.
  • Um monte de correções de erros e melhorias menores (veja o log de commit no GitHub)
  • testado e confirmado que funciona em WordPress 4.8

2.1.2

  • correção para quebra da hash de segurança do cache AO’s em alguns casos (especialmente no 2.1.1)
  • Idêntico ao 2.10, exceto pela correção de segurança do 2.2.0

2.1.1

  • Idêntico ao 2.10, exceto pela correção de segurança do 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

older